@Override
  public double getAverageTime() {
    if (!enoughStatistics()) {
      return super.getAverageTime();
    }
    // only we get enough statistics, then start WMA.
    double average = 0.0;
    int coIndex = 0;
    int length = getNumberOfStatistics();
    // tmIndex, it points to the oldest data.
    for (int tmIndex = (getMostRecentPosition() + 1) % length; coIndex
        < length; coIndex++, tmIndex = ++tmIndex % length) {
      // start the multiplication from oldest to newest
      average += coefficient[coIndex] * getStatisticsAtIndex(tmIndex);
    }
    return average / denominator;
  }
Different from SMA {@link SimpleMovingAverage}, WeightedMovingAverage gives each data different
weight. And it is based on {@link WindowMovingAverage}, such that it only focus on the last N.
hbase-common/src/main/java/org/apache/hadoop/hbase/util/WeightedMovingAverage.java