You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2013/11/05 06:27:31 UTC

svn commit: r1538867 - /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java

Author: stack
Date: Tue Nov  5 05:27:30 2013
New Revision: 1538867

URL: http://svn.apache.org/r1538867
Log:
HBASE-8942 DFS errors during a read operation (get/scan), may cause write outliers

Modified:
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java?rev=1538867&r1=1538866&r2=1538867&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java Tue Nov  5 05:27:30 2013
@@ -1678,16 +1678,21 @@ public class HStore implements Store {
   //////////////////////////////////////////////////////////////////////////////
 
   @Override
-  public KeyValueScanner getScanner(Scan scan, final NavigableSet<byte[]> targetCols, long readPt)
-      throws IOException {
-    KeyValueScanner scanner = null;
-    if (this.getCoprocessorHost() != null) {
-      scanner = this.getCoprocessorHost().preStoreScannerOpen(this, scan, targetCols);
-    }
-    if (scanner == null) {
-      scanner = new StoreScanner(this, getScanInfo(), scan, targetCols, readPt);
+  public KeyValueScanner getScanner(Scan scan,
+      final NavigableSet<byte []> targetCols, long readPt) throws IOException {
+    lock.readLock().lock();
+    try {
+      KeyValueScanner scanner = null;
+      if (this.getCoprocessorHost() != null) {
+        scanner = this.getCoprocessorHost().preStoreScannerOpen(this, scan, targetCols);
+      }
+      if (scanner == null) {
+        scanner = new StoreScanner(this, getScanInfo(), scan, targetCols, readPt);
+      }
+      return scanner;
+    } finally {
+      lock.readLock().unlock();
     }
-    return scanner;
   }
 
   @Override