diff --git a/client/clients/tso/stream.go b/client/clients/tso/stream.go index 898cb1fa02d..14768070022 100644 --- a/client/clients/tso/stream.go +++ b/client/clients/tso/stream.go @@ -167,9 +167,11 @@ func (s tsoTSOStreamAdapter) Send(clusterID uint64, keyspaceID, keyspaceGroupID req := &tsopb.TsoRequest{ Header: &tsopb.RequestHeader{ ClusterId: clusterID, - KeyspaceId: keyspaceID, KeyspaceGroupId: keyspaceGroupID, CalleeId: s.calleeID, + Keyspace: &tsopb.RequestHeader_KeyspaceId{ + KeyspaceId: keyspaceID, + }, }, Count: uint32(count), } diff --git a/client/gc_client.go b/client/gc_client.go index bd1b0433367..a9ca45cf331 100644 --- a/client/gc_client.go +++ b/client/gc_client.go @@ -44,9 +44,9 @@ func (c *client) updateGCSafePointV2(ctx context.Context, keyspaceID uint32, saf ctx, cancel := context.WithTimeout(ctx, c.inner.option.Timeout) //nolint:staticcheck req := &pdpb.UpdateGCSafePointV2Request{ - Header: c.requestHeader(), - KeyspaceId: keyspaceID, - SafePoint: safePoint, + Header: c.requestHeader(), + Keyspace: &pdpb.UpdateGCSafePointV2Request_KeyspaceId{KeyspaceId: keyspaceID}, + SafePoint: safePoint, } protoClient, ctx := c.getClientAndContext(ctx) if protoClient == nil { @@ -75,11 +75,11 @@ func (c *client) updateServiceSafePointV2(ctx context.Context, keyspaceID uint32 ctx, cancel := context.WithTimeout(ctx, c.inner.option.Timeout) //nolint:staticcheck req := &pdpb.UpdateServiceSafePointV2Request{ - Header: c.requestHeader(), - KeyspaceId: keyspaceID, - ServiceId: []byte(serviceID), - SafePoint: safePoint, - Ttl: ttl, + Header: c.requestHeader(), + Keyspace: &pdpb.UpdateServiceSafePointV2Request_KeyspaceId{KeyspaceId: keyspaceID}, + ServiceId: []byte(serviceID), + SafePoint: safePoint, + Ttl: ttl, } protoClient, ctx := c.getClientAndContext(ctx) if protoClient == nil { @@ -109,7 +109,7 @@ func newGCInternalController(client *client, keyspaceID uint32) *gcInternalContr func wrapKeyspaceScope(keyspaceID uint32) *pdpb.KeyspaceScope { return &pdpb.KeyspaceScope{ - KeyspaceId: keyspaceID, + Keyspace: &pdpb.KeyspaceScope_KeyspaceId{KeyspaceId: keyspaceID}, } } @@ -332,7 +332,7 @@ func (c gcStatesClient) GetGCState(ctx context.Context, opts ...gc.GCStatesAPIOp func pbToGCState(pb *pdpb.GCState, reqStartTime time.Time, excludeGCBarriers bool) gc.GCState { keyspaceID := constants.NullKeyspaceID if pb.KeyspaceScope != nil { - keyspaceID = pb.KeyspaceScope.KeyspaceId + keyspaceID = pb.KeyspaceScope.GetKeyspaceId() } if excludeGCBarriers { return gc.NewGCStateWithoutGCBarriers(keyspaceID, pb.GetTxnSafePoint(), pb.GetGcSafePoint()) @@ -436,7 +436,7 @@ func (c gcStatesClient) GetAllKeyspacesGCStates(ctx context.Context, opts ...gc. if state.KeyspaceScope == nil { keyspaceID = constants.NullKeyspaceID } else { - keyspaceID = state.KeyspaceScope.KeyspaceId + keyspaceID = state.KeyspaceScope.GetKeyspaceId() } gcStates[keyspaceID] = pbToGCState(state, start, options.ExcludeGCBarriers) } diff --git a/client/go.mod b/client/go.mod index 862feac2a36..f39842d0d17 100644 --- a/client/go.mod +++ b/client/go.mod @@ -10,7 +10,7 @@ require ( github.com/opentracing/opentracing-go v1.2.0 github.com/pingcap/errors v0.11.5-0.20211224045212-9687c2b0f87c github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 - github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0 + github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0 github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3 github.com/prometheus/client_golang v1.20.5 github.com/prometheus/client_model v0.6.1 diff --git a/client/go.sum b/client/go.sum index d7c318da5cd..edb3ba9e513 100644 --- a/client/go.sum +++ b/client/go.sum @@ -53,8 +53,8 @@ github.com/pingcap/errors v0.11.5-0.20211224045212-9687c2b0f87c h1:xpW9bvK+HuuTm github.com/pingcap/errors v0.11.5-0.20211224045212-9687c2b0f87c/go.mod h1:X2r9ueLEUZgtx2cIogM0v4Zj5uvvzhuuiu7Pn8HzMPg= github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 h1:tdMsjOqUR7YXHoBitzdebTvOjs/swniBTOLy5XiMtuE= github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86/go.mod h1:exzhVYca3WRtd6gclGNErRWb1qEgff3LYta0LvRmON4= -github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0 h1:MalBpLjhK/cS9ndCoSAg2C7aBzVojAqFVfzTKmuy0ho= -github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0/go.mod h1:z6+aAHB7dBkA+LyinEX+48/ImRJ3jag0Hg0c7wkhEvE= +github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0 h1:fYG7YB9ooFzVM7vKxXDs3QanNdj57yAMEdPZadeC64Q= +github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0/go.mod h1:z6+aAHB7dBkA+LyinEX+48/ImRJ3jag0Hg0c7wkhEvE= github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3 h1:HR/ylkkLmGdSSDaD8IDP+SZrdhV1Kibl9KrHxJ9eciw= github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3/go.mod h1:DWQW5jICDR7UJh4HtxXSM20Churx4CQL0fwL/SoOSA4= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= diff --git a/client/http/types.go b/client/http/types.go index 9b26f889509..c6764978795 100644 --- a/client/http/types.go +++ b/client/http/types.go @@ -704,7 +704,7 @@ func (meta *tempKeyspaceMeta) toPB() (*keyspacepb.KeyspaceMeta, error) { return &keyspacepb.KeyspaceMeta{ Name: meta.Name, - Id: meta.ID, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: meta.ID}, Config: meta.Config, CreatedAt: meta.CreatedAt, StateChangedAt: meta.StateChangedAt, diff --git a/client/keyspace_client.go b/client/keyspace_client.go index 99e5abb9742..3a23e17195c 100644 --- a/client/keyspace_client.go +++ b/client/keyspace_client.go @@ -68,7 +68,7 @@ func (c *client) LoadKeyspace(ctx context.Context, name string) (*keyspacepb.Key // Create a hardcoded keyspace meta for keyspace_1 now := time.Now().Unix() mockKeyspaceMeta := &keyspacepb.KeyspaceMeta{ - Id: 1, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: 1}, Name: name, CreatedAt: now, StateChangedAt: now, @@ -125,8 +125,8 @@ func (c *client) LoadKeyspaceByID(ctx context.Context, id uint32) (*keyspacepb.K defer func() { metrics.CmdDurationLoadKeyspaceByID.Observe(time.Since(start).Seconds()) }() ctx, cancel := context.WithTimeout(ctx, c.inner.option.Timeout) req := &keyspacepb.LoadKeyspaceByIDRequest{ - Header: c.requestHeader(), - Id: id, + Header: c.requestHeader(), + Keyspace: &keyspacepb.LoadKeyspaceByIDRequest_Id{Id: id}, } protoClient := c.keyspaceClient() if protoClient == nil { @@ -169,9 +169,9 @@ func (c *client) UpdateKeyspaceState(ctx context.Context, id uint32, state keysp defer func() { metrics.CmdDurationUpdateKeyspaceState.Observe(time.Since(start).Seconds()) }() ctx, cancel := context.WithTimeout(ctx, c.inner.option.Timeout) req := &keyspacepb.UpdateKeyspaceStateRequest{ - Header: c.requestHeader(), - Id: id, - State: state, + Header: c.requestHeader(), + Keyspace: &keyspacepb.UpdateKeyspaceStateRequest_Id{Id: id}, + State: state, } protoClient := c.keyspaceClient() if protoClient == nil { @@ -213,9 +213,9 @@ func (c *client) GetAllKeyspaces(ctx context.Context, startID uint32, limit uint defer func() { metrics.CmdDurationGetAllKeyspaces.Observe(time.Since(start).Seconds()) }() ctx, cancel := context.WithTimeout(ctx, c.inner.option.Timeout) req := &keyspacepb.GetAllKeyspacesRequest{ - Header: c.requestHeader(), - StartId: startID, - Limit: limit, + Header: c.requestHeader(), + StartKeyspace: &keyspacepb.GetAllKeyspacesRequest_StartId{StartId: startID}, + Limit: limit, } protoClient := c.keyspaceClient() if protoClient == nil { diff --git a/client/keyspace_client_test.go b/client/keyspace_client_test.go index 4d3ca0deaca..2ab9e80244a 100644 --- a/client/keyspace_client_test.go +++ b/client/keyspace_client_test.go @@ -114,9 +114,9 @@ func TestLoadKeyspaceByID(t *testing.T) { re := require.New(t) ctx := context.Background() expected := &keyspacepb.KeyspaceMeta{ - Id: 42, - Name: "test-keyspace", - State: keyspacepb.KeyspaceState_ENABLED, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: 42}, + Name: "test-keyspace", + State: keyspacepb.KeyspaceState_ENABLED, } keyspaceServer := &testKeyspaceServer{meta: expected} addr, cleanup := startTestKeyspaceServer(t, keyspaceServer) diff --git a/client/resource_group/controller/global_controller.go b/client/resource_group/controller/global_controller.go index 874248c8ae2..48673196e0e 100644 --- a/client/resource_group/controller/global_controller.go +++ b/client/resource_group/controller/global_controller.go @@ -742,9 +742,7 @@ func (c *ResourceGroupsController) collectTokenBucketRequests(ctx context.Contex gc := value.(*groupCostController) request := gc.collectRequestAndConsumption(typ) if request != nil { - request.KeyspaceId = &rmpb.KeyspaceIDValue{ - Value: c.keyspaceID, - } + request.KeyspaceId = &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: c.keyspaceID}} c.run.currentRequests = append(c.run.currentRequests, request) gc.metrics.tokenRequestCounter.Inc() } diff --git a/client/resource_manager_client.go b/client/resource_manager_client.go index 9cac0d871e8..58e7f87d293 100644 --- a/client/resource_manager_client.go +++ b/client/resource_manager_client.go @@ -119,9 +119,7 @@ func (c *client) ListResourceGroups(ctx context.Context, ops ...GetResourceGroup } req := &rmpb.ListResourceGroupsRequest{ WithRuStats: getOp.withRUStats, - KeyspaceId: &rmpb.KeyspaceIDValue{ - Value: c.inner.keyspaceID, - }, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: c.inner.keyspaceID}}, } resp, err := cc.ListResourceGroups(ctx, req) if err != nil { @@ -149,9 +147,7 @@ func (c *client) GetResourceGroup(ctx context.Context, resourceGroupName string, req := &rmpb.GetResourceGroupRequest{ ResourceGroupName: resourceGroupName, WithRuStats: getOp.withRUStats, - KeyspaceId: &rmpb.KeyspaceIDValue{ - Value: c.inner.keyspaceID, - }, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: c.inner.keyspaceID}}, } resp, err := cc.GetResourceGroup(ctx, req) if err != nil { @@ -192,12 +188,10 @@ func (c *client) putResourceGroup(ctx context.Context, metaGroup *rmpb.ResourceG } // ensure to use the keyspace ID of the inner client if metaGroup.KeyspaceId == nil { - metaGroup.KeyspaceId = &rmpb.KeyspaceIDValue{ - Value: c.inner.keyspaceID, - } - } else if metaGroup.KeyspaceId.Value != c.inner.keyspaceID { + metaGroup.KeyspaceId = &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: c.inner.keyspaceID}} + } else if metaGroup.KeyspaceId.GetValue() != c.inner.keyspaceID { return "", errs.ErrClientPutResourceGroupMismatchKeyspaceID.FastGenByArgs( - metaGroup.KeyspaceId.Value, c.inner.keyspaceID) + metaGroup.KeyspaceId.GetValue(), c.inner.keyspaceID) } req := &rmpb.PutResourceGroupRequest{ Group: metaGroup, @@ -228,9 +222,7 @@ func (c *client) DeleteResourceGroup(ctx context.Context, resourceGroupName stri } req := &rmpb.DeleteResourceGroupRequest{ ResourceGroupName: resourceGroupName, - KeyspaceId: &rmpb.KeyspaceIDValue{ - Value: c.inner.keyspaceID, - }, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: c.inner.keyspaceID}}, } resp, err := cc.DeleteResourceGroup(ctx, req) if err != nil { diff --git a/client/resource_manager_client_test.go b/client/resource_manager_client_test.go index 1a38c628b7f..8ddcd32a8f4 100644 --- a/client/resource_manager_client_test.go +++ b/client/resource_manager_client_test.go @@ -188,9 +188,7 @@ func (s *testRMServer) AcquireTokenBuckets(stream rmpb.ResourceManager_AcquireTo for _, tokenReq := range req.GetRequests() { resp.Responses = append(resp.Responses, &rmpb.TokenBucketResponse{ ResourceGroupName: tokenReq.GetResourceGroupName(), - KeyspaceId: &rmpb.KeyspaceIDValue{ - Value: constants.NullKeyspaceID, - }, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: constants.NullKeyspaceID}}, }) } if err := stream.Send(resp); err != nil { diff --git a/client/servicediscovery/tso_service_discovery.go b/client/servicediscovery/tso_service_discovery.go index ed47d2e6b83..01f430c9382 100644 --- a/client/servicediscovery/tso_service_discovery.go +++ b/client/servicediscovery/tso_service_discovery.go @@ -667,11 +667,15 @@ func (c *tsoServiceDiscovery) findGroupByKeyspaceID( ctx, &tsopb.FindGroupByKeyspaceIDRequest{ Header: &tsopb.RequestHeader{ ClusterId: c.clusterID, - KeyspaceId: keyspaceID, KeyspaceGroupId: constants.DefaultKeyspaceGroupID, CalleeId: grpcutil.GetCalleeID(tsoSrvURL), + Keyspace: &tsopb.RequestHeader_KeyspaceId{ + KeyspaceId: keyspaceID, + }, + }, + Keyspace: &tsopb.FindGroupByKeyspaceIDRequest_KeyspaceId{ + KeyspaceId: keyspaceID, }, - KeyspaceId: keyspaceID, ModRevision: modRevision, }) if err != nil { diff --git a/go.mod b/go.mod index fa23cd8aa32..f3f5c43403f 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,7 @@ require ( github.com/pingcap/errcode v0.3.0 github.com/pingcap/errors v0.11.5-0.20211224045212-9687c2b0f87c github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 - github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0 + github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0 github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3 github.com/pingcap/metering_sdk v0.0.0-20260203082503-b9f282339654 github.com/pingcap/sysutil v1.0.1-0.20230407040306-fb007c5aff21 diff --git a/go.sum b/go.sum index fd61582da40..d01348bc6ce 100644 --- a/go.sum +++ b/go.sum @@ -480,8 +480,8 @@ github.com/pingcap/errors v0.11.5-0.20211224045212-9687c2b0f87c/go.mod h1:X2r9ue github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 h1:tdMsjOqUR7YXHoBitzdebTvOjs/swniBTOLy5XiMtuE= github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86/go.mod h1:exzhVYca3WRtd6gclGNErRWb1qEgff3LYta0LvRmON4= github.com/pingcap/kvproto v0.0.0-20191211054548-3c6b38ea5107/go.mod h1:WWLmULLO7l8IOcQG+t+ItJ3fEcrL5FxF0Wu+HrMy26w= -github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0 h1:MalBpLjhK/cS9ndCoSAg2C7aBzVojAqFVfzTKmuy0ho= -github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0/go.mod h1:z6+aAHB7dBkA+LyinEX+48/ImRJ3jag0Hg0c7wkhEvE= +github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0 h1:fYG7YB9ooFzVM7vKxXDs3QanNdj57yAMEdPZadeC64Q= +github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0/go.mod h1:z6+aAHB7dBkA+LyinEX+48/ImRJ3jag0Hg0c7wkhEvE= github.com/pingcap/log v0.0.0-20210625125904-98ed8e2eb1c7/go.mod h1:8AanEdAHATuRurdGxZXBz0At+9avep+ub7U1AGYLIMM= github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3 h1:HR/ylkkLmGdSSDaD8IDP+SZrdhV1Kibl9KrHxJ9eciw= github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3/go.mod h1:DWQW5jICDR7UJh4HtxXSM20Churx4CQL0fwL/SoOSA4= diff --git a/pkg/gc/gc_state_manager.go b/pkg/gc/gc_state_manager.go index 3524ad36476..58b4f7bcaec 100644 --- a/pkg/gc/gc_state_manager.go +++ b/pkg/gc/gc_state_manager.go @@ -1033,7 +1033,7 @@ func (m *GCStateManager) iterateAllKeyspacesGCStates( if keyspaceMeta.Config[keyspace.GCManagementType] != keyspace.KeyspaceLevelGC { gcState := GCState{ - KeyspaceID: keyspaceMeta.Id, + KeyspaceID: keyspaceMeta.GetId(), IsKeyspaceLevel: false, } cb(gcState) @@ -1262,7 +1262,7 @@ func (m *GCStateManager) getMaxTxnSafePointAmongAllKeyspaces(_ *endpoint.GCState if keyspaceMeta.State != keyspacepb.KeyspaceState_ENABLED { continue } - txnSafePoint, err2 := m.gcMetaStorage.LoadTxnSafePoint(keyspaceMeta.Id) + txnSafePoint, err2 := m.gcMetaStorage.LoadTxnSafePoint(keyspaceMeta.GetId()) if err2 != nil { err = err2 return @@ -1270,7 +1270,7 @@ func (m *GCStateManager) getMaxTxnSafePointAmongAllKeyspaces(_ *endpoint.GCState if txnSafePoint > maxTxnSafePoint { maxTxnSafePoint = txnSafePoint keyspaceName = keyspaceMeta.Name - keyspaceID = keyspaceMeta.Id + keyspaceID = keyspaceMeta.GetId() } } // NOTE, allKeyspaces by LoadRangeKeyspace() do not contain the null keyspace! diff --git a/pkg/gc/gc_state_manager_test.go b/pkg/gc/gc_state_manager_test.go index 539e8d98e60..63cc9d1863a 100644 --- a/pkg/gc/gc_state_manager_test.go +++ b/pkg/gc/gc_state_manager_test.go @@ -168,7 +168,7 @@ func newGCStateManagerForTest(t testing.TB, opt newGCStateManagerForTestOptions) CreateTime: time.Now().Unix(), }) re.NoError(err) - re.Equal(uint32(1), ks1.Id) + re.Equal(uint32(1), ks1.GetId()) *id = 2 ks2, err := keyspaceManager.CreateKeyspaceByID(&keyspace.CreateKeyspaceByIDRequest{ @@ -178,7 +178,7 @@ func newGCStateManagerForTest(t testing.TB, opt newGCStateManagerForTestOptions) CreateTime: time.Now().Unix(), }) re.NoError(err) - re.Equal(uint32(2), ks2.Id) + re.Equal(uint32(2), ks2.GetId()) *id = 3 ks3, err := keyspaceManager.CreateKeyspaceByID(&keyspace.CreateKeyspaceByIDRequest{ @@ -188,7 +188,7 @@ func newGCStateManagerForTest(t testing.TB, opt newGCStateManagerForTestOptions) CreateTime: time.Now().Unix(), }) re.NoError(err) - re.Equal(uint32(3), ks3.Id) + re.Equal(uint32(3), ks3.GetId()) *id = 4 ks4, err := keyspaceManager.CreateKeyspaceByID(&keyspace.CreateKeyspaceByIDRequest{ @@ -200,7 +200,7 @@ func newGCStateManagerForTest(t testing.TB, opt newGCStateManagerForTestOptions) re.NoError(err) _, err = keyspaceManager.UpdateKeyspaceState("ks4", keyspacepb.KeyspaceState_DISABLED, time.Now().Unix()) re.NoError(err) - re.Equal(uint32(4), ks4.Id) + re.Equal(uint32(4), ks4.GetId()) } else { for _, req := range opt.specifyInitialKeyspaces { _, err := keyspaceManager.CreateKeyspaceByID(req) diff --git a/pkg/keyspace/keyspace.go b/pkg/keyspace/keyspace.go index 71536d9eb07..ae91632079a 100644 --- a/pkg/keyspace/keyspace.go +++ b/pkg/keyspace/keyspace.go @@ -217,7 +217,7 @@ func (manager *Manager) initReserveKeyspace(id uint32, name string) error { } now := time.Now().Unix() meta := &keyspacepb.KeyspaceMeta{ - Id: id, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: id}, Name: name, State: keyspacepb.KeyspaceState_ENABLED, CreatedAt: now, @@ -320,7 +320,7 @@ func (manager *Manager) CreateKeyspace(request *CreateKeyspaceRequest) (*keyspac // Create a disabled keyspace meta for tikv-server to get the config on keyspace split. keyspace := &keyspacepb.KeyspaceMeta{ - Id: newID, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: newID}, Name: request.Name, State: keyspacepb.KeyspaceState_DISABLED, CreatedAt: request.CreateTime, @@ -467,7 +467,7 @@ func (manager *Manager) CreateKeyspaceByID(request *CreateKeyspaceByIDRequest) ( } // Create a disabled keyspace meta for tikv-server to get the config on keyspace split. keyspace := &keyspacepb.KeyspaceMeta{ - Id: id, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: id}, Name: name, State: keyspacepb.KeyspaceState_DISABLED, CreatedAt: request.CreateTime, @@ -537,10 +537,10 @@ func (manager *Manager) CreateKeyspaceByID(request *CreateKeyspaceByIDRequest) ( } func (manager *Manager) saveNewKeyspace(keyspace *keyspacepb.KeyspaceMeta) error { - manager.metaLock.Lock(keyspace.Id) - defer manager.metaLock.Unlock(keyspace.Id) + manager.metaLock.Lock(keyspace.GetId()) + defer manager.metaLock.Unlock(keyspace.GetId()) - return manager.store.RunInTxn(manager.ctx, func(txn kv.Txn) error { + err := manager.store.RunInTxn(manager.ctx, func(txn kv.Txn) error { // Save keyspace ID. // Check if keyspace with that name already exists. nameExists, _, err := manager.store.LoadKeyspaceID(txn, keyspace.Name) @@ -550,15 +550,13 @@ func (manager *Manager) saveNewKeyspace(keyspace *keyspacepb.KeyspaceMeta) error if nameExists { return errs.ErrKeyspaceExists } - err = manager.store.SaveKeyspaceID(txn, keyspace.Id, keyspace.Name) + err = manager.store.SaveKeyspaceID(txn, keyspace.GetId(), keyspace.Name) if err != nil { return err } - // Update the keyspace name cache. - manager.keyspaceNameLookup.Store(keyspace.Id, keyspace.Name) // Save keyspace meta. // Check if keyspace with that id already exists. - loadedMeta, err := manager.store.LoadKeyspaceMeta(txn, keyspace.Id) + loadedMeta, err := manager.store.LoadKeyspaceMeta(txn, keyspace.GetId()) if err != nil { return err } @@ -567,6 +565,11 @@ func (manager *Manager) saveNewKeyspace(keyspace *keyspacepb.KeyspaceMeta) error } return manager.store.SaveKeyspaceMeta(txn, keyspace) }) + if err == nil { + // Update the keyspace name cache only after the transaction commits. + manager.keyspaceNameLookup.Store(keyspace.GetId(), keyspace.Name) + } + return err } // rollbackMetaServiceGroupAssignment decrements the assignment count that @@ -1397,24 +1400,24 @@ func (manager *Manager) PatrolKeyspaceAssignment(startKeyspaceID, endKeyspaceID if ks == nil { continue } - if endKeyspaceID != 0 && ks.Id > endKeyspaceID { + if endKeyspaceID != 0 && ks.GetId() > endKeyspaceID { moreToPatrol = false break } patrolledKeyspaceCount++ - manager.metaLock.Lock(ks.Id) + manager.metaLock.Lock(ks.GetId()) if ks.Config == nil { ks.Config = make(map[string]string, 1) } else if _, ok := ks.Config[TSOKeyspaceGroupIDKey]; ok { // If the keyspace already has a group ID, skip it. - manager.metaLock.Unlock(ks.Id) + manager.metaLock.Unlock(ks.GetId()) continue } // Unlock the keyspace meta lock after the whole txn. - keyspaceIDsToUnlock = append(keyspaceIDsToUnlock, ks.Id) + keyspaceIDsToUnlock = append(keyspaceIDsToUnlock, ks.GetId()) // If the keyspace doesn't have a group ID, assign it to the default keyspace group. - if !slice.Contains(defaultKeyspaceGroup.Keyspaces, ks.Id) { - defaultKeyspaceGroup.Keyspaces = append(defaultKeyspaceGroup.Keyspaces, ks.Id) + if !slice.Contains(defaultKeyspaceGroup.Keyspaces, ks.GetId()) { + defaultKeyspaceGroup.Keyspaces = append(defaultKeyspaceGroup.Keyspaces, ks.GetId()) // Only save the keyspace group meta if any keyspace is assigned to it. assigned = true } @@ -1427,7 +1430,7 @@ func (manager *Manager) PatrolKeyspaceAssignment(startKeyspaceID, endKeyspaceID zap.Uint32("end-keyspace-id", endKeyspaceID), zap.Uint32("current-start-id", currentStartID), zap.Uint32("next-start-id", nextStartID), - zap.Uint32("keyspace-id", ks.Id), zap.Error(err)) + zap.Uint32("keyspace-id", ks.GetId()), zap.Error(err)) return err } assignedKeyspaceCount++ diff --git a/pkg/keyspace/keyspace_test.go b/pkg/keyspace/keyspace_test.go index 3223d9b1b69..6ef6cfe744c 100644 --- a/pkg/keyspace/keyspace_test.go +++ b/pkg/keyspace/keyspace_test.go @@ -145,23 +145,23 @@ func (suite *keyspaceTestSuite) TestCreateKeyspace() { for i, request := range requests { created, err := manager.CreateKeyspace(request) re.NoError(err) - re.Equal(uint32(i+1), created.Id) + re.Equal(uint32(i+1), created.GetId()) checkCreateRequest(re, request, created) - name, err := manager.GetKeyspaceNameByID(created.Id) + name, err := manager.GetKeyspaceNameByID(created.GetId()) re.NoError(err) re.Equal(created.Name, name) - name, err = manager.GetEnabledKeyspaceNameByID(created.Id) + name, err = manager.GetEnabledKeyspaceNameByID(created.GetId()) re.NoError(err) re.Equal(created.Name, name) loaded, err := manager.LoadKeyspace(request.Name) re.NoError(err) - re.Equal(uint32(i+1), loaded.Id) + re.Equal(uint32(i+1), loaded.GetId()) checkCreateRequest(re, request, loaded) - loaded, err = manager.LoadKeyspaceByID(created.Id) + loaded, err = manager.LoadKeyspaceByID(created.GetId()) re.NoError(err) re.Equal(loaded.Name, request.Name) checkCreateRequest(re, request, loaded) @@ -283,7 +283,7 @@ func (suite *keyspaceTestSuite) TestGCManagementTypeDefaultValue() { } created, err := manager.CreateKeyspace(req) re.NoError(err) - loaded, err := manager.LoadKeyspaceByID(created.Id) + loaded, err := manager.LoadKeyspaceByID(created.GetId()) re.NoError(err) re.Equal(tc.expect, loaded.Config[GCManagementType]) } @@ -316,7 +316,7 @@ func (suite *keyspaceTestSuite) TestCreateKeyspaceByID() { created, err := manager.CreateKeyspaceByID(request) re.NoError(err) id := i + 1 - re.Equal(uint32(id), created.Id) + re.Equal(uint32(id), created.GetId()) re.Equal(strconv.Itoa(id), created.Name) checkCreateByIDRequest(re, request, created) @@ -324,7 +324,7 @@ func (suite *keyspaceTestSuite) TestCreateKeyspaceByID() { re.NoError(err) checkCreateByIDRequest(re, request, loaded) - loaded, err = manager.LoadKeyspaceByID(created.Id) + loaded, err = manager.LoadKeyspaceByID(created.GetId()) re.NoError(err) checkCreateByIDRequest(re, request, loaded) } @@ -363,7 +363,7 @@ func (suite *keyspaceTestSuite) TestCreateKeyspaceNoIDLeak() { } first, err := manager.CreateKeyspace(req) re.NoError(err) - re.Equal(uint32(1), first.Id) + re.Equal(uint32(1), first.GetId()) // Attempt to create the same keyspace 5 times - should all fail without allocating IDs. for range 5 { @@ -378,7 +378,7 @@ func (suite *keyspaceTestSuite) TestCreateKeyspaceNoIDLeak() { Config: map[string]string{testConfig1: "100"}, }) re.NoError(err) - re.Equal(uint32(2), second.Id) + re.Equal(uint32(2), second.GetId()) // Test CreateKeyspaceByID: should reject duplicate name or ID early. id10 := uint32(10) @@ -418,7 +418,7 @@ func (suite *keyspaceTestSuite) TestCreateKeyspaceNoIDLeak() { Config: map[string]string{testConfig1: "100"}, }) re.NoError(err) - re.Equal(uint32(3), third.Id) + re.Equal(uint32(3), third.GetId()) } func makeMutations() []*Mutation { @@ -657,17 +657,17 @@ func (suite *keyspaceTestSuite) TestLoadRangeKeyspace() { for i := range keyspaces { if i < total { // User-created keyspaces with IDs 1-100 - re.Equal(uint32(i+1), keyspaces[i].Id) + re.Equal(uint32(i+1), keyspaces[i].GetId()) checkCreateRequest(re, requests[i], keyspaces[i]) } else { // Bootstrap keyspace with SystemKeyspaceID - re.Equal(constant.SystemKeyspaceID, keyspaces[i].Id) + re.Equal(constant.SystemKeyspaceID, keyspaces[i].GetId()) } } } else { // For classic: expect keyspaces [0, 1, 2, ..., 100] for i := range keyspaces { - re.Equal(uint32(i), keyspaces[i].Id) + re.Equal(uint32(i), keyspaces[i].GetId()) if i != 0 { checkCreateRequest(re, requests[i-1], keyspaces[i]) } @@ -682,14 +682,14 @@ func (suite *keyspaceTestSuite) TestLoadRangeKeyspace() { // In next-gen mode, result should be keyspaces with id 1 - 50. re.Len(keyspaces, 50) for i := range keyspaces { - re.Equal(uint32(i+1), keyspaces[i].Id) + re.Equal(uint32(i+1), keyspaces[i].GetId()) checkCreateRequest(re, requests[i], keyspaces[i]) } } else { // In legacy mode, result should be keyspaces with id 0 - 49. re.Len(keyspaces, 50) for i := range keyspaces { - re.Equal(uint32(i), keyspaces[i].Id) + re.Equal(uint32(i), keyspaces[i].GetId()) if i != 0 { checkCreateRequest(re, requests[i-1], keyspaces[i]) } @@ -703,7 +703,7 @@ func (suite *keyspaceTestSuite) TestLoadRangeKeyspace() { re.NoError(err) re.Len(keyspaces, 20) for i := range keyspaces { - re.Equal(uint32(loadStart+i), keyspaces[i].Id) + re.Equal(uint32(loadStart+i), keyspaces[i].GetId()) checkCreateRequest(re, requests[i+loadStart-1], keyspaces[i]) } @@ -718,18 +718,18 @@ func (suite *keyspaceTestSuite) TestLoadRangeKeyspace() { for i := range keyspaces { if i < 11 { // User-created keyspaces with IDs 90-100 - re.Equal(uint32(loadStart+i), keyspaces[i].Id) + re.Equal(uint32(loadStart+i), keyspaces[i].GetId()) checkCreateRequest(re, requests[i+loadStart-1], keyspaces[i]) } else { // System keyspace with SystemKeyspaceID - re.Equal(constant.SystemKeyspaceID, keyspaces[i].Id) + re.Equal(constant.SystemKeyspaceID, keyspaces[i].GetId()) } } } else { // In legacy mode, scan result should be keyspaces with id 90-100. re.Len(keyspaces, 11) for i := range keyspaces { - re.Equal(uint32(loadStart+i), keyspaces[i].Id) + re.Equal(uint32(loadStart+i), keyspaces[i].GetId()) checkCreateRequest(re, requests[i+loadStart-1], keyspaces[i]) } } @@ -741,7 +741,7 @@ func (suite *keyspaceTestSuite) TestLoadRangeKeyspace() { if kerneltype.IsNextGen() { // In next-gen mode, only SystemKeyspaceID is greater than 900. re.Len(keyspaces, 1) - re.Equal(constant.SystemKeyspaceID, keyspaces[0].Id) + re.Equal(constant.SystemKeyspaceID, keyspaces[0].GetId()) } else { re.Empty(keyspaces) } @@ -843,7 +843,7 @@ func (suite *keyspaceTestSuite) TestPatrolKeyspaceAssignment() { // Create a keyspace without any keyspace group. now := time.Now().Unix() err := suite.manager.saveNewKeyspace(&keyspacepb.KeyspaceMeta{ - Id: 111, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: 111}, Name: "111", State: keyspacepb.KeyspaceState_ENABLED, CreatedAt: now, @@ -871,7 +871,7 @@ func (suite *keyspaceTestSuite) TestPatrolKeyspaceAssignmentInBatch() { for i := 1; i < etcdutil.MaxEtcdTxnOps*2+1; i++ { now := time.Now().Unix() err := suite.manager.saveNewKeyspace(&keyspacepb.KeyspaceMeta{ - Id: uint32(i), + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: uint32(i)}, Name: strconv.Itoa(i), State: keyspacepb.KeyspaceState_ENABLED, CreatedAt: now, @@ -904,7 +904,7 @@ func (suite *keyspaceTestSuite) TestPatrolKeyspaceAssignmentWithRange() { for i := 1; i < etcdutil.MaxEtcdTxnOps*2+1; i++ { now := time.Now().Unix() err := suite.manager.saveNewKeyspace(&keyspacepb.KeyspaceMeta{ - Id: uint32(i), + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: uint32(i)}, Name: strconv.Itoa(i), State: keyspacepb.KeyspaceState_ENABLED, CreatedAt: now, @@ -1002,10 +1002,10 @@ func TestIterateKeyspaces(t *testing.T) { if !ok { break } - re.Equal(keyspaceIDs[i], meta.Id) + re.Equal(keyspaceIDs[i], meta.GetId()) re.Equal(keyspaceNames[i], meta.Name) - if meta.Id != constant.DefaultKeyspaceID && meta.Id != constant.SystemKeyspaceID { - re.Equal(strconv.FormatUint(uint64(meta.Id), 10), meta.Config["test_cfg"]) + if meta.GetId() != constant.DefaultKeyspaceID && meta.GetId() != constant.SystemKeyspaceID { + re.Equal(strconv.FormatUint(uint64(meta.GetId()), 10), meta.Config["test_cfg"]) } } re.Equal(len(keyspaceIDs), i) @@ -1064,7 +1064,7 @@ func benchmarkPatrolKeyspaceAssignmentN( for i := 1; i <= n; i++ { now := time.Now().Unix() err := suite.manager.saveNewKeyspace(&keyspacepb.KeyspaceMeta{ - Id: uint32(i), + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: uint32(i)}, Name: strconv.Itoa(i), State: keyspacepb.KeyspaceState_ENABLED, CreatedAt: now, @@ -1098,7 +1098,7 @@ func TestAssignGroupAndSaveKeyspace(t *testing.T) { emptyMgm := NewMetaServiceGroupManager(store, map[string]string{}) managerNoGroup := NewKeyspaceManager(ctx, store, nil, mockid.NewIDAllocator(), &mockConfig{}, kgm, emptyMgm) cfg := map[string]string{} - ks := &keyspacepb.KeyspaceMeta{Id: 100, Name: "ks-stale-precheck", Config: cfg} + ks := &keyspacepb.KeyspaceMeta{Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: 100}, Name: "ks-stale-precheck", Config: cfg} re.NoError(managerNoGroup.assignGroupAndSaveKeyspace(true, &cfg, ks)) re.NotContains(ks.GetConfig(), MetaServiceGroupIDKey) loaded, err := managerNoGroup.LoadKeyspace("ks-stale-precheck") @@ -1112,7 +1112,7 @@ func TestAssignGroupAndSaveKeyspace(t *testing.T) { re.NoError(mgm.PatchStatus(ctx, "g1", &MetaServiceGroupStatusPatch{Enabled: &enabled})) managerWithGroup := NewKeyspaceManager(ctx, store, nil, mockid.NewIDAllocator(), &mockConfig{}, kgm, mgm) cfg2 := map[string]string{} - ks2 := &keyspacepb.KeyspaceMeta{Id: 101, Name: "ks-with-group", Config: cfg2} + ks2 := &keyspacepb.KeyspaceMeta{Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: 101}, Name: "ks-with-group", Config: cfg2} re.NoError(managerWithGroup.assignGroupAndSaveKeyspace(true, &cfg2, ks2)) re.Equal("g1", ks2.GetConfig()[MetaServiceGroupIDKey]) @@ -1121,7 +1121,7 @@ func TestAssignGroupAndSaveKeyspace(t *testing.T) { disabledMgm := NewMetaServiceGroupManager(store, map[string]string{"g2": "addr2"}) managerDisabled := NewKeyspaceManager(ctx, store, nil, mockid.NewIDAllocator(), &mockConfig{}, kgm, disabledMgm) cfg3 := map[string]string{} - ks3 := &keyspacepb.KeyspaceMeta{Id: 102, Name: "ks-disabled-group", Config: cfg3} + ks3 := &keyspacepb.KeyspaceMeta{Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: 102}, Name: "ks-disabled-group", Config: cfg3} re.NoError(managerDisabled.assignGroupAndSaveKeyspace(true, &cfg3, ks3)) re.NotContains(ks3.GetConfig(), MetaServiceGroupIDKey) } diff --git a/pkg/mcs/resourcemanager/server/grpc_service.go b/pkg/mcs/resourcemanager/server/grpc_service.go index 875299c6025..8d2b13f4a36 100644 --- a/pkg/mcs/resourcemanager/server/grpc_service.go +++ b/pkg/mcs/resourcemanager/server/grpc_service.go @@ -254,7 +254,7 @@ func (s *Service) AcquireTokenBuckets(stream rmpb.ResourceManager_AcquireTokenBu now := time.Now() resp := &rmpb.TokenBucketResponse{ ResourceGroupName: rg.Name, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: keyspaceID}}, } switch rg.Mode { case rmpb.GroupMode_RUMode: diff --git a/pkg/mcs/resourcemanager/server/keyspace_manager_test.go b/pkg/mcs/resourcemanager/server/keyspace_manager_test.go index 5dad0672e49..5c8f30e6a67 100644 --- a/pkg/mcs/resourcemanager/server/keyspace_manager_test.go +++ b/pkg/mcs/resourcemanager/server/keyspace_manager_test.go @@ -672,7 +672,7 @@ func TestPersistAndReloadIntegrity(t *testing.T) { err = proto.Unmarshal([]byte(rawValue), groupSetting) re.NoError(err) re.NotNil(groupSetting.KeyspaceId) - re.Equal(keyspaceID, groupSetting.KeyspaceId.Value) + re.Equal(keyspaceID, groupSetting.KeyspaceId.GetValue()) re.Equal(uint64(500), groupSetting.RUSettings.RU.Settings.FillRate) } }) diff --git a/pkg/mcs/resourcemanager/server/manager.go b/pkg/mcs/resourcemanager/server/manager.go index 4f811a0392e..57d1a818ff0 100644 --- a/pkg/mcs/resourcemanager/server/manager.go +++ b/pkg/mcs/resourcemanager/server/manager.go @@ -719,13 +719,13 @@ func (m *Manager) updateKeyspaceNameLookup(id uint32, name string) { // GetKeyspaceIDByName gets the keyspace ID by name. func (m *Manager) GetKeyspaceIDByName(ctx context.Context, name string) (*rmpb.KeyspaceIDValue, error) { if len(name) == 0 { - return &rmpb.KeyspaceIDValue{Value: constant.NullKeyspaceID}, nil + return &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: constant.NullKeyspaceID}}, nil } m.RLock() id, ok := m.keyspaceIDLookup[name] m.RUnlock() if ok { - return &rmpb.KeyspaceIDValue{Value: id}, nil + return &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: id}}, nil } var ( loadedID uint32 @@ -747,7 +747,7 @@ func (m *Manager) GetKeyspaceIDByName(ctx context.Context, name string) (*rmpb.K } // Update the cache. m.updateKeyspaceNameLookup(loadedID, name) - return &rmpb.KeyspaceIDValue{Value: loadedID}, nil + return &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: loadedID}}, nil } func (m *Manager) backgroundMetricsFlush(ctx context.Context) { diff --git a/pkg/mcs/resourcemanager/server/manager_test.go b/pkg/mcs/resourcemanager/server/manager_test.go index 16ecac456d1..8d8e5f0e7c6 100644 --- a/pkg/mcs/resourcemanager/server/manager_test.go +++ b/pkg/mcs/resourcemanager/server/manager_test.go @@ -246,11 +246,9 @@ func TestLoadKeyspaceResourceGroupsRejectsMismatchedPayloadName(t *testing.T) { m.storage = memStorage group := &rmpb.ResourceGroup{ - Name: "payload-group", - Mode: rmpb.GroupMode_RUMode, - KeyspaceId: &rmpb.KeyspaceIDValue{ - Value: 42, - }, + Name: "payload-group", + Mode: rmpb.GroupMode_RUMode, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: 42}}, } rawGroup, err := proto.Marshal(group) re.NoError(err) @@ -385,14 +383,14 @@ func TestInitManager(t *testing.T) { Name: "test_group", Mode: rmpb.GroupMode_RUMode, Priority: 5, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: keyspaceID}}, } err = m.AddResourceGroup(group) re.NoError(err) // Adding a new keyspace resource group should create a new keyspace resource group manager. krgm = m.getKeyspaceResourceGroupManager(1) re.NotNil(krgm) - re.Equal(group.KeyspaceId.Value, krgm.keyspaceID) + re.Equal(group.KeyspaceId.GetValue(), krgm.keyspaceID) re.Equal(group.Name, krgm.getMutableResourceGroup(group.Name).Name) // A default resource group should be created for the keyspace as well. defaultGroup := krgm.getMutableResourceGroup(DefaultResourceGroupName) @@ -429,7 +427,7 @@ func TestBackgroundMetricsFlush(t *testing.T) { // Test without keyspace ID checkBackgroundMetricsFlush(ctx, re, m, nil) // Test with keyspace ID - checkBackgroundMetricsFlush(ctx, re, m, &rmpb.KeyspaceIDValue{Value: 1}) + checkBackgroundMetricsFlush(ctx, re, m, &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: 1}}) } func checkBackgroundMetricsFlush(ctx context.Context, re *require.Assertions, manager *Manager, keyspaceIDValue *rmpb.KeyspaceIDValue) { @@ -486,7 +484,7 @@ func TestDispatchConsumptionIncludesOnlyConsumption(t *testing.T) { WRU: 8, WriteBytes: 1024, }, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: 42}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: 42}}, } err := m.dispatchConsumption(req) @@ -501,15 +499,15 @@ func TestDispatchConsumptionIncludesOnlyConsumption(t *testing.T) { // Put a keyspace meta into the storage. func prepareKeyspaceName(ctx context.Context, re *require.Assertions, manager *Manager, keyspaceIDValue *rmpb.KeyspaceIDValue, keyspaceName string) { keyspaceMeta := &keyspacepb.KeyspaceMeta{ - Id: ExtractKeyspaceID(keyspaceIDValue), - Name: keyspaceName, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: ExtractKeyspaceID(keyspaceIDValue)}, + Name: keyspaceName, } err := manager.storage.RunInTxn(ctx, func(txn kv.Txn) error { err := manager.storage.SaveKeyspaceMeta(txn, keyspaceMeta) if err != nil { return err } - return manager.storage.SaveKeyspaceID(txn, keyspaceMeta.Id, keyspaceMeta.Name) + return manager.storage.SaveKeyspaceID(txn, keyspaceMeta.GetId(), keyspaceMeta.Name) }) re.NoError(err) } @@ -529,7 +527,7 @@ func TestAddAndModifyResourceGroup(t *testing.T) { // Test without keyspace ID checkAddAndModifyResourceGroup(re, m, nil) // Test with keyspace ID - checkAddAndModifyResourceGroup(re, m, &rmpb.KeyspaceIDValue{Value: 1}) + checkAddAndModifyResourceGroup(re, m, &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: 1}}) } func checkAddAndModifyResourceGroup(re *require.Assertions, manager *Manager, keyspaceIDValue *rmpb.KeyspaceIDValue) { @@ -573,7 +571,7 @@ func TestCleanUpTicker(t *testing.T) { defer cancel() // Put a keyspace meta. keyspaceID := uint32(1) - prepareKeyspaceName(ctx, re, m, &rmpb.KeyspaceIDValue{Value: keyspaceID}, "test_keyspace") + prepareKeyspaceName(ctx, re, m, &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: keyspaceID}}, "test_keyspace") // Insert two consumption records manually. m.metrics.consumptionRecordMap[consumptionRecordKey{ keyspaceID: keyspaceID, @@ -636,10 +634,10 @@ func TestKeyspaceServiceLimit(t *testing.T) { }, }, }, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: 1}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: 1}}, } // Test the limiter of the non-existing keyspace is nil. - limiter = m.GetKeyspaceServiceLimiter(group.KeyspaceId.Value) + limiter = m.GetKeyspaceServiceLimiter(group.KeyspaceId.GetValue()) re.Nil(limiter) // Test the limiter of the newly created keyspace is 0.0. err = m.AddResourceGroup(group) @@ -678,7 +676,7 @@ func TestKeyspaceNameLookup(t *testing.T) { idValue, err := m.GetKeyspaceIDByName(ctx, "") re.NoError(err) re.NotNil(idValue) - re.Equal(constant.NullKeyspaceID, idValue.Value) + re.Equal(constant.NullKeyspaceID, idValue.GetValue()) // Get the non-existing keyspace ID by name. idValue, err = m.GetKeyspaceIDByName(ctx, "non-existing-keyspace") re.Error(err) @@ -692,23 +690,23 @@ func TestKeyspaceNameLookup(t *testing.T) { re.Error(err) re.Empty(name) // Get the keyspace ID by name first, then get the keyspace name by ID. - prepareKeyspaceName(ctx, re, m, &rmpb.KeyspaceIDValue{Value: 1}, "test_keyspace") + prepareKeyspaceName(ctx, re, m, &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: 1}}, "test_keyspace") idValue, err = m.GetKeyspaceIDByName(ctx, "test_keyspace") re.NoError(err) re.NotNil(idValue) - re.Equal(uint32(1), idValue.Value) + re.Equal(uint32(1), idValue.GetValue()) name, err = m.getKeyspaceNameByID(ctx, 1) re.NoError(err) re.Equal("test_keyspace", name) // Get the keyspace name by ID first, then get the keyspace ID by name. - prepareKeyspaceName(ctx, re, m, &rmpb.KeyspaceIDValue{Value: 2}, "test_keyspace_2") + prepareKeyspaceName(ctx, re, m, &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: 2}}, "test_keyspace_2") name, err = m.getKeyspaceNameByID(ctx, 2) re.NoError(err) re.Equal("test_keyspace_2", name) idValue, err = m.GetKeyspaceIDByName(ctx, "test_keyspace_2") re.NoError(err) re.NotNil(idValue) - re.Equal(uint32(2), idValue.Value) + re.Equal(uint32(2), idValue.GetValue()) } func TestResourceGroupPersistence(t *testing.T) { @@ -720,7 +718,7 @@ func TestResourceGroupPersistence(t *testing.T) { Name: "test_group", Mode: rmpb.GroupMode_RUMode, Priority: 5, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: 1}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: 1}}, } err := m.AddResourceGroup(group) re.NoError(err) diff --git a/pkg/mcs/resourcemanager/server/metadata_watcher_test.go b/pkg/mcs/resourcemanager/server/metadata_watcher_test.go index 1335492a9bc..fcbcf7dbc98 100644 --- a/pkg/mcs/resourcemanager/server/metadata_watcher_test.go +++ b/pkg/mcs/resourcemanager/server/metadata_watcher_test.go @@ -64,7 +64,7 @@ func newMetadataWatcherResourceGroup(name string, priority uint32, fillRate uint }, }, }, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: 10}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: 10}}, } } diff --git a/pkg/mcs/resourcemanager/server/resource_group.go b/pkg/mcs/resourcemanager/server/resource_group.go index 37fdd8bdb85..5563a70ce49 100644 --- a/pkg/mcs/resourcemanager/server/resource_group.go +++ b/pkg/mcs/resourcemanager/server/resource_group.go @@ -322,7 +322,7 @@ func (rg *ResourceGroup) IntoProtoResourceGroup(keyspaceID uint32) *rmpb.Resourc }, RunawaySettings: rg.Runaway, BackgroundSettings: rg.Background, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: keyspaceID}}, } if rg.RUConsumption != nil { diff --git a/pkg/mcs/resourcemanager/server/utils_test.go b/pkg/mcs/resourcemanager/server/utils_test.go index 2a0389caa83..c212c58fd8b 100644 --- a/pkg/mcs/resourcemanager/server/utils_test.go +++ b/pkg/mcs/resourcemanager/server/utils_test.go @@ -33,9 +33,9 @@ func TestExtractKeyspaceID(t *testing.T) { expected uint32 }{ {nil, constant.NullKeyspaceID}, - {&rmpb.KeyspaceIDValue{Value: 0}, 0}, - {&rmpb.KeyspaceIDValue{Value: 1}, 1}, - {&rmpb.KeyspaceIDValue{Value: math.MaxUint32}, math.MaxUint32}, + {&rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: 0}}, 0}, + {&rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: 1}}, 1}, + {&rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: math.MaxUint32}}, math.MaxUint32}, } for _, tc := range testCases { re.Equal(tc.expected, ExtractKeyspaceID(tc.keyspaceIDValue)) diff --git a/pkg/storage/keyspace_test.go b/pkg/storage/keyspace_test.go index 3f39c63e7e5..58faeaddaf8 100644 --- a/pkg/storage/keyspace_test.go +++ b/pkg/storage/keyspace_test.go @@ -34,7 +34,7 @@ func TestSaveLoadKeyspace(t *testing.T) { keyspaces := makeTestKeyspaces() err := storage.RunInTxn(context.TODO(), func(txn kv.Txn) error { for _, keyspace := range keyspaces { - re.NoError(storage.SaveKeyspaceID(txn, keyspace.Id, keyspace.Name)) + re.NoError(storage.SaveKeyspaceID(txn, keyspace.GetId(), keyspace.Name)) re.NoError(storage.SaveKeyspaceMeta(txn, keyspace)) } return nil @@ -46,9 +46,9 @@ func TestSaveLoadKeyspace(t *testing.T) { loadSuccess, id, err := storage.LoadKeyspaceID(txn, expectedMeta.Name) re.NoError(err) re.True(loadSuccess) - re.Equal(expectedMeta.Id, id) + re.Equal(expectedMeta.GetId(), id) // Test load keyspace. - loadedMeta, err := storage.LoadKeyspaceMeta(txn, expectedMeta.Id) + loadedMeta, err := storage.LoadKeyspaceMeta(txn, expectedMeta.GetId()) re.NoError(err) re.Equal(expectedMeta, loadedMeta) } @@ -109,7 +109,7 @@ func makeTestKeyspaces() []*keyspacepb.KeyspaceMeta { now := time.Now().Unix() return []*keyspacepb.KeyspaceMeta{ { - Id: 10, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: 10}, Name: "keyspace1", State: keyspacepb.KeyspaceState_ENABLED, CreatedAt: now, @@ -120,7 +120,7 @@ func makeTestKeyspaces() []*keyspacepb.KeyspaceMeta { }, }, { - Id: 11, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: 11}, Name: "keyspace2", State: keyspacepb.KeyspaceState_ARCHIVED, CreatedAt: now + 300, @@ -131,7 +131,7 @@ func makeTestKeyspaces() []*keyspacepb.KeyspaceMeta { }, }, { - Id: 100, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: 100}, Name: "keyspace3", State: keyspacepb.KeyspaceState_DISABLED, CreatedAt: now + 500, diff --git a/pkg/utils/tsoutil/tso_proto_factory.go b/pkg/utils/tsoutil/tso_proto_factory.go index 6da54dc8b52..37b1b0a2b00 100644 --- a/pkg/utils/tsoutil/tso_proto_factory.go +++ b/pkg/utils/tsoutil/tso_proto_factory.go @@ -70,8 +70,10 @@ func (s *tsoStream) process(clusterID uint64, count, keyspaceID, keyspaceGroupID req := &tsopb.TsoRequest{ Header: &tsopb.RequestHeader{ ClusterId: clusterID, - KeyspaceId: keyspaceID, KeyspaceGroupId: keyspaceGroupID, + Keyspace: &tsopb.RequestHeader_KeyspaceId{ + KeyspaceId: keyspaceID, + }, }, Count: count, } diff --git a/server/apiv2/handlers/keyspace.go b/server/apiv2/handlers/keyspace.go index 1e986c808da..f1acdec7716 100644 --- a/server/apiv2/handlers/keyspace.go +++ b/server/apiv2/handlers/keyspace.go @@ -297,7 +297,7 @@ func LoadAllKeyspaces(c *gin.Context) { resultKeyspaces[i] = &KeyspaceMeta{scanned[i]} } // Also set next_page_token here. - resp.NextPageToken = strconv.Itoa(int(scanned[len(scanned)-1].Id)) + resp.NextPageToken = strconv.Itoa(int(scanned[len(scanned)-1].GetId())) } resp.Keyspaces = resultKeyspaces c.IndentedJSON(http.StatusOK, resp) @@ -462,7 +462,7 @@ func (meta *KeyspaceMeta) MarshalJSON() ([]byte, error) { StateChangedAt int64 `json:"state_changed_at,omitempty"` Config map[string]string `json:"config,omitempty"` }{ - meta.Id, + meta.GetId(), meta.Name, meta.State.String(), meta.CreatedAt, @@ -486,7 +486,7 @@ func (meta *KeyspaceMeta) UnmarshalJSON(data []byte) error { return err } pbMeta := &keyspacepb.KeyspaceMeta{ - Id: aux.ID, + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: aux.ID}, Name: aux.Name, State: keyspacepb.KeyspaceState(keyspacepb.KeyspaceState_value[aux.State]), CreatedAt: aux.CreatedAt, diff --git a/server/forward.go b/server/forward.go index a5d97bfe81e..aeb739c4c01 100644 --- a/server/forward.go +++ b/server/forward.go @@ -128,8 +128,10 @@ func (f *tsoForwarder) forwardTSORequest( Header: &tsopb.RequestHeader{ ClusterId: request.GetHeader().GetClusterId(), SenderId: request.GetHeader().GetSenderId(), - KeyspaceId: keyspace.GetBootstrapKeyspaceID(), KeyspaceGroupId: constant.DefaultKeyspaceGroupID, + Keyspace: &tsopb.RequestHeader_KeyspaceId{ + KeyspaceId: keyspace.GetBootstrapKeyspaceID(), + }, }, Count: request.GetCount(), } @@ -482,8 +484,10 @@ func (s *GrpcServer) getGlobalTSO(ctx context.Context) (pdpb.Timestamp, error) { request := &tsopb.TsoRequest{ Header: &tsopb.RequestHeader{ ClusterId: keypath.ClusterID(), - KeyspaceId: keyspace.GetBootstrapKeyspaceID(), KeyspaceGroupId: constant.DefaultKeyspaceGroupID, + Keyspace: &tsopb.RequestHeader_KeyspaceId{ + KeyspaceId: keyspace.GetBootstrapKeyspaceID(), + }, }, Count: 1, } diff --git a/server/gc_service.go b/server/gc_service.go index 4a92a4d032b..6c07c474a68 100644 --- a/server/gc_service.go +++ b/server/gc_service.go @@ -456,8 +456,10 @@ func (s *GrpcServer) GetAllGCSafePointV2(ctx context.Context, request *pdpb.GetA continue } gcSafePoints = append(gcSafePoints, &pdpb.GCSafePointV2{ - KeyspaceId: gcState.KeyspaceID, GcSafePoint: gcState.GCSafePoint, + Keyspace: &pdpb.GCSafePointV2_KeyspaceId{ + KeyspaceId: gcState.KeyspaceID, + }, }) } @@ -520,7 +522,9 @@ func gcStateToProto(gcState gc.GCState, now time.Time) *pdpb.GCState { } return &pdpb.GCState{ KeyspaceScope: &pdpb.KeyspaceScope{ - KeyspaceId: gcState.KeyspaceID, + Keyspace: &pdpb.KeyspaceScope_KeyspaceId{ + KeyspaceId: gcState.KeyspaceID, + }, }, IsKeyspaceLevelGc: gcState.IsKeyspaceLevel, TxnSafePoint: gcState.TxnSafePoint, diff --git a/server/keyspace_service.go b/server/keyspace_service.go index 249d7e97fd3..6e1385a7601 100644 --- a/server/keyspace_service.go +++ b/server/keyspace_service.go @@ -34,6 +34,7 @@ import ( // KeyspaceServer wraps GrpcServer to provide keyspace service. type KeyspaceServer struct { + keyspacepb.UnimplementedKeyspaceServer *GrpcServer } @@ -202,7 +203,7 @@ func (s *KeyspaceServer) GetAllKeyspaces(_ context.Context, request *keyspacepb. } manager := s.GetKeyspaceManager() - keyspaces, err := manager.LoadRangeKeyspace(request.StartId, int(request.Limit)) + keyspaces, err := manager.LoadRangeKeyspace(request.GetStartId(), int(request.Limit)) if err != nil { return &keyspacepb.GetAllKeyspacesResponse{Header: getErrorHeader(err)}, nil } diff --git a/tests/integrations/client/client_test.go b/tests/integrations/client/client_test.go index 6ecad3e1d31..ee90426bfeb 100644 --- a/tests/integrations/client/client_test.go +++ b/tests/integrations/client/client_test.go @@ -2342,7 +2342,7 @@ func (s *clientStatefulTestSuite) prepareKeyspacesForGCTest() { CreateTime: time.Now().Unix(), }) re.NoError(err) - re.Equal(uint32(1), ks1.Id) + re.Equal(uint32(1), ks1.GetId()) ks2, err := s.srv.GetKeyspaceManager().CreateKeyspace(&keyspace.CreateKeyspaceRequest{ Name: "ks2", @@ -2350,7 +2350,7 @@ func (s *clientStatefulTestSuite) prepareKeyspacesForGCTest() { CreateTime: time.Now().Unix(), }) re.NoError(err) - re.Equal(uint32(2), ks2.Id) + re.Equal(uint32(2), ks2.GetId()) } func (s *clientStatefulTestSuite) TestAdvanceTxnSafePointBasic() { @@ -2711,7 +2711,7 @@ func (s *clientStatefulTestSuite) TestGetAllKeyspaceGCStates() { CreateTime: time.Now().Unix(), }) re.NoError(err) - re.Equal(uint32(3), ks3.Id) + re.Equal(uint32(3), ks3.GetId()) // Modify some GC states and verify TestGetAllKeyspaceGCStates gets the correct result. cli := s.client.GetGCStatesClient(constants.NullKeyspaceID) diff --git a/tests/integrations/client/gc_test.go b/tests/integrations/client/gc_test.go index 6cbd61efa1c..8ca134ca16c 100644 --- a/tests/integrations/client/gc_test.go +++ b/tests/integrations/client/gc_test.go @@ -59,7 +59,7 @@ func TestServiceSafePointV2Operations(t *testing.T) { advanceTxnSafePointReq := &pdpb.AdvanceTxnSafePointRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: ks1.Id}, + KeyspaceScope: &pdpb.KeyspaceScope{Keyspace: &pdpb.KeyspaceScope_KeyspaceId{KeyspaceId: ks1.GetId()}}, Target: 10, } advanceTxnSafePointResp, err := grpcPDClient.AdvanceTxnSafePoint(ctx, advanceTxnSafePointReq) @@ -73,43 +73,43 @@ func TestServiceSafePointV2Operations(t *testing.T) { defer cli.Close() legacyClientV2, ok := cli.(clientgc.LegacyClientV2) re.True(ok) - gcStatesClient := cli.GetGCStatesClient(ks1.Id) + gcStatesClient := cli.GetGCStatesClient(ks1.GetId()) getGCBarriers := func() []*clientgc.GCBarrierInfo { gcState, err := gcStatesClient.GetGCState(ctx, clientgc.ExcludeGCBarriers(false)) re.NoError(err) - re.Equal(ks1.Id, gcState.KeyspaceID) + re.Equal(ks1.GetId(), gcState.KeyspaceID) gcBarriers, err := gcState.GetGCBarriers() re.NoError(err) return gcBarriers } - minSafePoint, err := legacyClientV2.GetMinServiceSafePointV2(ctx, ks1.Id) + minSafePoint, err := legacyClientV2.GetMinServiceSafePointV2(ctx, ks1.GetId()) re.NoError(err) re.Equal(uint64(10), minSafePoint) re.Empty(getGCBarriers()) for _, ttl := range []int64{0, -1} { - minSafePoint, err = legacyClientV2.SetServiceSafePointV2(ctx, ks1.Id, "v2-service-safe-point", ttl, 20) + minSafePoint, err = legacyClientV2.SetServiceSafePointV2(ctx, ks1.GetId(), "v2-service-safe-point", ttl, 20) re.Error(err) re.ErrorContains(err, "invalid ttl") re.Equal(uint64(0), minSafePoint) } re.Empty(getGCBarriers()) - minSafePoint, err = legacyClientV2.SetServiceSafePointV2(ctx, ks1.Id, "_reserved_get_min_ssp", 3600, 20) + minSafePoint, err = legacyClientV2.SetServiceSafePointV2(ctx, ks1.GetId(), "_reserved_get_min_ssp", 3600, 20) re.Error(err) re.ErrorContains(err, "reserved for GetMinServiceSafePointV2") re.Equal(uint64(0), minSafePoint) re.Empty(getGCBarriers()) // The safePoint < minSafePoint is rejected, and the returned minSafePoint is still 10. - minSafePoint, err = legacyClientV2.SetServiceSafePointV2(ctx, ks1.Id, "v2-service-safe-point", 3600, 5) + minSafePoint, err = legacyClientV2.SetServiceSafePointV2(ctx, ks1.GetId(), "v2-service-safe-point", 3600, 5) re.NoError(err) re.Equal(uint64(10), minSafePoint) gcBarriers := getGCBarriers() re.Empty(gcBarriers) - minSafePoint, err = legacyClientV2.SetServiceSafePointV2(ctx, ks1.Id, "v2-service-safe-point", 3600, 20) + minSafePoint, err = legacyClientV2.SetServiceSafePointV2(ctx, ks1.GetId(), "v2-service-safe-point", 3600, 20) re.NoError(err) re.Equal(uint64(10), minSafePoint) gcBarriers = getGCBarriers() @@ -119,7 +119,7 @@ func TestServiceSafePointV2Operations(t *testing.T) { re.Greater(gcBarriers[0].TTL, 3595*time.Second) re.LessOrEqual(gcBarriers[0].TTL, 3600*time.Second) - minSafePoint, err = legacyClientV2.DeleteServiceSafePointV2(ctx, ks1.Id, "v2-service-safe-point") + minSafePoint, err = legacyClientV2.DeleteServiceSafePointV2(ctx, ks1.GetId(), "v2-service-safe-point") re.NoError(err) re.Equal(uint64(10), minSafePoint) re.Empty(getGCBarriers()) diff --git a/tests/integrations/go.mod b/tests/integrations/go.mod index 10abaf5077d..feade2e6562 100644 --- a/tests/integrations/go.mod +++ b/tests/integrations/go.mod @@ -14,7 +14,7 @@ require ( github.com/go-sql-driver/mysql v1.7.0 github.com/pingcap/errors v0.11.5-0.20211224045212-9687c2b0f87c github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 - github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0 + github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0 github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3 github.com/prometheus/client_golang v1.20.5 github.com/prometheus/client_model v0.6.1 diff --git a/tests/integrations/go.sum b/tests/integrations/go.sum index 0a214a61978..1e51b59b5fe 100644 --- a/tests/integrations/go.sum +++ b/tests/integrations/go.sum @@ -473,8 +473,8 @@ github.com/pingcap/errors v0.11.5-0.20211224045212-9687c2b0f87c/go.mod h1:X2r9ue github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 h1:tdMsjOqUR7YXHoBitzdebTvOjs/swniBTOLy5XiMtuE= github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86/go.mod h1:exzhVYca3WRtd6gclGNErRWb1qEgff3LYta0LvRmON4= github.com/pingcap/kvproto v0.0.0-20191211054548-3c6b38ea5107/go.mod h1:WWLmULLO7l8IOcQG+t+ItJ3fEcrL5FxF0Wu+HrMy26w= -github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0 h1:MalBpLjhK/cS9ndCoSAg2C7aBzVojAqFVfzTKmuy0ho= -github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0/go.mod h1:z6+aAHB7dBkA+LyinEX+48/ImRJ3jag0Hg0c7wkhEvE= +github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0 h1:fYG7YB9ooFzVM7vKxXDs3QanNdj57yAMEdPZadeC64Q= +github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0/go.mod h1:z6+aAHB7dBkA+LyinEX+48/ImRJ3jag0Hg0c7wkhEvE= github.com/pingcap/log v0.0.0-20210625125904-98ed8e2eb1c7/go.mod h1:8AanEdAHATuRurdGxZXBz0At+9avep+ub7U1AGYLIMM= github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3 h1:HR/ylkkLmGdSSDaD8IDP+SZrdhV1Kibl9KrHxJ9eciw= github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3/go.mod h1:DWQW5jICDR7UJh4HtxXSM20Churx4CQL0fwL/SoOSA4= diff --git a/tests/integrations/mcs/resourcemanager/api_test.go b/tests/integrations/mcs/resourcemanager/api_test.go index d3744820dc7..48c051f7dba 100644 --- a/tests/integrations/mcs/resourcemanager/api_test.go +++ b/tests/integrations/mcs/resourcemanager/api_test.go @@ -124,9 +124,8 @@ func (suite *resourceManagerAPITestSuite) TestResourceGroupAPI() { }, ) re.NoError(err) - keyspaceID := &rmpb.KeyspaceIDValue{ - Value: meta.GetId(), - } + keyspaceID := &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: meta.GetId()}} + // Add a resource group. groupToAdd := &rmpb.ResourceGroup{ Name: "test_group", @@ -254,9 +253,7 @@ func (suite *resourceManagerAPITestSuite) TestResourceGroupAPIInit() { }, }, }, - KeyspaceId: &rmpb.KeyspaceIDValue{ - Value: keyspaceID, - }, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: keyspaceID}}, } suite.mustUpdateResourceGroup(re, groupToUpdate) }, diff --git a/tests/integrations/mcs/resourcemanager/redirector_test.go b/tests/integrations/mcs/resourcemanager/redirector_test.go index 09f4f046b6e..2c8c16d052a 100644 --- a/tests/integrations/mcs/resourcemanager/redirector_test.go +++ b/tests/integrations/mcs/resourcemanager/redirector_test.go @@ -196,9 +196,7 @@ func (suite *resourceManagerRedirectorTestSuite) TestGRPCRedirectsResourceGroupR rmClient := rmpb.NewResourceManagerClient(rmConn) getReq := &rmpb.GetResourceGroupRequest{ ResourceGroupName: groupName, - KeyspaceId: &rmpb.KeyspaceIDValue{ - Value: suite.keyspaceID, - }, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, } pdResp, err := pdClient.GetResourceGroup(ctx, getReq) re.NoError(err) @@ -228,7 +226,7 @@ func (suite *resourceManagerRedirectorTestSuite) TestGRPCRedirectsResourceGroupR }, }, }, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: suite.keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, } _, err = rmClient.AddResourceGroup(ctx, &rmpb.PutResourceGroupRequest{Group: addGroup}) assertMetadataWriteRejected(err) @@ -240,9 +238,7 @@ func (suite *resourceManagerRedirectorTestSuite) TestGRPCRedirectsResourceGroupR addGetReq := &rmpb.GetResourceGroupRequest{ ResourceGroupName: addGroupName, - KeyspaceId: &rmpb.KeyspaceIDValue{ - Value: suite.keyspaceID, - }, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, } pdAddGetResp, err := pdClient.GetResourceGroup(ctx, addGetReq) re.NoError(err) @@ -287,17 +283,13 @@ func (suite *resourceManagerRedirectorTestSuite) TestGRPCRedirectsResourceGroupR _, err = rmClient.DeleteResourceGroup(ctx, &rmpb.DeleteResourceGroupRequest{ ResourceGroupName: addGroupName, - KeyspaceId: &rmpb.KeyspaceIDValue{ - Value: suite.keyspaceID, - }, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, }) assertMetadataWriteRejected(err) deleteResp, err := pdClient.DeleteResourceGroup(ctx, &rmpb.DeleteResourceGroupRequest{ ResourceGroupName: addGroupName, - KeyspaceId: &rmpb.KeyspaceIDValue{ - Value: suite.keyspaceID, - }, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, }) re.NoError(err) re.Nil(deleteResp.GetError()) @@ -337,7 +329,7 @@ func (suite *resourceManagerRedirectorTestSuite) TestGRPCMetadataWritesForwardFr }, }, }, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: suite.keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, } addResp, err := leaderClient.AddResourceGroup(ctx, &rmpb.PutResourceGroupRequest{Group: group}) @@ -353,7 +345,7 @@ func (suite *resourceManagerRedirectorTestSuite) TestGRPCMetadataWritesForwardFr getReq := &rmpb.GetResourceGroupRequest{ ResourceGroupName: groupName, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: suite.keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, } modifiedResp, err := leaderClient.GetResourceGroup(ctx, getReq) re.NoError(err) @@ -364,7 +356,7 @@ func (suite *resourceManagerRedirectorTestSuite) TestGRPCMetadataWritesForwardFr deleteResp, err := followerClient.DeleteResourceGroup(ctx, &rmpb.DeleteResourceGroupRequest{ ResourceGroupName: groupName, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: suite.keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, }) re.NoError(err) re.Equal("Success!", deleteResp.GetBody()) @@ -386,7 +378,7 @@ func (suite *resourceManagerRedirectorTestSuite) createResourceGroupViaPD(name s Settings: &rmpb.TokenLimitSettings{FillRate: fillRate, BurstLimit: 200}, }, }, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: suite.keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, } payload, err := json.Marshal(group) re.NoError(err) diff --git a/tests/integrations/mcs/resourcemanager/resource_manager_test.go b/tests/integrations/mcs/resourcemanager/resource_manager_test.go index 4c8db67d167..84c3e1453cc 100644 --- a/tests/integrations/mcs/resourcemanager/resource_manager_test.go +++ b/tests/integrations/mcs/resourcemanager/resource_manager_test.go @@ -2113,8 +2113,8 @@ func (suite *resourceManagerClientTestSuite) TestResourceGroupCURDWithKeyspace() // Add keyspace meta. keyspace := &keyspacepb.KeyspaceMeta{ - Id: keyspaceID, - Name: "keyspace_test", + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: keyspaceID}, + Name: "keyspace_test", } storage := suite.cluster.GetLeaderServer().GetServer().GetStorage() err := storage.RunInTxn(suite.ctx, func(txn kv.Txn) error { @@ -2156,7 +2156,7 @@ func (suite *resourceManagerClientTestSuite) TestResourceGroupCURDWithKeyspace() re.Len(rgs, 2) // Including the default resource group. for _, r := range rgs { re.NotNil(r.KeyspaceId) - re.Equal(r.KeyspaceId.Value, keyspaceID) + re.Equal(r.KeyspaceId.GetValue(), keyspaceID) switch r.Name { case server.DefaultResourceGroupName: case group.Name: @@ -2205,7 +2205,7 @@ func (suite *resourceManagerClientTestSuite) TestResourceGroupCURDWithKeyspace() re.NotEqual(rg.RUStats, testConsumption) // Test AcquireTokenBuckets with keyspace id - req.Requests[0].KeyspaceId = &rmpb.KeyspaceIDValue{Value: keyspaceID} + req.Requests[0].KeyspaceId = &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: keyspaceID}} _, err = clientKeyspace.AcquireTokenBuckets(suite.ctx, req) re.NoError(err) time.Sleep(10 * time.Millisecond) @@ -2251,7 +2251,10 @@ func (suite *resourceManagerClientTestSuite) TestAcquireTokenBucketsWithMultiKey client := suite.setupKeyspaceClient(re, keyspaceID) clients[i] = client // Create and save keyspace metadata - keyspaceMeta := &keyspacepb.KeyspaceMeta{Id: keyspaceID, Name: keyspaceName} + keyspaceMeta := &keyspacepb.KeyspaceMeta{ + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: keyspaceID}, + Name: keyspaceName, + } err := storage.RunInTxn(ctx, func(txn kv.Txn) error { return storage.SaveKeyspaceMeta(txn, keyspaceMeta) }) @@ -2261,7 +2264,7 @@ func (suite *resourceManagerClientTestSuite) TestAcquireTokenBucketsWithMultiKey Name: groupName, Mode: rmpb.GroupMode_RUMode, RUSettings: &rmpb.GroupRequestUnitSettings{RU: &rmpb.TokenBucket{Settings: &rmpb.TokenLimitSettings{FillRate: 10000}, Tokens: 100000}}, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: keyspaceID}}, } _, err = clients[i].AddResourceGroup(ctx, groups[i]) re.NoError(err) @@ -2456,11 +2459,17 @@ func (suite *resourceManagerClientTestSuite) TestCannotModifyKeyspaceOfResourceG keyspaceA := uint32(10) keyspaceB := uint32(11) err := storage.RunInTxn(ctx, func(txn kv.Txn) error { - return storage.SaveKeyspaceMeta(txn, &keyspacepb.KeyspaceMeta{Id: keyspaceA, Name: "ks_A"}) + return storage.SaveKeyspaceMeta(txn, &keyspacepb.KeyspaceMeta{ + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: keyspaceA}, + Name: "ks_A", + }) }) re.NoError(err) err = storage.RunInTxn(ctx, func(txn kv.Txn) error { - return storage.SaveKeyspaceMeta(txn, &keyspacepb.KeyspaceMeta{Id: keyspaceB, Name: "ks_B"}) + return storage.SaveKeyspaceMeta(txn, &keyspacepb.KeyspaceMeta{ + Keyspace: &keyspacepb.KeyspaceMeta_Id{Id: keyspaceB}, + Name: "ks_B", + }) }) re.NoError(err) @@ -2481,14 +2490,14 @@ func (suite *resourceManagerClientTestSuite) TestCannotModifyKeyspaceOfResourceG re.NoError(err) re.Equal(groupName, g.Name) re.NotNil(g.KeyspaceId) - re.Equal(keyspaceA, g.KeyspaceId.Value) + re.Equal(keyspaceA, g.KeyspaceId.GetValue()) // Try to modify the group with a different keyspace ID using Client A modifiedGroup := &rmpb.ResourceGroup{ Name: groupName, Mode: rmpb.GroupMode_RUMode, Priority: 5, - KeyspaceId: &rmpb.KeyspaceIDValue{Value: keyspaceB}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: keyspaceB}}, } // It should be failed because the keyspace ID does not match diff --git a/tests/integrations/mcs/resourcemanager/service_limit_test.go b/tests/integrations/mcs/resourcemanager/service_limit_test.go index 0db14136e34..22703f33a34 100644 --- a/tests/integrations/mcs/resourcemanager/service_limit_test.go +++ b/tests/integrations/mcs/resourcemanager/service_limit_test.go @@ -114,9 +114,7 @@ func (suite *serviceLimitTestSuite) TestKeyspaceServiceLimit() { ConsumptionSinceLastRequest: &rmpb.Consumption{ RRU: requestRU, }, - KeyspaceId: &rmpb.KeyspaceIDValue{ - Value: suite.keyspaceID, - }, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, }, }, TargetRequestPeriodMs: 1000, diff --git a/tests/integrations/mcs/resourcemanager/watcher_matrix_test.go b/tests/integrations/mcs/resourcemanager/watcher_matrix_test.go index 00d5b24aff4..d25afbf0b7b 100644 --- a/tests/integrations/mcs/resourcemanager/watcher_matrix_test.go +++ b/tests/integrations/mcs/resourcemanager/watcher_matrix_test.go @@ -106,7 +106,7 @@ func (suite *resourceManagerWatcherMatrixTestSuite) TestWatcherKeepsLegacyKeyspa legacyReq := &rmpb.GetResourceGroupRequest{ResourceGroupName: legacyGroup.GetName()} keyspaceReq := &rmpb.GetResourceGroupRequest{ ResourceGroupName: keyspaceGroup.GetName(), - KeyspaceId: &rmpb.KeyspaceIDValue{Value: suite.keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, } suite.waitForGroup(re, rmClient, legacyReq, 1, 100) suite.waitForGroup(re, rmClient, keyspaceReq, 9, 900) @@ -135,7 +135,7 @@ func (suite *resourceManagerWatcherMatrixTestSuite) TestWatcherBootstrapsAfterRM defer initialConn.Close() req := &rmpb.GetResourceGroupRequest{ ResourceGroupName: group.GetName(), - KeyspaceId: &rmpb.KeyspaceIDValue{Value: suite.keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, } suite.waitForGroup(re, initialRMClient, req, 7, 700) @@ -168,7 +168,7 @@ func (suite *resourceManagerWatcherMatrixTestSuite) TestWatcherRecoversAfterComp req := &rmpb.GetResourceGroupRequest{ ResourceGroupName: group.GetName(), - KeyspaceId: &rmpb.KeyspaceIDValue{Value: suite.keyspaceID}, + KeyspaceId: &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: suite.keyspaceID}}, } suite.waitForGroup(re, rmClient, req, 5, 500) @@ -209,7 +209,7 @@ func newWatcherMatrixResourceGroup(name string, priority uint32, fillRate uint64 }, } if keyspaceID != nil { - group.KeyspaceId = &rmpb.KeyspaceIDValue{Value: *keyspaceID} + group.KeyspaceId = &rmpb.KeyspaceIDValue{Keyspace: &rmpb.KeyspaceIDValue_Value{Value: *keyspaceID}} } return group } diff --git a/tests/integrations/mcs/tso/keyspace_group_manager_test.go b/tests/integrations/mcs/tso/keyspace_group_manager_test.go index 947eae22620..823a25fe36a 100644 --- a/tests/integrations/mcs/tso/keyspace_group_manager_test.go +++ b/tests/integrations/mcs/tso/keyspace_group_manager_test.go @@ -163,10 +163,10 @@ func (suite *tsoKeyspaceGroupManagerTestSuite) TestMultiNodes() { req := tsopb.FindGroupByKeyspaceIDRequest{ Header: &tsopb.RequestHeader{ ClusterId: clusterID, - KeyspaceId: keyspaceID, + Keyspace: &tsopb.RequestHeader_KeyspaceId{KeyspaceId: keyspaceID}, KeyspaceGroupId: groupID, }, - KeyspaceId: keyspaceID, + Keyspace: &tsopb.FindGroupByKeyspaceIDRequest_KeyspaceId{KeyspaceId: keyspaceID}, ModRevision: 0, } for i, server := range serverList { @@ -250,10 +250,10 @@ func (suite *tsoKeyspaceGroupManagerTestSuite) TestWatchFailed() { req := tsopb.FindGroupByKeyspaceIDRequest{ Header: &tsopb.RequestHeader{ ClusterId: clusterID, - KeyspaceId: keyspaceID, + Keyspace: &tsopb.RequestHeader_KeyspaceId{KeyspaceId: keyspaceID}, KeyspaceGroupId: groupID, }, - KeyspaceId: keyspaceID, + Keyspace: &tsopb.FindGroupByKeyspaceIDRequest_KeyspaceId{KeyspaceId: keyspaceID}, ModRevision: requestModRevision, } return tsopb.NewTSOClient(conn).FindGroupByKeyspaceID(ctx, &req) diff --git a/tests/server/apiv2/handlers/testutil.go b/tests/server/apiv2/handlers/testutil.go index 4c38d197bf1..462b98dd99e 100644 --- a/tests/server/apiv2/handlers/testutil.go +++ b/tests/server/apiv2/handlers/testutil.go @@ -123,7 +123,7 @@ func checkCreateRequest(re *require.Assertions, request *handlers.CreateKeyspace // checkCreateByIDRequest verifies a keyspace meta matches a create request. func checkCreateByIDRequest(re *require.Assertions, request *handlers.CreateKeyspaceByIDParams, meta *keyspacepb.KeyspaceMeta) { - re.Equal(*request.ID, meta.Id) + re.Equal(*request.ID, meta.GetId()) re.Equal(keyspacepb.KeyspaceState_ENABLED, meta.State) checkConfig(re, request.Config, keyspace.IgnoreMetaServiceGroup(meta.Config)) } diff --git a/tests/server/gc/gc_test.go b/tests/server/gc/gc_test.go index 5d8037fadff..6ea3c176c5c 100644 --- a/tests/server/gc/gc_test.go +++ b/tests/server/gc/gc_test.go @@ -49,6 +49,12 @@ const ( skipCampaignLeaderCheckFailpoint = "github.com/tikv/pd/pkg/member/skipCampaignLeaderCheck" ) +func makeKeyspaceScope(keyspaceID uint32) *pdpb.KeyspaceScope { + return &pdpb.KeyspaceScope{ + Keyspace: &pdpb.KeyspaceScope_KeyspaceId{KeyspaceId: keyspaceID}, + } +} + func newGCStateLeaderTransitionCluster(t *testing.T) (*tests.TestCluster, *pdpb.GetGCStateRequest, func()) { re := require.New(t) ctx, cancel := context.WithCancel(context.Background()) @@ -69,7 +75,7 @@ func newGCStateLeaderTransitionCluster(t *testing.T) (*tests.TestCluster, *pdpb. req := &pdpb.GetGCStateRequest{ Header: testutil.NewRequestHeader(leaderServer.GetClusterID()), - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: constant.NullKeyspaceID}, + KeyspaceScope: makeKeyspaceScope(constant.NullKeyspaceID), } cleanup := func() { re.NoError(failpoint.Disable(skipCampaignLeaderCheckFailpoint)) @@ -165,7 +171,7 @@ func TestGCOperations(t *testing.T) { // Successful advancement of txn safe point req := &pdpb.AdvanceTxnSafePointRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), Target: 10, } resp, err := grpcPDClient.AdvanceTxnSafePoint(ctx, req) @@ -189,7 +195,7 @@ func TestGCOperations(t *testing.T) { // Successful advancement of GC safe point req := &pdpb.AdvanceGCSafePointRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), Target: 8, } resp, err := grpcPDClient.AdvanceGCSafePoint(ctx, req) @@ -212,7 +218,7 @@ func TestGCOperations(t *testing.T) { // Successfully sets a GC barrier req := &pdpb.SetGCBarrierRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), BarrierId: "b1", BarrierTs: 15, TtlSeconds: 3600, @@ -229,7 +235,7 @@ func TestGCOperations(t *testing.T) { // Successfully sets a GC barrier with infinite ttl. req = &pdpb.SetGCBarrierRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), BarrierId: "b2", BarrierTs: 14, TtlSeconds: math.MaxInt64, @@ -245,7 +251,7 @@ func TestGCOperations(t *testing.T) { // Failed to set a GC barrier (below txn safe point) req = &pdpb.SetGCBarrierRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), BarrierId: "b3", BarrierTs: 9, TtlSeconds: 3600, @@ -261,7 +267,7 @@ func TestGCOperations(t *testing.T) { // Delete a GC barrier req := &pdpb.DeleteGCBarrierRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), BarrierId: "b2", } resp, err := grpcPDClient.DeleteGCBarrier(ctx, req) @@ -277,7 +283,7 @@ func TestGCOperations(t *testing.T) { // Advance txn safe point reports the reason of being blocked req := &pdpb.AdvanceTxnSafePointRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), Target: 20, } resp, err := grpcPDClient.AdvanceTxnSafePoint(ctx, req) @@ -293,13 +299,13 @@ func TestGCOperations(t *testing.T) { // Get GC states req := &pdpb.GetGCStateRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), } resp, err := grpcPDClient.GetGCState(ctx, req) re.NoError(err) re.NotNil(resp.Header) re.Nil(resp.Header.Error) - re.Equal(keyspaceID, resp.GetGcState().KeyspaceScope.KeyspaceId) + re.Equal(keyspaceID, resp.GetGcState().GetKeyspaceScope().GetKeyspaceId()) re.Equal(keyspaceID != constant.NullKeyspaceID, resp.GetGcState().GetIsKeyspaceLevelGc()) re.Equal(uint64(15), resp.GetGcState().GetTxnSafePoint()) re.Equal(uint64(8), resp.GetGcState().GetGcSafePoint()) @@ -319,7 +325,7 @@ func TestGCOperations(t *testing.T) { } testInKeyspace(constant.NullKeyspaceID) - testInKeyspace(ks1.Id) + testInKeyspace(ks1.GetId()) req := &pdpb.GetAllKeyspacesGCStatesRequest{ Header: header, @@ -332,16 +338,16 @@ func TestGCOperations(t *testing.T) { re.Len(resp.GetGcStates(), 3) receivedKeyspaceIDs := make([]uint32, 0, 3) for _, gcState := range resp.GetGcStates() { - receivedKeyspaceIDs = append(receivedKeyspaceIDs, gcState.KeyspaceScope.KeyspaceId) + receivedKeyspaceIDs = append(receivedKeyspaceIDs, gcState.GetKeyspaceScope().GetKeyspaceId()) } slices.Sort(receivedKeyspaceIDs) // Expected keyspace IDs differ between NextGen and Classic var expectedKeyspaceIDs []uint32 if kerneltype.IsNextGen() { - expectedKeyspaceIDs = []uint32{ks1.Id, constant.SystemKeyspaceID, constant.NullKeyspaceID} + expectedKeyspaceIDs = []uint32{ks1.GetId(), constant.SystemKeyspaceID, constant.NullKeyspaceID} } else { - expectedKeyspaceIDs = []uint32{0, ks1.Id, constant.NullKeyspaceID} + expectedKeyspaceIDs = []uint32{0, ks1.GetId(), constant.NullKeyspaceID} } re.Equal(expectedKeyspaceIDs, receivedKeyspaceIDs) @@ -352,10 +358,10 @@ func TestGCOperations(t *testing.T) { if kerneltype.IsNextGen() { defaultKeyspaceID = constant.SystemKeyspaceID } - if gcState.KeyspaceScope.KeyspaceId == defaultKeyspaceID { + if gcState.GetKeyspaceScope().GetKeyspaceId() == defaultKeyspaceID { continue } - re.Equal(gcState.KeyspaceScope.KeyspaceId != constant.NullKeyspaceID, gcState.GetIsKeyspaceLevelGc()) + re.Equal(gcState.GetKeyspaceScope().GetKeyspaceId() != constant.NullKeyspaceID, gcState.GetIsKeyspaceLevelGc()) re.Equal(uint64(15), gcState.GetTxnSafePoint()) re.Equal(uint64(8), gcState.GetGcSafePoint()) re.Len(gcState.GetGcBarriers(), 1) @@ -375,18 +381,18 @@ func TestGCOperations(t *testing.T) { } // Global GC Barrier API - for _, keyspaceID := range []uint32{constant.NullKeyspaceID, ks1.Id} { + for _, keyspaceID := range []uint32{constant.NullKeyspaceID, ks1.GetId()} { // Cleanup before test req1 := &pdpb.GetGCStateRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), } resp1, err := grpcPDClient.GetGCState(ctx, req1) re.NoError(err) for _, state := range resp1.GcState.GcBarriers { req := &pdpb.DeleteGCBarrierRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), BarrierId: state.BarrierId, } _, err := grpcPDClient.DeleteGCBarrier(ctx, req) @@ -456,11 +462,11 @@ func TestGCOperations(t *testing.T) { re.Contains(resp.Header.Error.Message, "ErrGlobalGCBarrierTSBehindTxnSafePoint") } - for _, keyspaceID := range []uint32{constant.NullKeyspaceID, ks1.Id} { + for _, keyspaceID := range []uint32{constant.NullKeyspaceID, ks1.GetId()} { // Advance txn safe point reports the reason of being blocked req := &pdpb.AdvanceTxnSafePointRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), Target: 30, } resp, err := grpcPDClient.AdvanceTxnSafePoint(ctx, req) @@ -489,11 +495,11 @@ func TestGCOperations(t *testing.T) { re.LessOrEqual(resp.GetDeletedBarrierInfo().GetTtlSeconds(), int64(3600)) } - for _, keyspaceID := range []uint32{constant.NullKeyspaceID, ks1.Id} { + for _, keyspaceID := range []uint32{constant.NullKeyspaceID, ks1.GetId()} { // Advance txn safe point reports the reason of being blocked req := &pdpb.AdvanceTxnSafePointRequest{ Header: header, - KeyspaceScope: &pdpb.KeyspaceScope{KeyspaceId: keyspaceID}, + KeyspaceScope: makeKeyspaceScope(keyspaceID), Target: 30, } resp, err := grpcPDClient.AdvanceTxnSafePoint(ctx, req) diff --git a/tests/server/keyspace/keyspace_service_test.go b/tests/server/keyspace/keyspace_service_test.go index 8b81dec3618..48a144631e7 100644 --- a/tests/server/keyspace/keyspace_service_test.go +++ b/tests/server/keyspace/keyspace_service_test.go @@ -39,24 +39,15 @@ func (suite *keyspaceTestSuite) TestLoadKeyspaceByIDGRPC() { }) re.NoError(err) - _, err = service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{ - Header: testutil.NewRequestHeader(suite.server.GetClusterID() + 1), - Id: created.GetId(), - }) + _, err = service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{Header: testutil.NewRequestHeader(suite.server.GetClusterID() + 1), Keyspace: &keyspacepb.LoadKeyspaceByIDRequest_Id{Id: created.GetId()}}) re.Error(err) - resp, err := service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{ - Header: testutil.NewRequestHeader(suite.server.GetClusterID()), - Id: created.GetId() + 1000, - }) + resp, err := service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{Header: testutil.NewRequestHeader(suite.server.GetClusterID()), Keyspace: &keyspacepb.LoadKeyspaceByIDRequest_Id{Id: created.GetId() + 1000}}) re.NoError(err) re.Equal(pdpb.ErrorType_ENTRY_NOT_FOUND, resp.GetHeader().GetError().GetType()) re.Nil(resp.GetKeyspace()) - resp, err = service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{ - Header: testutil.NewRequestHeader(suite.server.GetClusterID()), - Id: created.GetId(), - }) + resp, err = service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{Header: testutil.NewRequestHeader(suite.server.GetClusterID()), Keyspace: &keyspacepb.LoadKeyspaceByIDRequest_Id{Id: created.GetId()}}) re.NoError(err) re.Equal(pdpb.ErrorType_ENTRY_NOT_FOUND, resp.GetHeader().GetError().GetType()) re.Nil(resp.GetKeyspace()) @@ -67,10 +58,7 @@ func (suite *keyspaceTestSuite) TestLoadKeyspaceByIDGRPC() { pdtests.MustPutRegion(re, suite.cluster, regionID+2, 1, regionBound.RawRightBound, regionBound.TxnLeftBound) pdtests.MustPutRegion(re, suite.cluster, regionID+3, 1, regionBound.TxnLeftBound, regionBound.TxnRightBound) pdtests.MustPutRegion(re, suite.cluster, regionID+4, 1, regionBound.TxnRightBound, []byte{}) - resp, err = service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{ - Header: testutil.NewRequestHeader(suite.server.GetClusterID()), - Id: created.GetId(), - }) + resp, err = service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{Header: testutil.NewRequestHeader(suite.server.GetClusterID()), Keyspace: &keyspacepb.LoadKeyspaceByIDRequest_Id{Id: created.GetId()}}) re.NoError(err) re.Nil(resp.GetHeader().GetError()) re.Equal(created, resp.GetKeyspace()) @@ -81,10 +69,7 @@ func (suite *keyspaceTestSuite) TestLoadKeyspaceByIDGRPC() { }) re.NoError(failpoint.Disable("github.com/tikv/pd/pkg/keyspace/skipSplitRegion")) re.NoError(err) - resp, err = service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{ - Header: testutil.NewRequestHeader(suite.server.GetClusterID()), - Id: skipRegionCheckKeyspace.GetId(), - }) + resp, err = service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{Header: testutil.NewRequestHeader(suite.server.GetClusterID()), Keyspace: &keyspacepb.LoadKeyspaceByIDRequest_Id{Id: skipRegionCheckKeyspace.GetId()}}) re.NoError(err) re.Equal(pdpb.ErrorType_ENTRY_NOT_FOUND, resp.GetHeader().GetError().GetType()) re.Nil(resp.GetKeyspace()) @@ -93,10 +78,7 @@ func (suite *keyspaceTestSuite) TestLoadKeyspaceByIDGRPC() { defer func() { re.NoError(failpoint.Disable("github.com/tikv/pd/server/skipKeyspaceRegionCheck")) }() - resp, err = service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{ - Header: testutil.NewRequestHeader(suite.server.GetClusterID()), - Id: skipRegionCheckKeyspace.GetId(), - }) + resp, err = service.LoadKeyspaceByID(ctx, &keyspacepb.LoadKeyspaceByIDRequest{Header: testutil.NewRequestHeader(suite.server.GetClusterID()), Keyspace: &keyspacepb.LoadKeyspaceByIDRequest_Id{Id: skipRegionCheckKeyspace.GetId()}}) re.NoError(err) re.Nil(resp.GetHeader().GetError()) re.Equal(skipRegionCheckKeyspace, resp.GetKeyspace()) diff --git a/tools/go.mod b/tools/go.mod index cf71576f004..4ae29a3cdc8 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -23,7 +23,7 @@ require ( github.com/mattn/go-shellwords v1.0.12 github.com/pingcap/errors v0.11.5-0.20211224045212-9687c2b0f87c github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 - github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0 + github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0 github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3 github.com/pmezard/go-difflib v1.0.0 github.com/prometheus/client_golang v1.20.5 diff --git a/tools/go.sum b/tools/go.sum index ce25ccdd818..020ec7c5bb8 100644 --- a/tools/go.sum +++ b/tools/go.sum @@ -478,8 +478,8 @@ github.com/pingcap/errors v0.11.5-0.20211224045212-9687c2b0f87c/go.mod h1:X2r9ue github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86 h1:tdMsjOqUR7YXHoBitzdebTvOjs/swniBTOLy5XiMtuE= github.com/pingcap/failpoint v0.0.0-20240528011301-b51a646c7c86/go.mod h1:exzhVYca3WRtd6gclGNErRWb1qEgff3LYta0LvRmON4= github.com/pingcap/kvproto v0.0.0-20191211054548-3c6b38ea5107/go.mod h1:WWLmULLO7l8IOcQG+t+ItJ3fEcrL5FxF0Wu+HrMy26w= -github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0 h1:MalBpLjhK/cS9ndCoSAg2C7aBzVojAqFVfzTKmuy0ho= -github.com/pingcap/kvproto v0.0.0-20260622063236-b41e86365ce0/go.mod h1:z6+aAHB7dBkA+LyinEX+48/ImRJ3jag0Hg0c7wkhEvE= +github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0 h1:fYG7YB9ooFzVM7vKxXDs3QanNdj57yAMEdPZadeC64Q= +github.com/pingcap/kvproto v0.0.0-20260722060835-57fb9c0799c0/go.mod h1:z6+aAHB7dBkA+LyinEX+48/ImRJ3jag0Hg0c7wkhEvE= github.com/pingcap/log v0.0.0-20210625125904-98ed8e2eb1c7/go.mod h1:8AanEdAHATuRurdGxZXBz0At+9avep+ub7U1AGYLIMM= github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3 h1:HR/ylkkLmGdSSDaD8IDP+SZrdhV1Kibl9KrHxJ9eciw= github.com/pingcap/log v1.1.1-0.20221110025148-ca232912c9f3/go.mod h1:DWQW5jICDR7UJh4HtxXSM20Churx4CQL0fwL/SoOSA4= diff --git a/tools/pd-ctl/pdctl/command/keyspace_command.go b/tools/pd-ctl/pdctl/command/keyspace_command.go index dd08c9f9604..5037d96a72e 100644 --- a/tools/pd-ctl/pdctl/command/keyspace_command.go +++ b/tools/pd-ctl/pdctl/command/keyspace_command.go @@ -471,7 +471,7 @@ func showKeyspaceRangeByNameCommandFunc(cmd *cobra.Command, args []string) { // Generate key ranges based on raw flag var ranges map[string]string - bound := keyspace.MakeRegionBound(keyspaceMeta.Id) + bound := keyspace.MakeRegionBound(keyspaceMeta.GetId()) if raw { ranges = map[string]string{ "start_key": hex.EncodeToString(bound.RawLeftBound),