[ 
https://issues.apache.org/jira/browse/HBASE-3588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13001575#comment-13001575
 ] 

dhruba borthakur commented on HBASE-3588:
-----------------------------------------

I am yet to measure (at scale) the performance improvement. But does the code 
look good and correct?

The difference is not just one memstore update. Especially if we have lots of 
regionserver threads, there are many threads inserting into memstore in 
parallel.

> Proposal to optimize ReadWriteConsistencyControl
> ------------------------------------------------
>
>                 Key: HBASE-3588
>                 URL: https://issues.apache.org/jira/browse/HBASE-3588
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>            Reporter: dhruba borthakur
>            Assignee: dhruba borthakur
>         Attachments: rwcc.trunk.1, rwcc.trunk.1
>
>
> The ReadWriteConsistencyControl (RWCC) mechanism facilitates making a set of 
> memstore updates atomically visible to readers. Also, the 
> rwcc.completeMemstoreInsert() blocks till the memstore read point advances to 
> the current writeNumber. This is done to ensure that if an application that 
> does a put immediately issues a new get call for the same key, then the get 
> should see the values inserted by the previous call to put. The current 
> implementation assumes this worst-case and penalizes the put rpc to not 
> return to the client until the read point advances to this transaction's 
> write number.
> In many use-cases, the application never actually issues a get for the most 
> recent put that it inserted. In this case, it would be nice if we can 
> transfer the penalty (of blocking) to the get call that follows the initial 
> put.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to