Conversation
… hot path Previously, every RPC executed through LoadBalancingCall composed per-call and subchannel CallCredentials and called generateMetadata(), even when both sides were EmptyCallCredentials. In addition: - Composing any CallCredentials with EmptyCallCredentials on the right-hand side wrapped them in a new ComposedCallCredentials instance. - InsecureChannelCredentialsImpl allocated a new EmptyCallCredentials instance on every getCallCredentials() call when no call credentials were provided. - EmptyCallCredentials.generateMetadata() allocated a new Metadata instance and Promise on every RPC only to merge an empty map. This change: - Treats EmptyCallCredentials as a two-sided identity in compose(), returning `this` directly when composing with an empty instance. - Evaluates the fallback CallCredentials.createEmpty() once per connector in InsecureChannelCredentialsImpl._createSecureConnector(). - Short-circuits metadata generation and merging in LoadBalancingCall when the composed CallCredentials is empty, reusing a pre-resolved Promise.
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.
Previously, every RPC executed through LoadBalancingCall composed per-call and subchannel CallCredentials and called generateMetadata(), even when both sides were EmptyCallCredentials. In addition:
This change:
thisdirectly when composing with an empty instance.