View Javadoc

1   /**
2    * Copyright 2011 The Apache Software Foundation
3    *
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *     http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS,
16   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17   * See the License for the specific language governing permissions and
18   * limitations under the License.
19   */
20  
21  package org.apache.hadoop.hbase.regionserver.compactions;
22  
23  /**
24   * This class holds information relevant for tracking the progress of a
25   * compaction.
26   *
27   * <p>The metrics tracked allow one to calculate the percent completion of the
28   * compaction based on the number of Key/Value pairs already compacted vs.
29   * total amount scheduled to be compacted.
30   *
31   */
32  public class CompactionProgress {
33  
34    /** the total compacting key values in currently running compaction */
35    public long totalCompactingKVs;
36    /** the completed count of key values in currently running compaction */
37    public long currentCompactedKVs = 0;
38  
39    /** Constructor
40     * @param totalCompactingKVs the total Key/Value pairs to be compacted
41     */
42    public CompactionProgress(long totalCompactingKVs) {
43      this.totalCompactingKVs = totalCompactingKVs;
44    }
45  
46    /** getter for calculated percent complete
47     * @return float
48     */
49    public float getProgressPct() {
50      return currentCompactedKVs / totalCompactingKVs;
51    }
52  }