A successful write to client write-buffer may be lost or not visible
--------------------------------------------------------------------
Key: HBASE-3903
URL: https://issues.apache.org/jira/browse/HBASE-3903
Project: HBase
Issue Type: Bug
Components: documentation
Environment: Any.
Reporter: Tallat
A client can do a write to a client side 'write buffer' if enabled via
hTable.setAutoFlush(false). Now, assume a client puts value v under key k. Two
wrongs things can happen, violating the ACID semantics of Hbase given at:
http://hbase.apache.org/acid-semantics.html
1) Say the client fails immediately after the put succeeds. In this case, the
put will be lost, violating the durability property:
<quote> Any operation that returns a "success" code (eg does not throw an
exception) will be made durable. </quote>
2) Say the client issues a read for k immediately after writing k. The put will
be stored in the client side write buffer, while the read will go to the region
server, returning an older value, instead of v, violating the visibility
property:
<quote>
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.
</quote>
Thanks,
Tallat
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira