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

stack commented on HBASE-10156:
-------------------------------

[~liochon] You have a point.

We could do this:

@@ -1486,6 +1488,9 @@ class FSHLog implements HLog, Syncable {
   @Override
   // txid is unused.  txid is an implementation detail.  It should not leak 
outside of WAL.
   public void sync(long txid) throws IOException {
+    // If this edit has been sync'd already, we can just return.  This is 
dangerous.  Can only
+    // be for a single edit or for a sequence of edits written by this thread.
+    if (this.highestSyncedSequence.get() > txid) return;
     publishSyncThenBlockOnCompletion();
   }

This is all before the ringbuffer.  It would be hard to do on other side of the 
ringbuffer unless we carried this seqid -- which would be different from the 
ringbuffers' current seqid -- over to the other side and then on the other side 
did something similar (would be a bit more involved on other side since context 
would be blown).

Good one.

(Would have to undo my 'deprecation' of the sync that takes a txid in a more 
complete patch).

> FSHLog Refactor (WAS -> Fix up the HBASE-8755 slowdown when low contention)
> ---------------------------------------------------------------------------
>
>                 Key: HBASE-10156
>                 URL: https://issues.apache.org/jira/browse/HBASE-10156
>             Project: HBase
>          Issue Type: Sub-task
>          Components: wal
>            Reporter: stack
>            Assignee: stack
>             Fix For: 0.99.0
>
>         Attachments: 10156.txt, 10156v10.txt, 10156v11.txt, 10156v12.txt, 
> 10156v12.txt, 10156v13.txt, 10156v16.txt, 10156v17.txt, 10156v18.txt, 
> 10156v19.txt, 10156v2.txt, 10156v20.txt, 10156v20.txt, 10156v21.txt, 
> 10156v21.txt, 10156v21.txt, 10156v3.txt, 10156v4.txt, 10156v5.txt, 
> 10156v6.txt, 10156v7.txt, 10156v9.txt, Disrupting.java
>
>
> HBASE-8755 slows our writes when only a few clients.  Fix.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to