You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by nk...@apache.org on 2014/04/22 17:04:32 UTC
svn commit: r1589158 - in
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal:
FSHLog.java HLog.java
Author: nkeywal
Date: Tue Apr 22 15:04:32 2014
New Revision: 1589158
URL: http://svn.apache.org/r1589158
Log:
HBASE-11028 FSLog: Avoid an extra sync if the current transaction is already sync'd
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java?rev=1589158&r1=1589157&r2=1589158&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java Tue Apr 22 15:04:32 2014
@@ -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();
}
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java?rev=1589158&r1=1589157&r2=1589158&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java Tue Apr 22 15:04:32 2014
@@ -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;
/**