Fix deadlock caused by HBASE-790 patch
git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@681889 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
92bd62bf58
commit
165e2ed915
|
@ -503,9 +503,7 @@ public class HRegion implements HConstants {
|
||||||
HTableDescriptor.DEFAULT_MEMCACHE_FLUSH_SIZE);
|
HTableDescriptor.DEFAULT_MEMCACHE_FLUSH_SIZE);
|
||||||
}
|
}
|
||||||
this.memcacheFlushSize = flushSize;
|
this.memcacheFlushSize = flushSize;
|
||||||
|
this.blockingMemcacheSize = this.memcacheFlushSize * flushSize;
|
||||||
this.blockingMemcacheSize = this.memcacheFlushSize *
|
|
||||||
conf.getInt("hbase.hregion.memcache.block.multiplier", 1);
|
|
||||||
|
|
||||||
// See if region is meant to run read-only.
|
// See if region is meant to run read-only.
|
||||||
if (this.regionInfo.getTableDesc().isReadOnly()) {
|
if (this.regionInfo.getTableDesc().isReadOnly()) {
|
||||||
|
@ -1426,7 +1424,6 @@ public class HRegion implements HConstants {
|
||||||
private synchronized void checkResources() {
|
private synchronized void checkResources() {
|
||||||
boolean blocked = false;
|
boolean blocked = false;
|
||||||
while (this.memcacheSize.get() > this.blockingMemcacheSize) {
|
while (this.memcacheSize.get() > this.blockingMemcacheSize) {
|
||||||
requestFlush();
|
|
||||||
if (!blocked) {
|
if (!blocked) {
|
||||||
LOG.info("Blocking updates for '" + Thread.currentThread().getName() +
|
LOG.info("Blocking updates for '" + Thread.currentThread().getName() +
|
||||||
"' on region " + Bytes.toString(getRegionName()) + ": Memcache size " +
|
"' on region " + Bytes.toString(getRegionName()) + ": Memcache size " +
|
||||||
|
|
Loading…
Reference in New Issue