Skip to content

Commit 3ff7b49

Browse files
committed
kv: extract TenantUsage and register with DRPC server
This is a follow-up to #145195, where we extracted `KVBatch` from the `Internal` service. Here, we do the same with `TenantUsage`. The TL;DR is that smaller services are easier to maintain and can be more smoothly migrated to DRPC. We also enable this service on the DRPC server. This is controlled by `rpc.experimental_drpc.enabled` (off by default). This change is part of a series and is similar to: #146926 Note: This only registers the service; the client is not updated to use the DRPC client, so this service will not have any functional effect. Epic: CRDB-48925 Release note: None
1 parent 93519ae commit 3ff7b49

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

pkg/kv/kvpb/api.proto

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3684,6 +3684,14 @@ service TenantService {
36843684
rpc GetRangeDescriptors(GetRangeDescriptorsRequest) returns (stream GetRangeDescriptorsResponse) {}
36853685
}
36863686

3687+
// TenantUsage provides RPCs for secondary tenants to report resource
3688+
// consumption and get Request Units available.
3689+
service TenantUsage {
3690+
// TokenBucket is used by tenants to obtain Request Units and report
3691+
// consumption.
3692+
rpc TokenBucket (TokenBucketRequest) returns (TokenBucketResponse) {}
3693+
}
3694+
36873695
// Batch and RangeFeed service implemented by nodes for KV API requests.
36883696
service Internal {
36893697
rpc Batch (BatchRequest) returns (BatchResponse) {}

pkg/server/server.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -989,6 +989,9 @@ func NewServer(cfg Config, stopper *stop.Stopper) (serverctl.ServerStartupInterf
989989
if err := kvpb.DRPCRegisterTenantService(drpcServer, node.AsDRPCTenantServiceServer()); err != nil {
990990
return nil, err
991991
}
992+
if err := kvpb.DRPCRegisterTenantUsage(drpcServer, node); err != nil {
993+
return nil, err
994+
}
992995
kvserver.RegisterPerReplicaServer(grpcServer.Server, node.perReplicaServer)
993996
if err := kvserver.DRPCRegisterPerReplica(drpcServer, node.perReplicaServer); err != nil {
994997
return nil, err

0 commit comments

Comments
 (0)