Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
None
-
None
-
None
-
None
Description
Currently, the only way for a filter to force a response back to the client during the execution of a scan is via the use of filter#filterAllRemaining(). When this method call returns true, the region server interprets it as meaning that all remaining rows should be filtered out. This also signals to the client that the scanner should close (it's finished...).
It would be nice if there was a mechanism that allowed the filter to force a response back to the client without actually terminating the scan. The client would receive the response from the server and could continue the scan from where it left off.
I would imagine that such a feature would be used primarily in instances where real-time behavior was a concern. In a sense it would allow filters to implement their own restrictions on the client-server scan protocol. I think this feature can now be supported since we started to send back the moreResultsOnServer flag in the ScanResponse (HBASE-13262) to tell the client that the current region is not exhausted.