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]