From b4d448ecb16338975424ec8bba364bb6c29d6264 Mon Sep 17 00:00:00 2001 From: Benoit Sigoure Date: Sun, 21 Feb 2010 23:56:59 -0800 Subject: [PATCH] HBASE-2245 Don't call syncWal when not needed. Signed-off-by: Benoit Sigoure --- .../hadoop/hbase/regionserver/HRegionServer.java | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index bcf908e..48d3124 100644 --- a/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ b/core/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -1684,9 +1684,12 @@ public class HRegionServer implements HConstants, HRegionInterface, if (!region.getRegionInfo().isMetaTable()) { this.cacheFlusher.reclaimMemStoreMemory(); } - region.put(put, getLockFromId(put.getLockId())); + boolean writeToWAL = put.getWriteToWAL(); + region.put(put, getLockFromId(put.getLockId()), writeToWAL); - this.syncWal(region); + if (writeToWAL) { + this.syncWal(region); + } } catch (Throwable t) { throw convertThrowableToIOE(cleanup(t)); } @@ -1698,6 +1701,7 @@ public class HRegionServer implements HConstants, HRegionInterface, int i = 0; checkOpen(); HRegion region = null; + boolean writeToWAL = true; try { region = getRegion(regionName); if (!region.getRegionInfo().isMetaTable()) { @@ -1706,6 +1710,7 @@ public class HRegionServer implements HConstants, HRegionInterface, for (i = 0; i < puts.length; i++) { this.requestCount.incrementAndGet(); Integer lock = getLockFromId(puts[i].getLockId()); + writeToWAL &= puts[i].getWriteToWAL(); region.put(puts[i], lock); } @@ -1720,7 +1725,9 @@ public class HRegionServer implements HConstants, HRegionInterface, } // All have been processed successfully. - this.syncWal(region); + if (writeToWAL) { + this.syncWal(region); + } return -1; } @@ -2378,7 +2385,9 @@ public class HRegionServer implements HConstants, HRegionInterface, long retval = region.incrementColumnValue(row, family, qualifier, amount, writeToWAL); - syncWal(region); + if (writeToWAL) { + syncWal(region); + } return retval; } catch (IOException e) { -- 1.7.0.1.61.gdc05d