[ 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)