dybyte opened a new pull request, #13041:
URL: https://github.com/apache/seatunnel/pull/13041

   ### Purpose of this pull request
   
   Close #13039.
   
   On an EAGER restart, Hazelcast calls `loadAllKeys()` once and 
`loadAll(keys)` once per partition that holds keys, and every call scanned the 
whole IMap storage. `FileMapStore` now scans once per map for the initial load 
and answers the other calls from that result. It drops the result before its 
first write (`store`/`storeAll`/`delete`/`deleteAll`) or on `destroy`, so later 
loads scan the storage again, as before.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No. Only fewer storage reads during the initial load; no config, API or 
storage format change.
   
   ### How was this patch tested?
   
   - `FileMapStoreTest`: an EAGER restart with 40 keys reads the storage once 
(39 times before), concurrent `loadAll` calls share one scan, and a load after 
a write reads the storage again and sees the written entry.
   - `ClusterFaultToleranceIT#testStreamJobRestoreInAllNodeDown` passes. It is 
not changed, because scan counts are not observable there and it already checks 
recovery after a full restart.
   
   
   ### 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/developer/new-license.md)
   * [ ] If necessary, please update the documentation to describe the new 
feature. https://github.com/apache/seatunnel/tree/dev/docs
   * [ ] If necessary, please update `incompatible-changes.md` to describe the 
incompatibility caused by this PR.
   * [ ] 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