From 5519f538444ba7e25b4893c8109a3fe6135eb4f3 Mon Sep 17 00:00:00 2001 From: manukranthk Date: Tue, 7 Oct 2014 15:10:45 -0700 Subject: [PATCH] [INTERNAL] Fix TestAtomicOperation Summary: TestAtomicOperation attempts to make sure the puts/deletes/appends/increments etc are happening in appropriate order. I don't see any reason for us to wait for the WAL when we can't actually replay and resume the test. Note that this is a LocalHRegion instance. Seems like the configuration for a local HRegion might be slow by default. We probably need to fix that. Test Plan: Unit test proceeds well. Reviewers: elliott, daviddeng Subscribers: bisho, hbase-eng@ Differential Revision: https://phabricator.fb.com/D1601434 Tasks: 5285949 --- .../hadoop/hbase/regionserver/TestAtomicOperation.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java index b22228c..c1c4cf6 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java @@ -63,6 +63,7 @@ import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp; import org.apache.hadoop.hbase.io.HeapSize; import org.apache.hadoop.hbase.regionserver.wal.HLog; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.junit.After; import org.junit.Before; import org.junit.Rule; @@ -70,7 +71,6 @@ import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.rules.TestName; - /** * Testing of HRegion.incrementColumnValue, HRegion.increment, * and HRegion.append @@ -237,6 +237,7 @@ public class TestAtomicOperation { inc.addColumn(fam1, qual1, amount); inc.addColumn(fam1, qual2, amount*2); inc.addColumn(fam2, qual3, amount*3); + inc.setDurability(Durability.ASYNC_WAL); region.increment(inc); // verify: Make sure we only see completed increments @@ -274,6 +275,7 @@ public class TestAtomicOperation { a.add(fam1, qual1, val); a.add(fam1, qual2, val); a.add(fam2, qual3, val); + a.setDurability(Durability.ASYNC_WAL); region.append(a); Get g = new Get(row); @@ -349,16 +351,20 @@ public class TestAtomicOperation { if (op) { Put p = new Put(row, ts); p.add(fam1, qual1, value1); + p.setDurability(Durability.ASYNC_WAL); rm.add(p); Delete d = new Delete(row); d.deleteColumns(fam1, qual2, ts); + d.setDurability(Durability.ASYNC_WAL); rm.add(d); } else { Delete d = new Delete(row); d.deleteColumns(fam1, qual1, ts); + d.setDurability(Durability.ASYNC_WAL); rm.add(d); Put p = new Put(row, ts); p.add(fam1, qual2, value2); + p.setDurability(Durability.ASYNC_WAL); rm.add(p); } region.mutateRow(rm); @@ -434,23 +440,30 @@ public class TestAtomicOperation { } } long ts = timeStamps.incrementAndGet(); + long startTime = EnvironmentEdgeManager.currentTimeMillis(); List mrm = new ArrayList(); if (op) { Put p = new Put(row2, ts); p.add(fam1, qual1, value1); + p.setDurability(Durability.ASYNC_WAL); mrm.add(p); Delete d = new Delete(row); d.deleteColumns(fam1, qual1, ts); + d.setDurability(Durability.ASYNC_WAL); mrm.add(d); } else { Delete d = new Delete(row2); d.deleteColumns(fam1, qual1, ts); + d.setDurability(Durability.ASYNC_WAL); mrm.add(d); Put p = new Put(row, ts); + p.setDurability(Durability.ASYNC_WAL); p.add(fam1, qual1, value2); mrm.add(p); } region.mutateRowsWithLocks(mrm, rowsToLock); + long endTime = EnvironmentEdgeManager.currentTimeMillis(); + LOG.debug("MANU : Total Put time : " + (endTime - startTime)); op ^= true; // check: should always see exactly one column Scan s = new Scan(row); -- 1.9.4