HBASE-11028 FSLog: Avoid an extra sync if the current transaction is already sync'd
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1589158 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
2513370c3e
commit
5cf62f550f
|
@ -1486,8 +1486,11 @@ 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.highestSyncedSequence.get() >= txid){
|
||||
// Already sync'd.
|
||||
return;
|
||||
}
|
||||
publishSyncThenBlockOnCompletion();
|
||||
}
|
||||
|
||||
|
|
|
@ -342,16 +342,17 @@ public interface HLog {
|
|||
|
||||
void hflush() throws IOException;
|
||||
|
||||
/**
|
||||
* Sync what we have in the WAL.
|
||||
* @throws IOException
|
||||
*/
|
||||
void sync() throws IOException;
|
||||
|
||||
/**
|
||||
* Sync the WAL if the txId was not already sync'd.
|
||||
* @param txid Transaction id to sync to.
|
||||
* @throws IOException
|
||||
* @deprecated Since 0.96.2. Just call {@link #sync()}. <code>txid</code> should not be allowed
|
||||
* outside the implementation.
|
||||
*/
|
||||
// TODO: Why is this exposed? txid is an internal detail.
|
||||
@Deprecated
|
||||
void sync(long txid) throws IOException;
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue