bitflicker64 opened a new pull request, #3130:
URL: https://github.com/apache/hugegraph/pull/3130
## Purpose of the PR
- close #3124
HStore caches gRPC channels and blocking/asynchronous stubs by Store target.
When a stable target resolves to a different address, those pools can retain
the
failed transport indefinitely even though the replacement Store is reachable.
This is the channel-lifecycle half of #3124. Complete recovery behind a
stable
DNS name still requires the finite positive DNS TTL from #3126; this patch
does
not bypass an indefinitely stale JVM DNS cache.
## Main Changes
- Fingerprint each target's sorted resolved address set before selecting a
channel.
- Atomically shut down and replace the channel pool when that fingerprint
changes or when an initially unresolved target first resolves.
- Rebuild blocking and asynchronous stub pools when their channels no longer
belong to the current pool.
- Order concurrent resolutions and retry in-flight stub builds so stale work
cannot replace or return retired channels.
- Add four self-contained refresh regression tests without a running PD or
Store cluster.
The validated implementation was developed through commits `bf9086ee`,
`4dd41233`, `26b333ab`, and `c71c77a0`.
## Verifying these changes
- [x] Need tests and can be verified as follows:
- `mvn test -pl hugegraph-store/hg-store-test -am
-Dtest=AbstractGrpcClientTest -Dsurefire.failIfNoSpecifiedTests=false`: 4
distinct tests passed with 0 failures, errors, or skips on Java 11.
- `mvn test -pl hugegraph-store/hg-store-test -am -P store-client-test
-Dsurefire.failIfNoSpecifiedTests=false`: the refresh-only client suite ran 4
tests with 0 failures, errors, or skips on Java 11.
- `mvn editorconfig:format`: passed with 0 files changed.
- `mvn clean compile -Dmaven.javadoc.skip=true`: passed across all 38
reactor modules on Java 11.
## Does this PR potentially affect the following parts?
- [ ] Dependencies
- [ ] Modify configurations
- [ ] The public API
- [ ] Other affects
- [x] Nope
## Documentation Status
- [ ] `Doc - TODO`
- [ ] `Doc - Done`
- [x] `Doc - No Need`
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]