HBASE-21575 : memstore above high watermark message is logged too much

This commit is contained in:
Sergey Shelukhin 2018-12-12 11:02:25 -08:00
parent 9a25d0c249
commit 3ff274e22e
1 changed files with 6 additions and 2 deletions

View File

@ -703,6 +703,7 @@ class MemStoreFlusher implements FlushRequester {
if (flushType != FlushType.NORMAL) { if (flushType != FlushType.NORMAL) {
TraceUtil.addTimelineAnnotation("Force Flush. We're above high water mark."); TraceUtil.addTimelineAnnotation("Force Flush. We're above high water mark.");
long start = EnvironmentEdgeManager.currentTime(); long start = EnvironmentEdgeManager.currentTime();
long nextLogTimeMs = start;
synchronized (this.blockSignal) { synchronized (this.blockSignal) {
boolean blocked = false; boolean blocked = false;
long startTime = 0; long startTime = 0;
@ -744,8 +745,11 @@ class MemStoreFlusher implements FlushRequester {
LOG.warn("Interrupted while waiting"); LOG.warn("Interrupted while waiting");
interrupted = true; interrupted = true;
} }
long took = EnvironmentEdgeManager.currentTime() - start; long nowMs = EnvironmentEdgeManager.currentTime();
LOG.warn("Memstore is above high water mark and block " + took + "ms"); if (nowMs >= nextLogTimeMs) {
LOG.warn("Memstore is above high water mark and block {} ms", nowMs - start);
nextLogTimeMs = nowMs + 1000;
}
flushType = isAboveHighWaterMark(); flushType = isAboveHighWaterMark();
} }
} finally { } finally {