[ 
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

Reply via email to