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 2016/12/02 13:15:04 UTC
hbase git commit: HBASE-17232 Replace HashSet with ArrayList to
accumulate delayed scanners in KVHeap and StoreScanner.
Repository: hbase
Updated Branches:
refs/heads/master 4b3ffffa0 -> 9c13219f0
HBASE-17232 Replace HashSet with ArrayList to accumulate delayed scanners in KVHeap and StoreScanner.
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/9c13219f
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/9c13219f
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/9c13219f
Branch: refs/heads/master
Commit: 9c13219f0d142051bb31f3523f2f5b8e7f231d90
Parents: 4b3ffff
Author: binlijin <bi...@gmail.com>
Authored: Fri Dec 2 21:10:37 2016 +0800
Committer: binlijin <bi...@gmail.com>
Committed: Fri Dec 2 21:10:37 2016 +0800
----------------------------------------------------------------------
.../org/apache/hadoop/hbase/regionserver/KeyValueHeap.java | 7 ++++---
.../org/apache/hadoop/hbase/regionserver/StoreScanner.java | 4 +---
2 files changed, 5 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/9c13219f/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java
index f2b453a..ff76d20 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/KeyValueHeap.java
@@ -20,11 +20,10 @@
package org.apache.hadoop.hbase.regionserver;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Comparator;
-import java.util.HashSet;
import java.util.List;
import java.util.PriorityQueue;
-import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -53,7 +52,7 @@ public class KeyValueHeap extends NonReversedNonLazyKeyValueScanner
// Holds the scanners when a ever a eager close() happens. All such eagerly closed
// scans are collected and when the final scanner.close() happens will perform the
// actual close.
- protected Set<KeyValueScanner> scannersForDelayedClose = new HashSet<KeyValueScanner>();
+ protected List<KeyValueScanner> scannersForDelayedClose = null;
/**
* The current sub-scanner, i.e. the one that contains the next key/value
@@ -89,6 +88,8 @@ public class KeyValueHeap extends NonReversedNonLazyKeyValueScanner
KeyValueHeap(List<? extends KeyValueScanner> scanners,
KVScannerComparator comparator) throws IOException {
this.comparator = comparator;
+ this.scannersForDelayedClose = new ArrayList<KeyValueScanner>(
+ scanners.size());
if (!scanners.isEmpty()) {
this.heap = new PriorityQueue<KeyValueScanner>(scanners.size(),
this.comparator);
http://git-wip-us.apache.org/repos/asf/hbase/blob/9c13219f/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
index cb40909..7e08eca 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
@@ -24,10 +24,8 @@ import com.google.common.annotations.VisibleForTesting;
import java.io.IOException;
import java.io.InterruptedIOException;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.List;
import java.util.NavigableSet;
-import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.locks.ReentrantLock;
@@ -94,7 +92,7 @@ public class StoreScanner extends NonReversedNonLazyKeyValueScanner
// Collects all the KVHeap that are eagerly getting closed during the
// course of a scan
- protected Set<KeyValueHeap> heapsForDelayedClose = new HashSet<KeyValueHeap>();
+ protected List<KeyValueHeap> heapsForDelayedClose = new ArrayList<KeyValueHeap>();
/**
* The number of KVs seen by the scanner. Includes explicitly skipped KVs, but not