comnetwork commented on code in PR #4940:
URL: https://github.com/apache/hbase/pull/4940#discussion_r1066726624


##########
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionScannerImpl.java:
##########
@@ -426,6 +426,8 @@ private boolean nextInternal(List<Cell> results, 
ScannerContext scannerContext)
     // Used to check time limit
     LimitScope limitScope = LimitScope.BETWEEN_CELLS;
 
+    checkpoint(State.START);

Review Comment:
   @bbeaudreault , thank you for the elaborate work and I agree your point that 
adding a new boolean `checkpointEnabled` make the logic more clear.
   
   > The contract is that if you are using checkpointing, you also need to call 
retainBlock(). If you are not using checkpointing, you don't need to call 
retainBlock().
   
   I agree with the first part of the sentence, but have doubts about the 
second. From you code, I think for scan by `RegionScannnerImpl`,  `retainBlock` 
is always needed to release block early,  only when there is filter(especially 
row level filter),we need checkpoint further to narrow the blocks which should 
be retained?So  we could only use `retainBlock`  for  user scan which 
specifying columns but not has filters.  If you agree with my point, I think 
the variable name `boolean checkpointingEnabled` is not very appropriate, I 
think maybe `earlyReleaseBlockEnabled` is more  indicative of the intentions?
   
   
   
   



-- 
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.

To unsubscribe, e-mail: [email protected]

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

Reply via email to