Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gossip: avoid allocation of UnresolvedAddr in getNodeIDAddressLocked #29585

Merged
merged 1 commit into from
Sep 5, 2018

Conversation

nvanbenschoten
Copy link
Member

getNodeIDAddressLocked is called from Dialer.ConnHealth and
Dialer.DialInternalClient. It was responsible for 1.71% of all
allocations (alloc_objects) on a 3-node long-running cluster that
was running TPC-C 1K.

Pointing into nd.LocalityAddress is safe because even if the NodeDescriptor
itself is replaced in Gossip, the struct is never internally mutated. This is
the same reason why taking the address of nd.Address was already safe.

Release note (performance improvement): Avoid allocation when
checking RPC connection health.

@cockroach-teamcity
Copy link
Member

This change is Reviewable

Copy link
Collaborator

@petermattis petermattis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (and 1 stale)


pkg/gossip/gossip.go, line 1003 at r1 (raw file):

		return nil, err
	}
	for i, locality := range nd.LocalityAddress {

Nit: we could kill both birds with one stone by removing the locality variable here and defining it as a pointer inside of the loop:

for i := range nd.LocalityAddress {
  locality := &nd.LocalityAddress[i]
}

Copy link
Member Author

@nvanbenschoten nvanbenschoten left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bors r+

Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (and 1 stale)


pkg/gossip/gossip.go, line 1003 at r1 (raw file):

Previously, petermattis (Peter Mattis) wrote…

Nit: we could kill both birds with one stone by removing the locality variable here and defining it as a pointer inside of the loop:

for i := range nd.LocalityAddress {
  locality := &nd.LocalityAddress[i]
}

Good idea, done.

`getNodeIDAddressLocked` is called from `Dialer.ConnHealth` and
`Dialer.DialInternalClient`. It was responsible for 1.71% of all
allocations on a 3-node long running cluster that was running TPC-C 1K.

Pointing into `nd.LocalityAddress` is safe because even if the `NodeDescriptor`
itself is replaced in `Gossip`, the struct is never internally mutated. This is
the same reason why taking the address of `nd.Address` was already safe.

Release note (performance improvement): Avoid allocation when
checking RPC connection health.
Copy link
Contributor

@a-robinson a-robinson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you saying that this removed allocations on a cluster that wasn't even using locality-scoped addresses?

craig bot pushed a commit that referenced this pull request Sep 5, 2018
29574: storage: update import path for Raft r=petermattis a=tschottdorf

upstream moved from github.com/etcd to go.etcd.io/etcd. We're going
to have to pick up an update soon to fix #28918, so it's easier to
switch now.

We're not picking up any new commits except for the renames.

Release note: None

29585: gossip: avoid allocation of UnresolvedAddr in getNodeIDAddressLocked r=nvanbenschoten a=nvanbenschoten

`getNodeIDAddressLocked` is called from `Dialer.ConnHealth` and
`Dialer.DialInternalClient`. It was responsible for **1.71%** of all
allocations (`alloc_objects`) on a 3-node long-running cluster that
was running TPC-C 1K.

Pointing into `nd.LocalityAddress` is safe because even if the `NodeDescriptor`
itself is replaced in `Gossip`, the struct is never internally mutated. This is
the same reason why taking the address of `nd.Address` was already safe.

Release note (performance improvement): Avoid allocation when
checking RPC connection health.

Co-authored-by: Tobias Schottdorf <[email protected]>
Co-authored-by: Nathan VanBenschoten <[email protected]>
@craig
Copy link
Contributor

craig bot commented Sep 5, 2018

Build succeeded

@craig craig bot merged commit 9d226a4 into cockroachdb:master Sep 5, 2018
@nvanbenschoten
Copy link
Member Author

Are you saying that this removed allocations on a cluster that wasn't even using locality-scoped addresses?

@a-robinson and I took this conversation offline and figured out what was going on. It turns out that even when a loop is never entered, if its loop variable escapes and is moved to the heap then it will result in an allocation. We can see this in the following assembly (with some added comments for ease of reading).

"".(*Gossip).getNodeIDAddressLocked STEXT size=565 args=0x28 locals=0xa0
	0x0000 00000 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	TEXT	"".(*Gossip).getNodeIDAddressLocked(SB), $160-40
	0x0000 00000 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	MOVQ	(TLS), CX
	0x0009 00009 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	LEAQ	-32(SP), AX
	0x000e 00014 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	CMPQ	AX, 16(CX)
	0x0012 00018 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	JLS	555
	0x0018 00024 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	SUBQ	$160, SP
	0x001f 00031 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	MOVQ	BP, 152(SP)
	0x0027 00039 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	LEAQ	152(SP), BP
	0x002f 00047 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	FUNCDATA	$0, gclocals·2e425fbd10d0241f5ef14387a5522a1a(SB)
	0x002f 00047 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	FUNCDATA	$1, gclocals·8c64f84529332f004d9ec5ec401226e8(SB)
	0x002f 00047 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	MOVQ	"".g+168(SP), AX
	0x0037 00055 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:999)	MOVQ	AX, (SP)
	0x003b 00059 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	MOVL	"".nodeID+176(SP), CX
	0x0042 00066 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:999)	MOVL	CX, 8(SP)
	0x0046 00070 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:999)	PCDATA	$0, $0
