[ https://issues.apache.org/jira/browse/HBASE-8942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13812319#comment-13812319 ]
Hudson commented on HBASE-8942: ------------------------------- SUCCESS: Integrated in HBase-TRUNK #4665 (See [https://builds.apache.org/job/HBase-TRUNK/4665/]) HBASE-8942 DFS errors during a read operation (get/scan), may cause write outliers (stack: rev 1538317) * /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java > DFS errors during a read operation (get/scan), may cause write outliers > ----------------------------------------------------------------------- > > Key: HBASE-8942 > URL: https://issues.apache.org/jira/browse/HBASE-8942 > Project: HBase > Issue Type: Bug > Affects Versions: 0.89-fb, 0.95.2 > Reporter: Amitanand Aiyer > Assignee: Amitanand Aiyer > Priority: Minor > Fix For: 0.89-fb, 0.98.0, 0.96.1 > > Attachments: 8942.096.txt, HBase-8942.txt > > > This is a similar issue as discussed in HBASE-8228 > 1) A scanner holds the Store.ReadLock() while opening the store files ... > encounters errors. Thus, takes a long time to finish. > 2) A flush is completed, in the mean while. It needs the write lock to > commit(), and update scanners. Hence ends up waiting. > 3+) All Puts (and also Gets) to the CF, which will need a read lock, will > have to wait for 1) and 2) to complete. Thus blocking updates to the system > for the DFS timeout. > Fix: > Open Store files outside the read lock. getScanners() already tries to do > this optimisation. However, Store.getScanner() which calls this functions > through the StoreScanner constructor, redundantly tries to grab the readLock. > Causing the readLock to be held while the storeFiles are being opened, and > seeked. > We should get rid of the readLock() in Store.getScanner(). This is not > required. The constructor for StoreScanner calls getScanners(xxx, xxx, xxx). > This has the required locking already. -- This message was sent by Atlassian JIRA (v6.1#6144)