[
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