Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
0.90.0
-
None
-
Reviewed
Description
I think this is the reason people see long blocking periods under write load.
Currently when we hit the global memstore limit, we call reclaimMemStoreMemory() which is synchronized - thus everyone has to wait until the memory has flushed down to the low water mark. This causes every writer to block for 10-15 seconds on a large heap.
Instead we should start triggering flushes (in another thread) whenever we're above the low water mark. Then only block writers when we're above the high water mark.
Attachments
Attachments
Issue Links
- duplicates
-
HBASE-2158 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.
- Closed
- is related to
-
HBASE-3438 Cluster Wide Pauses
- Closed