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

Xing Shi commented on HBASE-4487:
---------------------------------

@[[email protected]] or  @[~dhruba]
I have a question about the code in the trunk:
{code}
try {
      Integer lid = getLock(lockid, row, true);
      this.updatesLock.readLock().lock();
      try {
          xxxx
      } finally {
        this.updatesLock.readLock().unlock();
        releaseRowLock(lid);
      }
      if (writeToWAL) {
        this.log.sync(txid); // sync the transaction log outside the rowlock
      }
} finally {
      closeRegionOperation();
}
{code}

What will happen if
{code}this.log.sync(txid);{code}
failed?

As I know, the RS will tell client that this op failed, and the client will 
retry. So MemStore and hlog on HDFS are inconsistent. 

Am I right? Or the RS exits if an HDFS write/sync fails as Dhruba said?

                
> The increment operation can release the rowlock before sync-ing the Hlog
> ------------------------------------------------------------------------
>
>                 Key: HBASE-4487
>                 URL: https://issues.apache.org/jira/browse/HBASE-4487
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: dhruba borthakur
>            Assignee: dhruba borthakur
>             Fix For: 0.94.0
>
>         Attachments: 4487-v7.txt, appendNoSync4.txt, appendNoSync5.txt, 
> appendNoSync6.txt
>
>
> This allows for better throughput when there are hot rows.I have seen this 
> change make a single row update improve from 400 increments/sec/server to 
> 4000 increments/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