[
https://issues.apache.org/jira/browse/HBASE-2158?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13098645#comment-13098645
]
gaojinchao commented on HBASE-2158:
-----------------------------------
when memory reach the low limit, we should start a emergency Flusher. So I
think It is diffcult to reach the high limit and if we reach it ,we will flush
one by one.
if (fqe == null || fqe instanceof WakeupFlushThread) {
if (isAboveLowWaterMark()) {
LOG.info("Flush thread woke up with memory above low water.");
if (!flushOneForGlobalPressure()) {
// Wasn't able to flush any region, but we're above low water mark
// This is unlikely to happen, but might happen when closing the
// entire server - another thread is flushing regions. We'll just
// sleep a little bit to avoid spinning, and then pretend that
// we flushed one, so anyone blocked will check again
lock.lock();
try {
Thread.sleep(1000);
flushOccurred.signalAll();
} finally {
lock.unlock();
}
}
// Enqueue another one of these tokens so we'll wake up again
wakeupFlushThread();
}
continue;
}
> Change how high/low global limit works; start taking on writes as soon as we
> dip below high limit rather than block until low limit as we currently do.
> -------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-2158
> URL: https://issues.apache.org/jira/browse/HBASE-2158
> Project: HBase
> Issue Type: Improvement
> Reporter: stack
>
> A Ryan Rawson suggestion. See HBASE-2149 for more context.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira