View Javadoc

1   /**
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  package org.apache.hadoop.hbase.regionserver.compactions;
20  
21  
22  import java.io.IOException;
23  import java.util.ArrayList;
24  
25  import org.apache.hadoop.conf.Configuration;
26  import org.apache.hadoop.hbase.regionserver.StoreConfigInformation;
27  import org.apache.hadoop.hbase.regionserver.StoreFile;
28  
29  /**
30   * Test Policy to compact everything every time.
31   */
32  public class EverythingPolicy extends RatioBasedCompactionPolicy {
33    /**
34     * Constructor.
35     *
36     * @param conf            The Conf.
37     * @param storeConfigInfo Info about the store.
38     */
39    public EverythingPolicy(final Configuration conf,
40                            final StoreConfigInformation storeConfigInfo) {
41      super(conf, storeConfigInfo);
42    }
43  
44    @Override
45    final ArrayList<StoreFile> applyCompactionPolicy(final ArrayList<StoreFile> candidates,
46      final boolean mayUseOffPeak, final boolean mayBeStuck) throws IOException {
47  
48      if (candidates.size() < comConf.getMinFilesToCompact()) {
49        return new ArrayList<StoreFile>(0);
50      }
51  
52      return new ArrayList<StoreFile>(candidates);
53    }
54  }