-
Notifications
You must be signed in to change notification settings - Fork 315
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
[AMORO-3440] Implement the refresh and exploration of OptimizingGroup… #3457
base: master
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3457 +/- ##
============================================
+ Coverage 21.59% 21.74% +0.15%
- Complexity 2353 2386 +33
============================================
Files 431 431
Lines 40347 40476 +129
Branches 5711 5741 +30
============================================
+ Hits 8712 8801 +89
- Misses 30903 30929 +26
- Partials 732 746 +14
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
54ff948
to
9c3fd97
Compare
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.
Thanks for the work!
I left some comments, PTAL.
amoro-ams/src/main/java/org/apache/amoro/server/resource/DefaultOptimizerManager.java
Outdated
Show resolved
Hide resolved
amoro-ams/src/main/java/org/apache/amoro/server/resource/DefaultOptimizerManager.java
Outdated
Show resolved
Hide resolved
amoro-ams/src/main/java/org/apache/amoro/server/resource/DefaultOptimizerManager.java
Outdated
Show resolved
Hide resolved
amoro-ams/src/main/java/org/apache/amoro/server/DefaultOptimizingService.java
Outdated
Show resolved
Hide resolved
amoro-ams/src/main/java/org/apache/amoro/server/DefaultOptimizingService.java
Show resolved
Hide resolved
amoro-ams/src/main/java/org/apache/amoro/server/persistence/mapper/TableMetaMapper.java
Outdated
Show resolved
Hide resolved
@@ -380,6 +380,12 @@ public class AmoroManagementConf { | |||
.defaultValue(Duration.ofSeconds(3)) | |||
.withDescription("Optimizer polling task timeout."); | |||
|
|||
public static final ConfigOption<Duration> OPTIMIZER_QUEUE_REFRESH_INTERVAL = | |||
ConfigOptions.key("optimizer.queue-refresh-interval") |
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.
ConfigOptions.key("optimizer.queue-refresh-interval") | |
ConfigOptions.key("optimizing-service.refresh-group-interval") |
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.
WDYT? @zhoujinsong
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.
The name self-optimizing.refresh-group-interval
seems appropriate, especially since we already have some configurations prefixed with self-optimizing
.
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.
Besides, can you help to add this new configuration example to the configuration temp file.
5a28c69
to
e63e960
Compare
e63e960
to
01931b8
Compare
Why are the changes needed?
Close #3440 .
Brief change log
The OptimizingService and OptimizerManager have been decoupled: the OptimizerManager handles metadata persistence and modifications, while the OptimizingService includes a watcher to synchronize the in-memory OptimizingQueue map with persisted data.
This allows the master node to run the OptimizingService while other nodes modify metadata via a web interface, ensuring the master stays updated.
How was this patch tested?
Add some test cases that check the changes thoroughly including negative and positive cases if possible
Add screenshots for manual tests if appropriate
Run test locally before making a pull request
Documentation