[
https://issues.apache.org/jira/browse/HBASE-4528?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13121709#comment-13121709
]
dhruba borthakur commented on HBASE-4528:
-----------------------------------------
I agree that if the HLog.sync() throws an exception (but does not abort the
regiomnserver), then we have a serious problem in our hands.
The existing trunk-code has the problem that if we are able to successfully
update the WAL but insertion into the memstore resulted in an exception, then
the client will be notified of the failed-update, but actually the transaction
could come back to life if wal-recovery occurs.
One proposal is to change the last few lines of HLog.syncer(long txid) to throw
an Runtime exception instead of requesting a log roll.
{code}
} catch (IOException e) {
LOG.fatal("Could not sync. Earlier was Requesting close of hlog " +
" but instead we should bail out completely", e);
Runtime.exit(1);
}
{code}
Do you think that this code is palatable? Do folks usually see this code path
being executed in their clusters?
> 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
>
>
> 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