[ https://issues.apache.org/jira/browse/HBASE-3903?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Doug Meil updated HBASE-3903: ----------------------------- Attachment: (was: acid-semantics_HBASE_3903.xml.patch) > 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 > Assignee: Doug Meil > Labels: documentation > Attachments: acid-semantics_HBASE_3903.xml.patch > > > 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