HBASE-2439 HBase can get stuck if updates to META are blocked
git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@934231 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4e37ace7c9
commit
40c45392b3
|
@ -269,6 +269,8 @@ Release 0.21.0 - Unreleased
|
||||||
HBASE-2346 Usage of FilterList slows down scans
|
HBASE-2346 Usage of FilterList slows down scans
|
||||||
HBASE-2341 ZK settings for initLimit/syncLimit should not have been removed
|
HBASE-2341 ZK settings for initLimit/syncLimit should not have been removed
|
||||||
from hbase-default.xml
|
from hbase-default.xml
|
||||||
|
HBASE-2439 HBase can get stuck if updates to META are blocked
|
||||||
|
(Kannan Muthukkaruppan via Stack)
|
||||||
|
|
||||||
IMPROVEMENTS
|
IMPROVEMENTS
|
||||||
HBASE-1760 Cleanup TODOs in HTable
|
HBASE-1760 Cleanup TODOs in HTable
|
||||||
|
|
|
@ -1444,6 +1444,10 @@ public class HRegion implements HConstants, HeapSize { // , Writable{
|
||||||
* the notify.
|
* the notify.
|
||||||
*/
|
*/
|
||||||
private void checkResources() {
|
private void checkResources() {
|
||||||
|
|
||||||
|
// If catalog region, do not impose resource constraints or block updates.
|
||||||
|
if (this.getRegionInfo().isMetaRegion()) return;
|
||||||
|
|
||||||
boolean blocked = false;
|
boolean blocked = false;
|
||||||
while (this.memstoreSize.get() > this.blockingMemStoreSize) {
|
while (this.memstoreSize.get() > this.blockingMemStoreSize) {
|
||||||
requestFlush();
|
requestFlush();
|
||||||
|
|
|
@ -221,7 +221,10 @@ class MemStoreFlusher extends Thread implements FlushRequester {
|
||||||
// queue if there's too many files.
|
// queue if there's too many files.
|
||||||
if (removeFromQueue) {
|
if (removeFromQueue) {
|
||||||
checkStoreFileCount(region);
|
checkStoreFileCount(region);
|
||||||
} else if (isTooManyStoreFiles(region)) {
|
} else if ((!region.getRegionInfo().isMetaRegion()) &&
|
||||||
|
isTooManyStoreFiles(region)) {
|
||||||
|
// Note: We don't impose blockingStoreFiles constraint on meta regions
|
||||||
|
|
||||||
LOG.warn("Region " + region.getRegionNameAsString() + " has too many " +
|
LOG.warn("Region " + region.getRegionNameAsString() + " has too many " +
|
||||||
"store files, putting it back at the end of the flush queue.");
|
"store files, putting it back at the end of the flush queue.");
|
||||||
server.compactSplitThread.compactionRequested(region, getName());
|
server.compactSplitThread.compactionRequested(region, getName());
|
||||||
|
|
Loading…
Reference in New Issue