@Override
  public void onConfigurationChange(Configuration newConf) {
    int newHandlerCount = getHandlerCount(newConf);
    if (newHandlerCount != flushHandlers.length) {
      LOG.info("update hbase.hstore.flusher.count from {} to {}", flushHandlers.length,
        newHandlerCount);
      lock.writeLock().lock();
      try {
        FlushHandler[] newFlushHandlers = Arrays.copyOf(flushHandlers, newHandlerCount);
        if (newHandlerCount > flushHandlers.length) {
          startFlushHandlerThreads(newFlushHandlers, flushHandlers.length, newFlushHandlers.length);
        } else {
          stopFlushHandlerThreads(flushHandlers, newHandlerCount, flushHandlers.length);
        }
        flusherIdGen.compareAndSet(flushHandlers.length, newFlushHandlers.length);
        this.flushHandlers = newFlushHandlers;
      } finally {
        lock.writeLock().unlock();
      }
    }
  }
@param when When to expire, when to come up out of the queue. Specify in milliseconds. This
            method adds EnvironmentEdgeManager.currentTime() to whatever you pass.
@return This.
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java