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

Reply via email to