Author: stack Date: Fri Apr 16 01:14:17 2010 New Revision: 934659 URL: http://svn.apache.org/viewvc?rev=934659&view=rev Log: HBASE-2453 Revisit compaction policies after HBASE-2248 commit
Modified: hadoop/hbase/branches/0.20/CHANGES.txt hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/MinorCompactingStoreScanner.java hadoop/hbase/branches/0.20/src/test/org/apache/hadoop/hbase/regionserver/TestMinorCompactingStoreScanner.java Modified: hadoop/hbase/branches/0.20/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/CHANGES.txt?rev=934659&r1=934658&r2=934659&view=diff ============================================================================== --- hadoop/hbase/branches/0.20/CHANGES.txt (original) +++ hadoop/hbase/branches/0.20/CHANGES.txt Fri Apr 16 01:14:17 2010 @@ -135,6 +135,8 @@ Release 0.20.4 - Unreleased HBASE-2440 Master UI should check against known bad JDK versions and warn the user (Todd Lipcon via Stack) HBASE-1892 [performance] make hbase splits run faster + HBASE-2453 Revisit compaction policies after HBASE-2248 commit + (Jonathan Gray via Stack) NEW FEATURES HBASE-2257 [stargate] multiuser mode Modified: hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/MinorCompactingStoreScanner.java URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/MinorCompactingStoreScanner.java?rev=934659&r1=934658&r2=934659&view=diff ============================================================================== --- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/MinorCompactingStoreScanner.java (original) +++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/MinorCompactingStoreScanner.java Fri Apr 16 01:14:17 2010 @@ -35,13 +35,11 @@ import org.apache.hadoop.hbase.io.hfile. public class MinorCompactingStoreScanner implements KeyValueScanner, InternalScanner { private KeyValueHeap heap; - private ScanDeleteTracker deleteTracker; private KeyValue.KVComparator comparator; MinorCompactingStoreScanner(Store store, KeyValueScanner [] scanners) { comparator = store.comparator; - deleteTracker = new ScanDeleteTracker(); KeyValue firstKv = KeyValue.createFirstOnRow(HConstants.EMPTY_START_ROW); for (KeyValueScanner scanner : scanners ) { scanner.seek(firstKv); @@ -53,7 +51,6 @@ public class MinorCompactingStoreScanner MinorCompactingStoreScanner(String cfName, KeyValue.KVComparator comparator, KeyValueScanner [] scanners) { this.comparator = comparator; - deleteTracker = new ScanDeleteTracker(); KeyValue firstKv = KeyValue.createFirstOnRow(HConstants.EMPTY_START_ROW); for (KeyValueScanner scanner : scanners ) { @@ -89,9 +86,6 @@ public class MinorCompactingStoreScanner close(); return false; } - // between rows. - deleteTracker.reset(); - KeyValue kv; while ((kv = heap.peek()) != null) { // check to see if this is a different row @@ -99,27 +93,6 @@ public class MinorCompactingStoreScanner // reached next row return true; } - - // if delete type, output no matter what: - if (kv.getType() != KeyValue.Type.Put.getCode()) { - deleteTracker.add(kv.getBuffer(), - kv.getQualifierOffset(), - kv.getQualifierLength(), - kv.getTimestamp(), - kv.getType()); - - writer.append(heap.next()); - continue; - } - - if (deleteTracker.isDeleted(kv.getBuffer(), - kv.getQualifierOffset(), - kv.getQualifierLength(), - kv.getTimestamp())) { - heap.next(); - continue; - } - writer.append(heap.next()); } close(); @@ -133,9 +106,6 @@ public class MinorCompactingStoreScanner close(); return false; } - // between rows. - deleteTracker.reset(); - KeyValue kv; while ((kv = heap.peek()) != null) { // check to see if this is a different row @@ -143,27 +113,6 @@ public class MinorCompactingStoreScanner // reached next row return true; } - - // if delete type, output no matter what: - if (kv.getType() != KeyValue.Type.Put.getCode()) { - deleteTracker.add(kv.getBuffer(), - kv.getQualifierOffset(), - kv.getQualifierLength(), - kv.getTimestamp(), - kv.getType()); - - results.add(heap.next()); - continue; - } - - if (deleteTracker.isDeleted(kv.getBuffer(), - kv.getQualifierOffset(), - kv.getQualifierLength(), - kv.getTimestamp())) { - heap.next(); - continue; - } - results.add(heap.next()); } close(); Modified: hadoop/hbase/branches/0.20/src/test/org/apache/hadoop/hbase/regionserver/TestMinorCompactingStoreScanner.java URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/test/org/apache/hadoop/hbase/regionserver/TestMinorCompactingStoreScanner.java?rev=934659&r1=934658&r2=934659&view=diff ============================================================================== --- hadoop/hbase/branches/0.20/src/test/org/apache/hadoop/hbase/regionserver/TestMinorCompactingStoreScanner.java (original) +++ hadoop/hbase/branches/0.20/src/test/org/apache/hadoop/hbase/regionserver/TestMinorCompactingStoreScanner.java Fri Apr 16 01:14:17 2010 @@ -52,10 +52,18 @@ public class TestMinorCompactingStoreSca new MinorCompactingStoreScanner("cf", KeyValue.COMPARATOR, scanners); List<KeyValue> results = new ArrayList<KeyValue>(); assertTrue(scan.next(results)); - assertEquals(3, results.size()); + assertEquals(11, results.size()); assertEquals(kvs[0], results.get(0)); - assertEquals(kvs[5], results.get(1)); - assertEquals(kvs[8], results.get(2)); + assertEquals(kvs[1], results.get(1)); + assertEquals(kvs[2], results.get(2)); + assertEquals(kvs[3], results.get(3)); + assertEquals(kvs[5], results.get(4)); + assertEquals(kvs[4], results.get(5)); + assertEquals(kvs[6], results.get(6)); + assertEquals(kvs[8], results.get(7)); + assertEquals(kvs[7], results.get(8)); + assertEquals(kvs[9], results.get(9)); + assertEquals(kvs[10], results.get(10)); results.clear(); assertFalse(scan.next(results)); @@ -76,8 +84,9 @@ public class TestMinorCompactingStoreSca new MinorCompactingStoreScanner("cf", KeyValue.COMPARATOR, scanners); List<KeyValue> results = new ArrayList<KeyValue>(); assertFalse(scan.next(results)); - assertEquals(2, results.size()); + assertEquals(3, results.size()); assertEquals(kvs[0], results.get(0)); assertEquals(kvs[1], results.get(1)); + assertEquals(kvs[2], results.get(2)); } }