-
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-26045 Master control the global throughput of all compaction servers #3538
Conversation
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
@@ -2256,6 +2256,17 @@ void cloneTableSchema(TableName tableName, TableName newTableName, boolean prese | |||
*/ | |||
boolean isCompactionOffloadEnabled() throws IOException; | |||
|
|||
/** | |||
* update compaction server total throughput bound | |||
* @param upperBound the total throughput upper bound of all compaction servers |
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.
When we talk of compaction servers here, are we talking about the new compaction server facility or are we talking about regionservers?
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 can control compaction throughtput on compactionServers, can not control regionservers
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.
Most deploys will not use a compaction server suite. Is it correct then to talk of compaction servers in our Admin API? Should there be another channel for interacting with compaction servers? A CompactionServersAdmin ?
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.
This method talk to master only, compaction servers get throughput control message through periodic heartbeat report
@Apache9 @saintstack Mind help take a look at your convenience. |
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.
So the algorithm here does not count for ongoing compactions, instead, just divide the quota evenly across different compaction servers? If there are 10 compaction server, but only one compaction server has ongoing compactions, it still can only use 1/10 of the quota?
* @return the now total throughput of all compaction servers | ||
* @throws IOException if a remote or network exception occurs | ||
*/ | ||
Map<String, Long> updateCompactionServerTotalThroughput(Long upperBound, Long lowerBound, |
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 have 'CompactionServer' in the method name, so this global control is only for compaction server? Region server can not have the same limit? And why Long, not long?
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.
Yes, We do not control regionserver's compaction throughtput in this PR (it is OK?), For HRegionserver can adjust their compaction throughtput via update_config shell commend, no need restart server. They implement ConfigurationObserver interface.
OK, let me promote the algorithm according to ongoing compactions |
💔 -1 overall
This message was automatically generated. |
2 similar comments
💔 -1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
Compaction servers report compaction tasks to master via heartbeat report.
The report response has throughput control message and compaction server use this message to adjust compaction throughtput.
We can set total throughtput of all compaction servers via hbase shell commands.