release-2.1: gossip: avoid allocation of UnresolvedAddr in getNodeIDAddressLocked #30055
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.
Backport 1/1 commits from #29585.
/cc @cockroachdb/release
getNodeIDAddressLocked
is called fromDialer.ConnHealth
andDialer.DialInternalClient
. It was responsible for 1.71% of allallocations (
alloc_objects
) on a 3-node long-running cluster thatwas running TPC-C 1K.
Pointing into
nd.LocalityAddress
is safe because even if theNodeDescriptor
itself is replaced in
Gossip
, the struct is never internally mutated. This isthe same reason why taking the address of
nd.Address
was already safe.Release note (performance improvement): Avoid allocation when
checking RPC connection health.