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]

Reply via email to