|
32 | 32 | import java.util.concurrent.ExecutionException; |
33 | 33 | import java.util.concurrent.atomic.AtomicInteger; |
34 | 34 | import java.util.stream.Collectors; |
| 35 | +import org.apache.hadoop.conf.Configuration; |
35 | 36 | import org.apache.hadoop.hbase.HBaseClassTestRule; |
36 | 37 | import org.apache.hadoop.hbase.ServerName; |
37 | 38 | import org.apache.hadoop.hbase.TableName; |
|
41 | 42 | import org.apache.hadoop.hbase.master.ServerManager; |
42 | 43 | import org.apache.hadoop.hbase.master.assignment.AssignmentManager; |
43 | 44 | import org.apache.hadoop.hbase.master.assignment.RegionStates; |
| 45 | +import org.apache.hadoop.hbase.regionserver.compactions.CompactionConfiguration; |
44 | 46 | import org.apache.hadoop.hbase.regionserver.HRegionServer; |
45 | 47 | import org.apache.hadoop.hbase.regionserver.Region; |
46 | 48 | import org.apache.hadoop.hbase.testclassification.ClientTests; |
@@ -358,10 +360,25 @@ public void testCompactionSwitchStates() throws Exception { |
358 | 360 |
|
359 | 361 | @Test |
360 | 362 | public void testCompact() throws Exception { |
361 | | - compactionTest(TableName.valueOf("testCompact1"), 8, CompactionState.MAJOR, false); |
362 | | - compactionTest(TableName.valueOf("testCompact2"), 15, CompactionState.MINOR, false); |
363 | | - compactionTest(TableName.valueOf("testCompact3"), 8, CompactionState.MAJOR, true); |
364 | | - compactionTest(TableName.valueOf("testCompact4"), 15, CompactionState.MINOR, true); |
| 363 | + compactionTest(TableName.valueOf("testCompact1"), 15, CompactionState.MINOR, false); |
| 364 | + compactionTest(TableName.valueOf("testCompact2"), 15, CompactionState.MINOR, true); |
| 365 | + |
| 366 | + // For major compaction, set up a higher hbase.hstore.compaction.min to avoid |
| 367 | + // minor compactions. It is a hack to avoid random delays introduced by Admins's |
| 368 | + // updateConfiguration() method. |
| 369 | + TEST_UTIL.getMiniHBaseCluster().getRegionServerThreads().forEach(thread -> { |
| 370 | + Configuration conf = thread.getRegionServer().getConfiguration(); |
| 371 | + conf.setInt(CompactionConfiguration.HBASE_HSTORE_COMPACTION_MIN_KEY, 25); |
| 372 | + }); |
| 373 | + |
| 374 | + compactionTest(TableName.valueOf("testCompact3"), 8, CompactionState.MAJOR, false); |
| 375 | + compactionTest(TableName.valueOf("testCompact4"), 8, CompactionState.MAJOR, true); |
| 376 | + |
| 377 | + // Restore to default |
| 378 | + TEST_UTIL.getMiniHBaseCluster().getRegionServerThreads().forEach(thread -> { |
| 379 | + Configuration conf = thread.getRegionServer().getConfiguration(); |
| 380 | + conf.unset(CompactionConfiguration.HBASE_HSTORE_COMPACTION_MIN_KEY); |
| 381 | + }); |
365 | 382 | } |
366 | 383 |
|
367 | 384 | private void compactionTest(final TableName tableName, final int flushes, |
|
0 commit comments