// Call to getNodeDescriptorLocked.
	0x0046 00070 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:999)	CALL	"".(*Gossip).getNodeDescriptorLocked(SB)
	0x004b 00075 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:999)	MOVQ	16(SP), AX
	0x0050 00080 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:999)	MOVQ	24(SP), CX
	0x0055 00085 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:999)	MOVQ	32(SP), DX
	0x005a 00090 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1000)	TESTQ	CX, CX
	0x005d 00093 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1000)	JNE	511
	0x0063 00099 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1000)	MOVQ	AX, "".nd+64(SP)
	0x0068 00104 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1003)	TESTB	AL, (AX)
	0x006a 00106 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	LEAQ	type.github.com/cockroachdb/cockroach/pkg/roachpb.LocalityAddress(SB), CX
	0x0071 00113 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	CX, (SP)
	0x0075 00117 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	PCDATA	$0, $1
// Allocation of loop variable.
	0x0075 00117 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	CALL	runtime.newobject(SB)
	0x007a 00122 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	8(SP), AX
	0x007f 00127 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	AX, "".&locality+80(SP)
	0x0084 00132 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	"".nd+64(SP), CX
	0x0089 00137 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	136(CX), DX
	0x0090 00144 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	DX, ""..autotmp_21+56(SP)
	0x0095 00149 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	128(CX), BX
	0x009c 00156 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	XORL	SI, SI
	0x009e 00158 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	JMP	193
	0x00a0 00160 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	""..autotmp_23+72(SP), R8
	0x00a5 00165 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	LEAQ	64(R8), BX
	0x00a9 00169 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	""..autotmp_22+48(SP), R8
	0x00ae 00174 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	LEAQ	1(R8), SI
	0x00b2 00178 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	"".&locality+80(SP), AX
	0x00b7 00183 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	"".nd+64(SP), CX
	0x00bc 00188 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	""..autotmp_21+56(SP), DX
