Add a registration function for table allocation in master-slave mode. #3920
Add a registration function for table allocation in master-slave mode. #3920wardlican wants to merge 17 commits intoapache:masterfrom
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3920 +/- ##
============================================
+ Coverage 22.44% 29.02% +6.58%
- Complexity 2552 3999 +1447
============================================
Files 458 657 +199
Lines 42022 52438 +10416
Branches 5915 6670 +755
============================================
+ Hits 9433 15222 +5789
- Misses 31777 36102 +4325
- Partials 812 1114 +302
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:
|
|
This pull request has been marked as stale due to 30 days of inactivity. It will be closed in 1 week if no further activity occurs. If you think that’s incorrect or this pull request requires a review, please simply write any comment. If closed, you can revive the PR at any time and @mention a reviewer or discuss it on the dev@amoro.apache.org list. Thank you for your contributions. |
|
Please check the changes here. |
|
This pull request has been marked as stale due to 30 days of inactivity. It will be closed in 1 week if no further activity occurs. If you think that’s incorrect or this pull request requires a review, please simply write any comment. If closed, you can revive the PR at any time and @mention a reviewer or discuss it on the dev@amoro.apache.org list. Thank you for your contributions. |
|
@zhoujinsong Please help with the CR . |
czy006
left a comment
There was a problem hiding this comment.
Thank you for your contribution. I left a comment.
amoro-ams/src/main/java/org/apache/amoro/server/ha/DataBaseHighAvailabilityContainer.java
Outdated
Show resolved
Hide resolved
amoro-ams/src/main/java/org/apache/amoro/server/ha/DataBaseHighAvailabilityContainer.java
Show resolved
Hide resolved
|
cc @xxubai |
| // In master-slave mode, register node to database by writing OPTIMIZING_SERVICE info | ||
| // This is similar to ZK mode registering ephemeral nodes | ||
| long now = System.currentTimeMillis(); | ||
| String optimizingInfoJson = JacksonUtil.toJSONString(optimizingServiceServerInfo); |
There was a problem hiding this comment.
The two implementations register different service info. Given that AmoroServiceContainer.main() calls registerAndElect() followed by startOptimizingService() in master-slave mode, the ZK implementation should also register optimizingServiceServerInfo (or both) to be consistent.
| /** | ||
| * Used to determine whether the current AMS node is the primary node. | ||
| * | ||
| * @return |
Why are the changes needed?
The HighAvailabilityContainer adds a node registration function. In master-slave mode, each AMS node, after startup, needs to elect a master through ZooKeeper or DB and register its own node information in ZooKeeper or DB. Registration is done using ephemeral nodes. If a node fails, its registration information needs to be automatically deleted. The system also provides the master node with the ability to view the list of currently active nodes.
Close #3919 .
Brief change log
Core functionalities implemented:
The master node can query a list of all currently live nodes. In non-master or non-master-slave modes, an empty list is returned.
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