apurtell commented on a change in pull request #2574:
URL: https://github.com/apache/hbase/pull/2574#discussion_r514337192



##########
File path: 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
##########
@@ -8730,12 +8868,22 @@ public void startRegionOperation() throws IOException {
 
   @Override
   public void startRegionOperation(Operation op) throws IOException {
+    boolean isInterruptableOp = false;
     switch (op) {
-      case GET:  // read operations
+      case GET:  // interruptible read operations
       case SCAN:
+        isInterruptableOp = true;

Review comment:
       There are some checkInterrupts placed inside the scanner inner loops. 
Get, Exist, and Scan operations all share this path. I did not put 
checkInterrupt into the checkAndXXX operations because these are point ops that 
will complete quickly, but could if you feel this represents missing coverage. 
@Reidddddd 
   
   On the write path there are checkInterrupts placed at points in 
doMiniBatchMutation to catch the cases where we are likely to run a long time, 
and the row mutation processor also checks for interrupts. Again not every 
operation has a check, like Increment or Append, where the unit of work is 
small, but we could add them there too if you feel this represents missing 
coverage. 
   
   My opinion is the long running cases are where the check is definitely worth 
it -- scanners on the read side, batch mutations on the write side -- and 
others are marginal (and therefore not included).




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to