fix(store): bind each gRPC stub to its own channel - #3128
Open
bitflicker64 wants to merge 1 commit into
Open
Conversation
AbstractGrpcClient opens concurrency (32) ManagedChannels per target, but both stub-pool initializers used one precomputed channel index inside their loops. Every pool entry therefore pointed at the same channel while the other 31 channels remained idle. - use channels[i] in the blocking and async pool initializers - add self-contained tests that verify every pool channel is bound - add ClientSuiteTest so the store-client-test profile runs the tests Fixes apache#3125
9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose of the PR
AbstractGrpcClientcreates 32 managed channels per target, but bothstub-pool initialization loops bound every entry to one channel selected
before the loop. Traffic was concentrated on a single connection while the
other 31 channels remained idle.
Main Changes
cover every channel without a running PD or Store cluster.
ClientSuiteTestso the existingstore-client-testprofile runs thenew coverage without including cluster-dependent client tests.
Verifying these changes
mvn install -pl hugegraph-struct -am -DskipTests: passed.mvn test -pl hugegraph-store/hg-store-test -am -P store-client-test: 2 passed, 0 failed.mvn editorconfig:format: no files changed.mvn clean compile -Dmaven.javadoc.skip=true: passed on Java 11.Does this PR potentially affect the following parts?
Documentation Status
Doc - TODODoc - DoneDoc - No Need