Hi, guys,

see the below codes in* MemStoreFlusher.java*, i am not sure if those  lines
in orange are the same and looks like they are trying to do the same logic.
Are they redundant?

regards
macf

    if (!flushRegion(biggestMemStoreRegion, true)) {
        LOG.warn("Flush failed");
        break;
      }
      regionsToCompact.add(biggestMemStoreRegion);
    }
    for (HRegion region : regionsToCompact) {
      server.compactSplitThread.compactionRequested(region, getName());
    }

in flushRegion

  private boolean flushRegion(final HRegion region, final boolean
emergencyFlush) {
    synchronized (this.regionsInQueue) {
      FlushQueueEntry fqe = this.regionsInQueue.remove(region);
      if (fqe != null && emergencyFlush) {
        // Need to remove from region from delay queue.  When NOT an
        // emergencyFlush, then item was removed via a flushQueue.poll.
        flushQueue.remove(fqe);
      }
      lock.lock();
    }
    try {
      if (region.flushcache()) {
        server.compactSplitThread.compactionRequested(region, getName());
      }

Reply via email to