-
Notifications
You must be signed in to change notification settings - Fork 3.4k
HBASE-23065 [hbtop] Top-N heavy hitter user and client drill downs #722
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
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
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 some comments for hbtop. Most of them are small nits. I have a question. It looks like this PR includes the changes of HBASE-15519, right? You are assuming that after committing the PR of HBASE-15519, we will commit this PR?
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/ClientModeStrategy.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/ClientModeStrategy.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/ClientModeStrategy.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/ClientModeStrategy.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/UserModeStrategy.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenModel.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenPresenter.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/ClientModeStrategy.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/ModeStrategy.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenModel.java
Outdated
Show resolved
Hide resolved
And don't we need ClientModeTest? |
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.
Need to take this down locally and play with it too :)
Probably not a bad idea to also run this through a quick perf test to make sure no regressions come in (same way as the dependent user metrics change)
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/ClientModeStrategy.java
Outdated
Show resolved
Hide resolved
* @param countField Field which needs to be added with value 1 for each record | ||
* @return records after selecting required fields and adding count field | ||
*/ | ||
public static List<Record> selectModeFieldsAndAddCountField(List<FieldInfo> fieldInfos, |
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.
Instead of doing this in one fatal swoop, could you split this method into two parts?
pseudo-code-y
.map(Record::select)
.map(Record::addCountField)
I guess this would undo the optimization you're trying to make of copying Record objects?
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.
Yeah, Let me see if I can make it more readable.
hbase-server/src/test/java/org/apache/hadoop/hbase/TestClientClusterMetrics.java
Outdated
Show resolved
Hide resolved
02de76b
to
0918145
Compare
Thank you @brfrn169 and @joshelser for the review. Have pushed the commit addressing most of the review comments. |
This comment has been minimized.
This comment has been minimized.
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.
One nit and a question. I defer comment on hbtop internal changes to @brfrn169
hbase-client/src/main/java/org/apache/hadoop/hbase/ServerMetricsBuilder.java
Outdated
Show resolved
Hide resolved
Thanks a lot guys for the review @joshelser @brfrn169 @apurtell , have updated the pull request as per the review comments. |
ycsb shows performance similar on single server cluster with and without patch. without patch [OVERALL], RunTime(ms), 52493 With Patch [OVERALL], RunTime(ms), 51625 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
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.
I tested this locally and found some bugs. Left some comments for that.
I think this feature should be great for HBase administrators. Thank you! @ankitsinghal
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/ClientModeStrategy.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/mode/UserModeStrategy.java
Outdated
Show resolved
Hide resolved
hbase-hbtop/src/main/java/org/apache/hadoop/hbase/hbtop/screen/top/TopScreenModel.java
Outdated
Show resolved
Hide resolved
Thank you @brfrn169 for the review, Let me work on the review comments today. |
d8c56e0
to
b5ff40a
Compare
b5ff40a
to
8a720cd
Compare
@brfrn169 , have taken the review comments in the latest push. Let me know how it looks? |
This comment has been minimized.
This comment has been minimized.
💔 -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.
Left a comment that's a very small nit. It looks good to me 👍 Thanks! Ankit
@@ -65,6 +65,7 @@ public void showFilters(List<RecordFilter> filters) { | |||
if (!filters.isEmpty()) { | |||
filtersString = String.join(" + ", | |||
filters.stream().map(f -> String.format("'%s'", f)).collect(Collectors.toList())); | |||
|
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.
We don't need this line :)
Can I merge this? @ankitsinghal @joshelser @apurtell |
OK by me. I know Ankit was traveling with intermittent access. I think he might be back soon, but I don't think you need to wait for him if you think this is good. |
Merged. |
No description provided.