Skip to content

Commit bd11b0a

Browse files
rpc, server: add DRPC support for node join RPC
This change enables the use of DRPC for the node join RPC when the `--use-new-rpc` flag is set, and defaults to gRPC otherwise. Epic: CRDB-51459 Fixed: #149600 Release note: None
1 parent 58aa9aa commit bd11b0a

File tree

14 files changed

+255
-169
lines changed

14 files changed

+255
-169
lines changed

DEPS.bzl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10890,10 +10890,10 @@ def go_deps():
1089010890
name = "io_storj_drpc",
1089110891
build_file_proto_mode = "disable_global",
1089210892
importpath = "storj.io/drpc",
10893-
sha256 = "98b44a51f82873f93f77da80230212ab40f35044e8d38645cb1392ae03462f0b",
10894-
strip_prefix = "github.com/cockroachdb/[email protected]20250924114114-78d4e121902a",
10893+
sha256 = "c3861ad4fc0e814d1a9648176f96f4f7fecc385a1a88b439c7205007aa2f36ae",
10894+
strip_prefix = "github.com/cthumuluru-crdb/[email protected]20251118112210-c686eec55198",
1089510895
urls = [
10896-
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/drpc/com_github_cockroachdb_drpc-v0.0.0-20250924114114-78d4e121902a.zip",
10896+
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cthumuluru-crdb/drpc/com_github_cthumuluru_crdb_drpc-v0.0.0-20251118112210-c686eec55198.zip",
1089710897
],
1089810898
)
1089910899
go_repository(

build/bazelutil/distdir_files.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,6 @@ DISTDIR_FILES = {
344344
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/crlfmt/com_github_cockroachdb_crlfmt-v0.0.0-20221214225007-b2fc5c302548.zip": "fedc01bdd6d964da0425d5eaac8efadc951e78e13f102292cc0774197f09ab63",
345345
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/crlib/com_github_cockroachdb_crlib-v0.0.0-20251024155502-a2e0a212ef05.zip": "a9a4b8810d52a2d18dddbbc359d060f5db854e328b4d75f12b7c5081ac25b2a2",
346346
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/datadriven/com_github_cockroachdb_datadriven-v1.0.3-0.20251006155849-f84f9e519edd.zip": "a7ffcef0b264d9c28c36b2f9b737ff739542f472d7614938ae507e2da269f6c2",
347-
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/drpc/com_github_cockroachdb_drpc-v0.0.0-20250924114114-78d4e121902a.zip": "98b44a51f82873f93f77da80230212ab40f35044e8d38645cb1392ae03462f0b",
348347
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/errors/com_github_cockroachdb_errors-v1.12.1-0.20251010171200-64801262cd6f.zip": "4df66cc44791d4290071696abf179dc6df7b94b4cb5d29a20f39c6bf522c60ee",
349348
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/go-test-teamcity/com_github_cockroachdb_go_test_teamcity-v0.0.0-20191211140407-cff980ad0a55.zip": "bac30148e525b79d004da84d16453ddd2d5cd20528e9187f1d7dac708335674b",
350349
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/gogoproto/com_github_cockroachdb_gogoproto-v1.3.3-0.20241216150617-2358cdb156a1.zip": "bf052c9a7f9e23fb3ec7e9f3b7201cfc264c18ed6da0d662952d276dbc339003",
@@ -396,6 +395,7 @@ DISTDIR_FILES = {
396395
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cpuguy83/go-md2man/v2/com_github_cpuguy83_go_md2man_v2-v2.0.2.zip": "70a7e609809cf2a92c5535104db5eb82d75c54bfcfed2d224e87dd2fd9729f62",
397396
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/creack/pty/com_github_creack_pty-v1.1.11.zip": "d6594fd4844c242a5c7d6e9b25516182460cffa820e47e8ffb8eea625991986c",
398397
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/crossdock/crossdock-go/com_github_crossdock_crossdock_go-v0.0.0-20160816171116-049aabb0122b.zip": "f8a2ed6cd39e4f3e8108b8987f72bf6746276ada6fd3fcc62015bdbdd097f1a3",
398+
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cthumuluru-crdb/drpc/com_github_cthumuluru_crdb_drpc-v0.0.0-20251118112210-c686eec55198.zip": "c3861ad4fc0e814d1a9648176f96f4f7fecc385a1a88b439c7205007aa2f36ae",
399399
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cyberdelia/templates/com_github_cyberdelia_templates-v0.0.0-20141128023046-ca7fffd4298c.zip": "a0ed6b8037d36222f63128f6064ed5b0e461fa9798c3592440a08875154d6c72",
400400
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cyphar/filepath-securejoin/com_github_cyphar_filepath_securejoin-v0.2.3.zip": "1e38690899f84b347ddc67cb8c6395812aea795e735b2208d680163278a3e3ba",
401401
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/d2g/dhcp4/com_github_d2g_dhcp4-v0.0.0-20170904100407-a1d1b6c41b1c.zip": "15df9468cf548a626e1319e92d550432512c4319cf555bf278ea9215de3504e3",

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,7 @@ replace github.com/docker/docker => github.com/moby/moby v24.0.6+incompatible
526526

527527
replace github.com/gogo/protobuf => github.com/cockroachdb/gogoproto v1.3.3-0.20241216150617-2358cdb156a1
528528

529-
replace storj.io/drpc => github.com/cockroachdb/drpc v0.0.0-20250924114114-78d4e121902a
529+
replace storj.io/drpc => github.com/cthumuluru-crdb/drpc v0.0.0-20251118112210-c686eec55198
530530

531531
// Note: This forked dependency adds a commit that opens up some
532532
// private APIs to enable us to make some perf improvements to

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -556,8 +556,6 @@ github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:z
556556
github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU=
557557
github.com/cockroachdb/datadriven v1.0.3-0.20251006155849-f84f9e519edd h1:vpWCe7VvdQbQ/9wGtlH3i+Oj+9OggKci3lsASL1ydvg=
558558
github.com/cockroachdb/datadriven v1.0.3-0.20251006155849-f84f9e519edd/go.mod h1:jsaKMvD3RBCATk1/jbUZM8C9idWBJME9+VRZ5+Liq1g=
559-
github.com/cockroachdb/drpc v0.0.0-20250924114114-78d4e121902a h1:zXCfk52Hpu2IoejmDm4Bkxmb5Nh9vxwaYOCiqA6f3YA=
560-
github.com/cockroachdb/drpc v0.0.0-20250924114114-78d4e121902a/go.mod h1:Ag2/Yfl22WZ8ywFUasRQ2brdltpX5QvY63jnYTZ3N5U=
561559
github.com/cockroachdb/errors v1.12.1-0.20251010171200-64801262cd6f h1:lUmJxzb2/ukuRIvKTaNkvuj5LwlX4u/KxnI3zmx1SSw=
562560
github.com/cockroachdb/errors v1.12.1-0.20251010171200-64801262cd6f/go.mod h1:SvzfYNNBshAVbZ8wzNc/UPK3w1vf0dKDUP41ucAIf7g=
563561
github.com/cockroachdb/go-test-teamcity v0.0.0-20191211140407-cff980ad0a55 h1:YqzBA7tf8Gv8Oz0BbBsPenqkyjiohS7EUIwi7p1QJCU=
@@ -713,6 +711,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
713711
github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw=
714712
github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
715713
github.com/crossdock/crossdock-go v0.0.0-20160816171116-049aabb0122b/go.mod h1:v9FBN7gdVTpiD/+LZ7Po0UKvROyT87uLVxTHVky/dlQ=
714+
github.com/cthumuluru-crdb/drpc v0.0.0-20251118112210-c686eec55198 h1:w0whIZa/Koi059vXP9NemhrxVoBK/KBYpLJXozaNHlc=
715+
github.com/cthumuluru-crdb/drpc v0.0.0-20251118112210-c686eec55198/go.mod h1:Ag2/Yfl22WZ8ywFUasRQ2brdltpX5QvY63jnYTZ3N5U=
716716
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
717717
github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
718718
github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=

pkg/cli/context.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ func setCliContextDefaults() {
210210
cliCtx.ambiguousLogDir = false
211211
cliCtx.logOverrides.reset()
212212
cliCtx.showVersionUsingOnlyBuildTag = false
213+
cliCtx.UseDRPC = true
213214
}
214215

215216
// sqlConnContext captures the connection configuration for all SQL

pkg/rpc/BUILD.bazel

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,13 @@ go_library(
8181
"@io_opentelemetry_go_otel//attribute",
8282
"@io_storj_drpc//:drpc",
8383
"@io_storj_drpc//drpcclient",
84-
"@io_storj_drpc//drpcconn",
8584
"@io_storj_drpc//drpcctx",
8685
"@io_storj_drpc//drpcmanager",
8786
"@io_storj_drpc//drpcmetadata",
8887
"@io_storj_drpc//drpcmigrate",
8988
"@io_storj_drpc//drpcmux",
9089
"@io_storj_drpc//drpcpool",
9190
"@io_storj_drpc//drpcserver",
92-
"@io_storj_drpc//drpcstream",
9391
"@io_storj_drpc//drpcwire",
9492
"@org_golang_google_grpc//:grpc",
9593
"@org_golang_google_grpc//backoff",

pkg/rpc/context.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1436,6 +1436,17 @@ func (rpcCtx *Context) GRPCDialOptions(
14361436
return rpcCtx.grpcDialOptionsInternal(ctx, target, class, transport, onNetworkDial)
14371437
}
14381438

1439+
// DRPCDialOptions is same as GRPCDialOptions but for drpc connections.
1440+
func (rpcCtx *Context) DRPCDialOptions(
1441+
ctx context.Context, target string, class rpcbase.ConnectionClass,
1442+
) ([]drpcclient.DialOption, error) {
1443+
transport := tcpTransport
1444+
if rpcCtx.ContextOptions.AdvertiseAddr == target && rpcCtx.canLoopbackDial() {
1445+
transport = loopbackTransport
1446+
}
1447+
return rpcCtx.drpcDialOptionsInternal(ctx, target, class, transport)
1448+
}
1449+
14391450
// grpcDialOptions produces dial options suitable for connecting to the given target and class.
14401451
func (rpcCtx *Context) grpcDialOptionsInternal(
14411452
ctx context.Context,

0 commit comments

Comments
 (0)