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