// Start of for loop.
	0x00c1 00193 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	CMPQ	SI, DX
	0x00c4 00196 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	JGE	472
	0x00ca 00202 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	SI, ""..autotmp_22+48(SP)
	0x00cf 00207 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	BX, ""..autotmp_23+72(SP)
	0x00d4 00212 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	LEAQ	""..autotmp_18+88(SP), DI
	0x00d9 00217 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	BX, SI
	0x00dc 00220 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	DUFFCOPY	$840
	0x00ef 00239 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVL	runtime.writeBarrier(SB), R9
	0x00f6 00246 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	TESTL	R9, R9
	0x00f9 00249 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	JNE	431
	0x00ff 00255 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	AX, DI
	0x0102 00258 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	LEAQ	""..autotmp_18+88(SP), SI
	0x0107 00263 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	DUFFCOPY	$840
	0x011a 00282 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	56(AX), CX
	0x011e 00286 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	48(AX), DX
	0x0122 00290 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	40(AX), BX
	0x0126 00294 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	32(AX), SI
	0x012a 00298 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	SI, (SP)
	0x012e 00302 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	BX, 8(SP)
	0x0133 00307 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	DX, 16(SP)
	0x0138 00312 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	CX, 24(SP)
	0x013d 00317 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	PCDATA	$0, $2
	0x013d 00317 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	CALL	github.com/cockroachdb/cockroach/pkg/roachpb.Tier.String(SB)
	0x0142 00322 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	"".g+168(SP), AX
	0x014a 00330 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	376(AX), CX
	0x0151 00337 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	32(SP), DX
	0x0156 00342 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	40(SP), BX
	0x015b 00347 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	CX, 8(SP)
	0x0160 00352 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	LEAQ	type.map[string]struct {}(SB), CX
	0x0167 00359 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	CX, (SP)
	0x016b 00363 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	DX, 16(SP)
	0x0170 00368 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVQ	BX, 24(SP)
	0x0175 00373 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	PCDATA	$0, $2
	0x0175 00373 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	CALL	runtime.mapaccess2_faststr(SB)
	0x017a 00378 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	MOVBLZX	40(SP), AX
	0x017f 00383 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	TESTB	AL, AL
	0x0181 00385 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1005)	JEQ	160
// If map access succeeds, return.
	0x0187 00391 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1006)	MOVQ	"".&locality+80(SP), AX
	0x018c 00396 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1006)	MOVQ	AX, "".~r1+184(SP)
	0x0194 00404 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1006)	XORPS	X0, X0
	0x0197 00407 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1006)	MOVUPS	X0, "".~r2+192(SP)
	0x019f 00415 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1006)	MOVQ	152(SP), BP
	0x01a7 00423 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1006)	ADDQ	$160, SP
	0x01ae 00430 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1006)	RET
	0x01af 00431 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	LEAQ	type.github.com/cockroachdb/cockroach/pkg/roachpb.LocalityAddress(SB), CX
	0x01b6 00438 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	CX, (SP)
	0x01ba 00442 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	AX, 8(SP)
	0x01bf 00447 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	LEAQ	""..autotmp_18+88(SP), CX
	0x01c4 00452 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	CX, 16(SP)
	0x01c9 00457 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	PCDATA	$0, $2
	0x01c9 00457 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	CALL	runtime.typedmemmove(SB)
	0x01ce 00462 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	MOVQ	"".&locality+80(SP), AX
	0x01d3 00467 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1004)	JMP	282
// End of for loop.
	0x01d8 00472 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1003)	LEAQ	8(CX), AX
	0x01dc 00476 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1009)	MOVQ	AX, "".~r1+184(SP)
	0x01e4 00484 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1009)	XORPS	X0, X0
	0x01e7 00487 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1009)	MOVUPS	X0, "".~r2+192(SP)
	0x01ef 00495 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1009)	MOVQ	152(SP), BP
	0x01f7 00503 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1009)	ADDQ	$160, SP
	0x01fe 00510 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1009)	RET
	0x01ff 00511 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1001)	MOVQ	$0, "".~r1+184(SP)
	0x020b 00523 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1001)	MOVQ	CX, "".~r2+192(SP)
	0x0213 00531 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1001)	MOVQ	DX, "".~r2+200(SP)
	0x021b 00539 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1001)	MOVQ	152(SP), BP
	0x0223 00547 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1001)	ADDQ	$160, SP
	0x022a 00554 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1001)	RET
	0x022b 00555 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:1001)	NOP
	0x022b 00555 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	PCDATA	$0, $-1
	0x022b 00555 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	CALL	runtime.morestack_noctxt(SB)
	0x0230 00560 (/home/nathan/go/src/github.com/cockroachdb/cockroach/pkg/gossip/gossip.go:998)	JMP	0

We also noticed that this LocalityAddress field was never populated, which Alex filed in #29591.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants