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