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());
}