-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
HBASE-27535: Separate slowlog thresholds for scans vs other requests #5188
Conversation
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
@virajjasani if you have any feedback here then I'd definitely appreciate it! Thank you in advance 😄 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left minor nits, otherwise looks good
hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
Outdated
Show resolved
Hide resolved
hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
Outdated
Show resolved
Hide resolved
hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
Outdated
Show resolved
Hide resolved
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1, could you also add the new configs descriptions to https://github.com/apache/hbase/blob/master/src/main/asciidoc/_chapters/ops_mgt.adoc ?
(after hbase.ipc.warn.response.time
and hbase.ipc.warn.response.size
)
@@ -1904,14 +1904,20 @@ It is also prepended with identifying tags `(responseTooSlow)`, `(responseTooLar | |||
|
|||
==== Configuration | |||
|
|||
There are two configuration knobs that can be used to adjust the thresholds for when queries are logged. | |||
There are four configuration knobs that can be used to adjust the thresholds for when queries are logged. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add 1-2 more sentences here explaining why Scan gets its own? For example "Two knobs allow controlling the size and time threshold for all queries. Since Scans can often be larger and slower than other queries, there is an additional two knobs for setting a different threshold for those."
🎊 +1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
Thanks @rmdmattingly and @bbeaudreault !! |
…5188) Signed-off-by: Bryan Beaudreault <bbeaudreault@apache.org> Signed-off-by: Viraj Jasani <vjasani@apache.org>
…pache#5188) Signed-off-by: Bryan Beaudreault <bbeaudreault@apache.org> Signed-off-by: Viraj Jasani <vjasani@apache.org>
HBASE-27535
Scans by their nature are able to more efficiently pull back larger response sizes than gets. They also may take longer to execute than other request types. We should make it possible to configure a separate threshold for response time and response time for scans. This will allow us to tune down the thresholds for others without adding unnecessary noise for requests which are known to be slower/bigger.
This PR introduces two new dynamically configurable keys:
hbase.ipc.warn.response.time.scan
hbase.ipc.warn.response.size.scan
By default, scans will fallback to using the values of the original keys without a
.scan
suffix. Because of this fallback this change is a no-op by default.I've loaded this changeset onto a test cluster and verified the intended behavior, both in the case where these values are specified and unspecified.
cc @bbeaudreault