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

dhruba borthakur commented on HBASE-4528:
-----------------------------------------

It appears to me that deleting kvs from the memstore (as part of the 
transaction rollback) should be ok. It is done without the rowlock because the 
kvs are not yet visible to scanners because the rwcc is not yet advanced. 

One doubtful case is when a thread A is trying to insert kv via a Put call.  
Thread A inserted into memstore but has failed to sync to wal. Now suppose 
another thread B has concurrently inserted exactly the same kv into the 
memstore successfully and committed the transaction by syncing to wal 
successfully. Now thread A tries to rollback its failed transaction and removes 
the kv from the memstore. Is this scenario possible? In that case, should the 
rollback code in Thread A delete the kv from the memstore only if its 
kv.memstoreTS matches its own?
                
> The put operation can release the rowlock before sync-ing the Hlog
> ------------------------------------------------------------------
>
>                 Key: HBASE-4528
>                 URL: https://issues.apache.org/jira/browse/HBASE-4528
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>            Reporter: dhruba borthakur
>            Assignee: dhruba borthakur
>         Attachments: appendNoSyncPut1.txt, appendNoSyncPut2.txt, 
> appendNoSyncPut3.txt, appendNoSyncPut4.txt
>
>
> This allows for better throughput when there are hot rows. A single row 
> update improves from 100 puts/sec/server to 5000 puts/sec/server.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to