001/* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018package org.apache.hadoop.hbase.mob; 019 020import org.apache.hadoop.hbase.HBaseParameterizedTestTemplate; 021import org.apache.hadoop.hbase.testclassification.LargeTests; 022import org.junit.jupiter.api.Tag; 023 024/** 025 * Mob file compaction chore in a generational non-batch mode test. 1. Uses default (non-batch) mode 026 * for regular MOB compaction, sets generational mode ON 2. Disables periodic MOB compactions, sets 027 * minimum age to archive to 10 sec 3. Creates MOB table with 20 regions 4. Loads MOB data 028 * (randomized keys, 1000 rows), flushes data. 5. Repeats 4. two more times 6. Verifies that we have 029 * 20 *3 = 60 mob files (equals to number of regions x 3) 7. Runs major MOB compaction. 8. Verifies 030 * that number of MOB files in a mob directory is 20 x4 = 80 9. Waits for a period of time larger 031 * than minimum age to archive 10. Runs Mob cleaner chore 11 Verifies that number of MOB files in a 032 * mob directory is 20. 12 Runs scanner and checks all 3 * 1000 rows. 033 */ 034@Tag(LargeTests.TAG) 035@HBaseParameterizedTestTemplate(name = "{index}: useFileBasedSFT={0}") 036public class TestMobCompactionOptMode extends TestMobCompactionWithDefaults { 037 038 public TestMobCompactionOptMode(Boolean useFileBasedSFT) { 039 super(useFileBasedSFT); 040 } 041 042 protected void additonalConfigSetup() { 043 conf.set(MobConstants.MOB_COMPACTION_TYPE_KEY, MobConstants.OPTIMIZED_MOB_COMPACTION_TYPE); 044 conf.setLong(MobConstants.MOB_COMPACTION_MAX_FILE_SIZE_KEY, 1000000); 045 } 046 047 @Override 048 protected String description() { 049 return "generational (non-batch) mode"; 050 } 051 052}