[ 
https://issues.apache.org/jira/browse/HBASE-12130?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

stack updated HBASE-12130:
--------------------------
    Attachment: Screen Shot 2014-09-30 at 9.17.09 PM.png

Nice picture.  Has a bunch of these syncs taking so long they get noticed.  Of 
the 50 odd calls 'noticed', half are hflush and half are hsyncs.  Looking at 
code, HBASE-11980 did straight swap as follows:

-      this.output.flush();
-      this.output.sync();
+      this.output.hflush();
+      this.output.hsync();

Looks like this.output.flush used to just end up in the super class 
OutputStream flush which is noop.

The sync call called hflush.

To have equivalent of what we had before, we could just call flush and hflush.

Lets add option to call hsync in stead of hflush.  hsync does " Similar to 
posix fsync, flush out the data in client's user buffer all the way to the disk 
device (but the disk may have it in its cache)." according to 
http://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/Syncable.html 
(This Interface also says sync deprecated in favor of hflush).

> HBASE-11980 calls hflush and hsync doing near double the syncing work
> ---------------------------------------------------------------------
>
>                 Key: HBASE-12130
>                 URL: https://issues.apache.org/jira/browse/HBASE-12130
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.0.0, 0.99.1
>            Reporter: stack
>            Assignee: stack
>            Priority: Critical
>         Attachments: Screen Shot 2014-09-30 at 9.17.09 PM.png
>
>
> The HBASE-11980 change has us doing hflush and hsync every time we call sync 
> (noticed profiling).  Fix.  Let me expose as config calling one or the other. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to