dybyte opened a new pull request, #9776: URL: https://github.com/apache/seatunnel/pull/9776
Fixes https://github.com/apache/seatunnel/issues/9727 ### Purpose of this pull request This PR refactors how metricsImap is accessed. The distributed lock previously used when accessing metricsImap has been removed. Instead, metrics updates and removals are reported to the master node via operations, ensuring that only the master node accesses metricsImap directly. This applies to both updating and removing metrics. To determine the most efficient approach, I added performance tests in `CoordinatorServiceTest` comparing `synchronized`, `EntryProcessor`, and `compute()`. The tests indicated that `compute()` performs best, so this method was chosen for implementation. If there are any issues with the test code, I would appreciate your feedback. Thank you. ### Does this PR introduce _any_ user-facing change? No ### How was this patch tested? A new unit test `testCleanupMetricsImap` was added: This test verifies that metrics are properly cleaned up in the IMap after job completion. The previous test `testExecuteJobWithLockMetrics`, which manually locked the metrics IMap, was removed as it is no longer relevant under the new Operation-based approach. ### Check list * [ ] If any new Jar binary package adding in your PR, please add License Notice according [New License Guide](https://github.com/apache/seatunnel/blob/dev/docs/en/contribution/new-license.md) * [ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs * [ ] If you are contributing the connector code, please check that the following files are updated: 1. Update [plugin-mapping.properties](https://github.com/apache/seatunnel/blob/dev/plugin-mapping.properties) and add new connector information in it 2. Update the pom file of [seatunnel-dist](https://github.com/apache/seatunnel/blob/dev/seatunnel-dist/pom.xml) 3. Add ci label in [label-scope-conf](https://github.com/apache/seatunnel/blob/dev/.github/workflows/labeler/label-scope-conf.yml) 4. Add e2e testcase in [seatunnel-e2e](https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/) 5. Update connector [plugin_config](https://github.com/apache/seatunnel/blob/dev/config/plugin_config) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
