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
|
||||
compactionThreshold after compacting (Nicolas Spiegelberg)
|
||||
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
|
||||
HBASE-3290 Max Compaction Size (Nicolas Spiegelberg via Stack)
|
||||
|
|
|
@ -753,8 +753,12 @@ HTable table2 = new HTable(conf2, "myTable");</programlisting>
|
|||
is filled. The writebuffer is 2MB by default. Before an HTable instance is
|
||||
discarded, either <methodname>close()</methodname> or
|
||||
<methodname>flushCommits()</methodname> should be invoked so Puts
|
||||
will not be lost.
|
||||
</para>
|
||||
will not be lost.
|
||||
</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
|
||||
<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.
|
||||
|
|
|
@ -90,7 +90,7 @@
|
|||
<section name="Atomicity">
|
||||
|
||||
<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>
|
||||
<li>An operation that returns a "success" code has completely succeeded.</li>
|
||||
<li>An operation that returns a "failure" code has completely failed.</li>
|
||||
|
@ -170,7 +170,7 @@
|
|||
<ol>
|
||||
<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
|
||||
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
|
||||
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>
|
||||
|
@ -189,7 +189,7 @@
|
|||
<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>
|
||||
<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
|
||||
(subject to the Atomicity guarantees above)</li>
|
||||
<li> All reasonable failure scenarios will not affect any of the guarantees of this document.</li>
|
||||
|
@ -205,6 +205,12 @@
|
|||
</ul>
|
||||
</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">
|
||||
<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.
|
||||
|
@ -216,6 +222,10 @@
|
|||
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
|
||||
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>
|
||||
|
||||
</body>
|
||||
|
|
Loading…
Reference in New Issue