[
https://issues.apache.org/jira/browse/HBASE-3903?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13036749#comment-13036749
]
Tallat commented on HBASE-3903:
-------------------------------
+1 on the patch, but I would suggest a couple of other things:
1) We can mention the same thing in section 10.1.2. "WriteBuffer and Batch
Methods" for clarity, in <a href="book.html#client">client architecture</a>.
2) IMHO, the documentation at http://hbase.apache.org/acid-semantics.html has
some weak points that need clarification, for example:
(a) Visibility: <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>
Here, what is a side channel exactly?
(b) Durability: <quote> All reasonable failure scenarios will not affect any
of the guarantees of this document.</quote>
Here, what is a reasonable failure scenario?
Thanks.
> 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
> Priority: Minor
> 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