HBASE-3903 A successful write to client write-buffer may be lost or not visible
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1126735 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
17f5b1872b
commit
74c41cd697
|
@ -110,6 +110,8 @@ Release 0.91.0 - Unreleased
|
||||||
HBASE-3826 Minor compaction needs to check if still over
|
HBASE-3826 Minor compaction needs to check if still over
|
||||||
compactionThreshold after compacting (Nicolas Spiegelberg)
|
compactionThreshold after compacting (Nicolas Spiegelberg)
|
||||||
HBASE-3912 [Stargate] Columns not handle by Scan
|
HBASE-3912 [Stargate] Columns not handle by Scan
|
||||||
|
HBASE-3903 A successful write to client write-buffer may be lost or not
|
||||||
|
visible (Doug Meil)
|
||||||
|
|
||||||
IMPROVEMENTS
|
IMPROVEMENTS
|
||||||
HBASE-3290 Max Compaction Size (Nicolas Spiegelberg via Stack)
|
HBASE-3290 Max Compaction Size (Nicolas Spiegelberg via Stack)
|
||||||
|
|
|
@ -755,6 +755,10 @@ HTable table2 = new HTable(conf2, "myTable");</programlisting>
|
||||||
<methodname>flushCommits()</methodname> should be invoked so Puts
|
<methodname>flushCommits()</methodname> should be invoked so Puts
|
||||||
will not be lost.
|
will not be lost.
|
||||||
</para>
|
</para>
|
||||||
|
<para>Note: <code>htable.delete(Delete);</code> does not go in the writebuffer! This only applies to Puts.
|
||||||
|
</para>
|
||||||
|
<para>For additional information on write durability, review the <link xlink:href="acid-semantics.html">ACID semantics</link> page.
|
||||||
|
</para>
|
||||||
<para>For fine-grained control of batching of
|
<para>For fine-grained control of batching of
|
||||||
<classname>Put</classname>s or <classname>Delete</classname>s,
|
<classname>Put</classname>s or <classname>Delete</classname>s,
|
||||||
see the <link xlink:href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#batch%28java.util.List%29">batch</link> methods on HTable.
|
see the <link xlink:href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/HTable.html#batch%28java.util.List%29">batch</link> methods on HTable.
|
||||||
|
|
|
@ -90,7 +90,7 @@
|
||||||
<section name="Atomicity">
|
<section name="Atomicity">
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>All mutations are atomic within a row. Any put will either wholely succeed or wholely fail.</li>
|
<li>All mutations are atomic within a row. Any put will either wholely succeed or wholely fail.[3]</li>
|
||||||
<ol>
|
<ol>
|
||||||
<li>An operation that returns a "success" code has completely succeeded.</li>
|
<li>An operation that returns a "success" code has completely succeeded.</li>
|
||||||
<li>An operation that returns a "failure" code has completely failed.</li>
|
<li>An operation that returns a "failure" code has completely failed.</li>
|
||||||
|
@ -170,7 +170,7 @@
|
||||||
<ol>
|
<ol>
|
||||||
<li> When a client receives a "success" response for any mutation, that
|
<li> When a client receives a "success" response for any mutation, that
|
||||||
mutation is immediately visible to both that client and any client with whom it
|
mutation is immediately visible to both that client and any client with whom it
|
||||||
later communicates through side channels.</li>
|
later communicates through side channels. [3]</li>
|
||||||
<li> A row must never exhibit so-called "time-travel" properties. That
|
<li> A row must never exhibit so-called "time-travel" properties. That
|
||||||
is to say, if a series of mutations moves a row sequentially through a series of
|
is to say, if a series of mutations moves a row sequentially through a series of
|
||||||
states, any sequence of concurrent reads will return a subsequence of those states.</li>
|
states, any sequence of concurrent reads will return a subsequence of those states.</li>
|
||||||
|
@ -189,7 +189,7 @@
|
||||||
<li> All visible data is also durable data. That is to say, a read will never return
|
<li> All visible data is also durable data. That is to say, a read will never return
|
||||||
data that has not been made durable on disk[2]</li>
|
data that has not been made durable on disk[2]</li>
|
||||||
<li> Any operation that returns a "success" code (eg does not throw an exception)
|
<li> Any operation that returns a "success" code (eg does not throw an exception)
|
||||||
will be made durable.</li>
|
will be made durable.[3]</li>
|
||||||
<li> Any operation that returns a "failure" code will not be made durable
|
<li> Any operation that returns a "failure" code will not be made durable
|
||||||
(subject to the Atomicity guarantees above)</li>
|
(subject to the Atomicity guarantees above)</li>
|
||||||
<li> All reasonable failure scenarios will not affect any of the guarantees of this document.</li>
|
<li> All reasonable failure scenarios will not affect any of the guarantees of this document.</li>
|
||||||
|
@ -205,6 +205,12 @@
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
<section name="More Information">
|
||||||
|
<p>
|
||||||
|
For more information, see the <a href="book.html#client">client architecture</a> or <a href="book.html#datamodel">data model</a> sections in the HBase book.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section name="Footnotes">
|
<section name="Footnotes">
|
||||||
<p>[1] A consistent view is not guaranteed intra-row scanning -- i.e. fetching a portion of
|
<p>[1] A consistent view is not guaranteed intra-row scanning -- i.e. fetching a portion of
|
||||||
a row in one RPC then going back to fetch another portion of the row in a subsequent RPC.
|
a row in one RPC then going back to fetch another portion of the row in a subsequent RPC.
|
||||||
|
@ -216,6 +222,10 @@
|
||||||
log. This does not actually imply an fsync() to magnetic media, but rather just that the data has been
|
log. This does not actually imply an fsync() to magnetic media, but rather just that the data has been
|
||||||
written to the OS cache on all replicas of the log. In the case of a full datacenter power loss, it is
|
written to the OS cache on all replicas of the log. In the case of a full datacenter power loss, it is
|
||||||
possible that the edits are not truly durable.</p>
|
possible that the edits are not truly durable.</p>
|
||||||
|
<p>[3] Puts will either wholely succeed or wholely fail, provided that they are actually sent
|
||||||
|
to the RegionServer. If the writebuffer is used, Puts will not be sent until the writebuffer is filled
|
||||||
|
or it is explicitly flushed.</p>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
Loading…
Reference in New Issue