HBASE-5162 - Basic client pushback mechanism
Review Request #3930 - Created Feb. 16, 2012 and updated
Under heavy write load, HBase will create a saw-tooth pattern in accepting writes. This is due to the I/O in minor compactions not being able to keep up with the write load. Specifically, the memstore is attempting to flush while we are attempting to do a minor compaction, leading to blocking _all_ writes. Instead, we need to have the option of graceful degradation mechanism. This patch supports both a short-term,adjustable server-side write blocking as well as client-side back-off to help alleviate temporary memstore pressure.