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