You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bi...@apache.org on 2020/05/18 02:22:30 UTC
[hbase] branch branch-2.2 updated: HBASE-24377 MemStoreFlusher
throw NullPointerException (#1721)
This is an automated email from the ASF dual-hosted git repository.
binlijin pushed a commit to branch branch-2.2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.2 by this push:
new 9b3fe09 HBASE-24377 MemStoreFlusher throw NullPointerException (#1721)
9b3fe09 is described below
commit 9b3fe09518b40da79f694e1345f0b9f1e7bd2ff9
Author: binlijin <bi...@gmail.com>
AuthorDate: Mon May 18 09:58:28 2020 +0800
HBASE-24377 MemStoreFlusher throw NullPointerException (#1721)
Signed-off-by: Ramkrishna <ra...@apache.org>
Signed-off-by: Anoop Sam John <an...@gmail.com>
Signed-off-by: Duo Zhang <zh...@apache.org>
---
.../apache/hadoop/hbase/regionserver/MemStoreFlusher.java | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
index 2e9db58..b0f6315 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
@@ -86,8 +86,6 @@ class MemStoreFlusher implements FlushRequester {
private final FlushHandler[] flushHandlers;
private List<FlushRequestListener> flushRequestListeners = new ArrayList<>(1);
- private FlushType flushType;
-
/**
* Singleton instance inserted into flush queue used for signaling.
*/
@@ -148,17 +146,13 @@ class MemStoreFlusher implements FlushRequester {
return this.updatesBlockedMsHighWater;
}
- public void setFlushType(FlushType flushType) {
- this.flushType = flushType;
- }
-
/**
* The memstore across all regions has exceeded the low water mark. Pick
* one region to flush and flush it synchronously (this is called from the
* flush thread)
* @return true if successful
*/
- private boolean flushOneForGlobalPressure() {
+ private boolean flushOneForGlobalPressure(FlushType flushType) {
SortedMap<Long, HRegion> regionsBySize = null;
switch(flushType) {
case ABOVE_OFFHEAP_HIGHER_MARK:
@@ -348,7 +342,7 @@ class MemStoreFlusher implements FlushRequester {
// we still select the regions based on the region's memstore data size.
// TODO : If we want to decide based on heap over head it can be done without tracking
// it per region.
- if (!flushOneForGlobalPressure()) {
+ if (!flushOneForGlobalPressure(type)) {
// 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
@@ -711,7 +705,6 @@ class MemStoreFlusher implements FlushRequester {
try {
flushType = isAboveHighWaterMark();
while (flushType != FlushType.NORMAL && !server.isStopped()) {
- server.cacheFlusher.setFlushType(flushType);
if (!blocked) {
startTime = EnvironmentEdgeManager.currentTime();
if (!server.getRegionServerAccounting().isOffheap()) {
@@ -769,7 +762,6 @@ class MemStoreFlusher implements FlushRequester {
} else {
flushType = isAboveLowWaterMark();
if (flushType != FlushType.NORMAL) {
- server.cacheFlusher.setFlushType(flushType);
wakeupFlushThread();
}
}