HBASE-13473 deleted cells come back alive after the stripe compaction (jeongmin kim)
This commit is contained in:
parent
ddab4726f6
commit
e08ef99e30
|
@ -248,7 +248,7 @@ public class StripeCompactionPolicy extends CompactionPolicy {
|
||||||
req = new SplitStripeCompactionRequest(
|
req = new SplitStripeCompactionRequest(
|
||||||
filesToCompact, si.getStartRow(bqIndex), si.getEndRow(bqIndex), targetCount, targetKvs);
|
filesToCompact, si.getStartRow(bqIndex), si.getEndRow(bqIndex), targetCount, targetKvs);
|
||||||
}
|
}
|
||||||
if (canDropDeletesWithoutL0 || includeL0) {
|
if (hasAllFiles && (canDropDeletesWithoutL0 || includeL0)) {
|
||||||
req.setMajorRange(si.getStartRow(bqIndex), si.getEndRow(bqIndex));
|
req.setMajorRange(si.getStartRow(bqIndex), si.getEndRow(bqIndex));
|
||||||
}
|
}
|
||||||
req.getRequest().setOffPeak(isOffpeak);
|
req.getRequest().setOffPeak(isOffpeak);
|
||||||
|
|
|
@ -40,6 +40,7 @@ import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
|
@ -424,6 +425,16 @@ public class TestStripeCompactionPolicy {
|
||||||
si = createStripesWithSizes(6, 2,
|
si = createStripesWithSizes(6, 2,
|
||||||
new Long[][] { new Long[] { 10L, 1L, 1L, 1L, 1L }, new Long[] { 12L } });
|
new Long[][] { new Long[] { 10L, 1L, 1L, 1L, 1L }, new Long[] { 12L } });
|
||||||
verifyCompaction(policy, si, si.getLevel0Files(), null, null, si.getStripeBoundaries());
|
verifyCompaction(policy, si, si.getLevel0Files(), null, null, si.getStripeBoundaries());
|
||||||
|
// even if L0 has no file
|
||||||
|
// if all files of stripe aren't selected, delete must not be dropped.
|
||||||
|
stripes = new Long[][] { new Long[] { 100L, 3L, 2L, 2L, 2L }, new Long[] { 6L } };
|
||||||
|
si = createStripesWithSizes(0, 0, stripes);
|
||||||
|
List<StoreFile> compact_file = new ArrayList<StoreFile>();
|
||||||
|
Iterator<StoreFile> iter = si.getStripes().get(0).listIterator(1);
|
||||||
|
while (iter.hasNext()) {
|
||||||
|
compact_file.add(iter.next());
|
||||||
|
}
|
||||||
|
verifyCompaction(policy, si, compact_file, false, 1, null, si.getStartRow(0), si.getEndRow(0), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/********* HELPER METHODS ************/
|
/********* HELPER METHODS ************/
|
||||||
|
|
Loading…
Reference in New Issue