Repository: hbase Updated Branches: refs/heads/branch-2 c2e3d5208 -> 514eadbe9
HBASE-19658 make the test testFlatteningToJumboCellChunkMap() stable, by eliminating the possibility of third cell to be added while in-memory-flush is still in progress Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/514eadbe Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/514eadbe Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/514eadbe Branch: refs/heads/branch-2 Commit: 514eadbe9503c1162085890a86217a23457eb21d Parents: c2e3d52 Author: anastas <anas...@yahoo-inc.com> Authored: Mon Feb 5 11:29:10 2018 +0200 Committer: anastas <anas...@yahoo-inc.com> Committed: Mon Feb 5 11:29:10 2018 +0200 ---------------------------------------------------------------------- .../TestCompactingToCellFlatMapMemStore.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/514eadbe/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactingToCellFlatMapMemStore.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactingToCellFlatMapMemStore.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactingToCellFlatMapMemStore.java index 0036426..25265b3 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactingToCellFlatMapMemStore.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompactingToCellFlatMapMemStore.java @@ -754,9 +754,9 @@ public class TestCompactingToCellFlatMapMemStore extends TestCompactingMemStore // set memstore to flat into CellChunkMap MemoryCompactionPolicy compactionType = MemoryCompactionPolicy.BASIC; memstore.getConfiguration().set(CompactingMemStore.COMPACTING_MEMSTORE_TYPE_KEY, - String.valueOf(compactionType)); - ((MyCompactingMemStore)memstore).initiateType(compactionType, memstore.getConfiguration()); - ((CompactingMemStore)memstore).setIndexType(CompactingMemStore.IndexType.CHUNK_MAP); + String.valueOf(compactionType)); + ((MyCompactingMemStore) memstore).initiateType(compactionType, memstore.getConfiguration()); + ((CompactingMemStore) memstore).setIndexType(CompactingMemStore.IndexType.CHUNK_MAP); int numOfCells = 1; char[] chars = new char[MemStoreLAB.CHUNK_SIZE_DEFAULT]; @@ -764,7 +764,7 @@ public class TestCompactingToCellFlatMapMemStore extends TestCompactingMemStore chars[i] = 'A'; } String bigVal = new String(chars); - String[] keys1 = { "A"}; + String[] keys1 = {"A"}; // make one cell byte[] row = Bytes.toBytes(keys1[0]); @@ -784,7 +784,7 @@ public class TestCompactingToCellFlatMapMemStore extends TestCompactingMemStore assertEquals(totalCellsLen, regionServicesForStores.getMemStoreSize()); assertEquals(totalHeapSize, ((CompactingMemStore) memstore).heapSize()); - ((CompactingMemStore)memstore).flushInMemory(); // push keys to pipeline and flatten + ((CompactingMemStore) memstore).flushInMemory(); // push keys to pipeline and flatten while (((CompactingMemStore) memstore).isMemStoreFlushingInMemory()) { Threads.sleep(10); } @@ -809,12 +809,17 @@ public class TestCompactingToCellFlatMapMemStore extends TestCompactingMemStore memstore.clearSnapshot(snapshot.getId()); - String[] keys2 = { "C", "D", "E"}; + // Allocating two big cells (too big for being copied into a regular chunk). + String[] keys2 = {"C", "D"}; addRowsByKeys(memstore, keys2, val); while (((CompactingMemStore) memstore).isMemStoreFlushingInMemory()) { Threads.sleep(10); } - totalHeapSize = 1 * oneCellOnCSLMHeapSize + MutableSegment.DEEP_OVERHEAD + + // The in-memory flush size is bigger than the size of a single cell, + // but smaller than the size of two cells. + // Therefore, the two created cells are flattened together. + totalHeapSize = MutableSegment.DEEP_OVERHEAD + CellChunkImmutableSegment.DEEP_OVERHEAD_CCM + 2 * oneCellOnCCMHeapSize; assertEquals(totalHeapSize, ((CompactingMemStore) memstore).heapSize());