Index: src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java (revision 1031861) +++ src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java (working copy) @@ -872,8 +872,13 @@ this.numEntries.incrementAndGet(); } - // sync txn to file system - this.sync(regionInfo.isMetaRegion()); + // Sync if catalog region, and if not then check if that table supports + // deferred log flushing + if (regionInfo.isMetaRegion() || + !regionInfo.getTableDesc().isDeferredLogFlush()) { + // sync txn to file system + this.sync(); + } } /** @@ -924,8 +929,13 @@ // Only count 1 row as an unflushed entry. this.unflushedEntries.incrementAndGet(); } - // sync txn to file system - this.sync(info.isMetaRegion()); + // Sync if catalog region, and if not then check if that table supports + // deferred log flushing + if (info.isMetaRegion() || + !info.getTableDesc().isDeferredLogFlush()) { + // sync txn to file system + this.sync(); + } } /** Index: src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java (revision 1031860) +++ src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java (working copy) @@ -95,7 +95,7 @@ public static final long DEFAULT_MAX_FILESIZE = 1024*1024*256L; - public static final boolean DEFAULT_DEFERRED_LOG_FLUSH = true; + public static final boolean DEFAULT_DEFERRED_LOG_FLUSH = false; private volatile Boolean meta = null; private volatile Boolean root = null;