[Subtask]: Supports forwarding OpenAPI requests to the master node in master-slave mode.#3969
[Subtask]: Supports forwarding OpenAPI requests to the master node in master-slave mode.#3969wardlican wants to merge 20 commits intoapache:masterfrom
Conversation
|
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 help with the code review. |
|
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. |
|
This pull request has been closed due to lack of activity. This is not a judgement on the merit of the PR in any way. It is just a way of keeping the PR queue manageable. If you think that is incorrect, or the pull request requires review, you can revive the PR at any time. |
|
Thanks for the contribution! After reviewing the current master branch architecture, I think this request forwarding mechanism may no longer be necessary. Here's the reasoning: Why forwarding is not needed:
The only purely in-memory state is the optimizer heartbeat tracking and in-flight task assignment inside Given this, adding an HTTP proxy layer with circuit breakers, retry logic, and exception-as-control-flow introduces significant complexity without a clear benefit. A simpler approach would be to route Dashboard traffic through a load balancer. Would be happy to discuss further if there are specific cases I missed. |
…on in master-slave mode. apache#3921
…on in master-slave mode. apache#3921
…on in master-slave mode. apache#3921
…on in master-slave mode. apache#3921
…AMS node for processing. apache#3928
… master-slave mode. apache#3963
…troduces a new solution for storing allocation information based on a database.
…troduces a new solution for storing allocation information based on a database.
… master-slave mode.apache#3969
… master-slave mode.apache#3969
Yes, all current state information is retrieved from the database, and any updated states are also synchronized back to it. Since every AMS node synchronizes its state information from the database, this feature is not required. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3969 +/- ##
============================================
- Coverage 29.93% 22.59% -7.34%
+ Complexity 4229 2601 -1628
============================================
Files 675 462 -213
Lines 53990 42524 -11466
Branches 6838 5993 -845
============================================
- Hits 16161 9608 -6553
+ Misses 36636 32079 -4557
+ Partials 1193 837 -356
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 is an enhanced feature and does not affect our usage. |
amoro-ams/src/main/java/org/apache/amoro/server/dashboard/DashboardServer.java
Show resolved
Hide resolved
amoro-ams/src/main/java/org/apache/amoro/server/dashboard/RequestForwarder.java
Outdated
Show resolved
Hide resolved
amoro-ams/src/main/java/org/apache/amoro/server/dashboard/RequestForwarder.java
Show resolved
Hide resolved
|
In master-slave mode, startup uses |
It seems there was an issue while resolving conflicts during the merge process. I'll check and fix it. |
… master-slave mode.apache#3969
Why are the changes needed?
In master-slave mode, requests from the slave node's OpenAPI will be automatically forwarded to the master node.
Close #3963.
Brief change log
Add the RequestForwarder class to intercept and forward requests in http.before.
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