-
Notifications
You must be signed in to change notification settings - Fork 3.4k
HBASE-29726 Allow updating time limit on ScannerContext #7475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
💔 -1 overall
This message was automatically generated. |
|
🎊 +1 overall
This message was automatically generated. |
|
Could you please describe more on why and how Phoenix plan to control the time limit? Thanks. |
|
Phoenix currently has a home-grown solution (from back when Phoenix was primarily targeting HBase 1.x, which did not have the heartbeat feature ) for the heartbeat problem which uses a magic "Dummy" Cell to indicate heartbeat and cursor information, and has introduced its own configuration option for that time limit. This works fine for Hbase 1 and 2, but in Hbase 3 it interferes with the heartbeat logic in the HBase client, causing it to skip rows. The goal is the same as in HBase: allow long-running scans without having to set unrealistically long timeouts. In a green-field implementation the HBase defaults would probably be good enough for Phoenix, but for backward compatibility reasons I'd like to be able to retain the ability to set the scan.next() time limit based on the existing parameter passed by the client in a scan attribute . The current logic is centered in https://github.com/apache/phoenix/blob/master/phoenix-core-server/src/main/java/org/apache/phoenix/coprocessor/PagingRegionScanner.java Here, instead of using PagingFilter, Phoenix could modify the ScannerContext time limit to the same value, and rely on the HBase functionality. We can do that today, but we'd have to read all values from the existing ScannerContext and then create a new one, which is quite a lot of cpu cycles:
|
No description provided.