You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Anoop Sam John (Jira)" <ji...@apache.org> on 2020/08/08 04:19:00 UTC

[jira] [Commented] (HBASE-21721) FSHLog : reduce write#syncs() times

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

Anoop Sam John commented on HBASE-21721:
----------------------------------------

Pushed to trunk, branch-2, branch-2.3
[~Bo Cui]  Can u pls raise PR for branch-2.2 as it is not possible to cherry-pick to here. Conflicts are coming.  Also this needs a branch-1 PR also.

> FSHLog : reduce write#syncs() times
> -----------------------------------
>
>                 Key: HBASE-21721
>                 URL: https://issues.apache.org/jira/browse/HBASE-21721
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 1.3.1, 2.1.1, master, 2.2.3
>            Reporter: Bo Cui
>            Assignee: Bo Cui
>            Priority: Major
>             Fix For: 3.0.0-alpha-1, 2.3.1, 1.7.0, 2.4.0, 2.2.6
>
>
> the number of write#syncs can be reduced by updating the highestUnsyncedSequence:
> before write#sync(), get the current highestUnsyncedSequence 
> after write#sync, highestSyncedSequence=highestUnsyncedSequence
>  
> {code:title=FSHLog.java|borderStyle=solid}
> // Some comments here
> public void run()
> {
>     long currentSequence;
>       while (!isInterrupted()) {
>         int syncCount = 0;
>         try {
>           while (true) {
>             ...
>           try {
>             Trace.addTimelineAnnotation("syncing writer");
>             long unSyncedFlushSeq = highestUnsyncedSequence;
>             writer.sync();
>             Trace.addTimelineAnnotation("writer synced");
>             if( unSyncedFlushSeq > currentSequence ) currentSequence = unSyncedFlushSeq;
>             currentSequence = updateHighestSyncedSequence(currentSequence);
>           } catch (IOException e) {
>             LOG.error("Error syncing, request close of WAL", e);
>             lastException = e;
>           } catch (Exception e) {
>            ...
>     }
> }
> {code}
> Add code
>  long unSyncedFlushSeq = highestUnsyncedSequence;
>  if( unSyncedFlushSeq > currentSequence ) currentSequence = unSyncedFlushSeq;



--
This message was sent by Atlassian Jira
(v8.3.4#803005)