From 5f67e65a36144c0d8b9e58bb4f38e8e257dcbcf0 Mon Sep 17 00:00:00 2001 From: Ping Yu Date: Tue, 4 Aug 2026 01:08:10 +0800 Subject: [PATCH 1/4] metaservice: support CES keyspace-level GC Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus Signed-off-by: Ping Yu --- go.mod | 1 + go.sum | 4 ++-- pkg/metaservice/metamanager.go | 3 ++- pkg/metaservice/metamanager_test.go | 12 ++++++++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 5cc0f2dfdee20..478e034c27741 100644 --- a/go.mod +++ b/go.mod @@ -364,6 +364,7 @@ replace ( cloud.google.com/go/storage => cloud.google.com/go/storage v1.39.1 github.com/go-ldap/ldap/v3 => github.com/YangKeao/ldap/v3 v3.4.5-0.20230421065457-369a3bab1117 github.com/pingcap/tidb/pkg/parser => ./pkg/parser + github.com/tikv/client-go/v2 => github.com/pingyu/client-go/v2 v2.0.1-0.20260803170505-11cb9ad8088b // TODO: `sourcegraph.com/sourcegraph/appdash` has been archived, and the original host has been removed. // Please remove these dependencies. sourcegraph.com/sourcegraph/appdash => github.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 diff --git a/go.sum b/go.sum index c542bd693c8f7..cca8ce115aade 100644 --- a/go.sum +++ b/go.sum @@ -2185,6 +2185,8 @@ github.com/pingcap/sysutil v1.0.1-0.20240311050922-ae81ee01f3a5 h1:T4pXRhBflzDeA github.com/pingcap/sysutil v1.0.1-0.20240311050922-ae81ee01f3a5/go.mod h1:rlimy0GcTvjiJqvD5mXTRr8O2eNZPBrcUgiWVYp9530= github.com/pingcap/tipb v0.0.0-20260623093813-5f9928e91afe h1:9I5GHZesmR+hv68t00BO7tayKMFfywi+hlpn119GscM= github.com/pingcap/tipb v0.0.0-20260623093813-5f9928e91afe/go.mod h1:RM8iRcMalzOthG2XJxnNBniM4xFGb/lDwHUwqkaVzt4= +github.com/pingyu/client-go/v2 v2.0.1-0.20260803170505-11cb9ad8088b h1:uBHv7Y7ZUwrCONnwvo/+zwmmIezHd7Wnibps4Lbhykk= +github.com/pingyu/client-go/v2 v2.0.1-0.20260803170505-11cb9ad8088b/go.mod h1:kNePJmoqcbd+eTTzZmzZy40rX8LjI6qFYCzdV66cu18= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= @@ -2357,8 +2359,6 @@ github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= -github.com/tikv/client-go/v2 v2.0.8-0.20260803074519-341d4692ec57 h1:20uV3D/EvkPVkDvSGWcOg2+jZOKaCYpIoIkwSb7amJM= -github.com/tikv/client-go/v2 v2.0.8-0.20260803074519-341d4692ec57/go.mod h1:kNePJmoqcbd+eTTzZmzZy40rX8LjI6qFYCzdV66cu18= github.com/tikv/pd/client v0.0.0-20260708075407-4e05b9d2c2d3 h1:OoBvgoeWmdNEXtS+eOlhysz/OvhA4GS0OdPVhTXteGA= github.com/tikv/pd/client v0.0.0-20260708075407-4e05b9d2c2d3/go.mod h1:3/Bu91CJONgkDA+Y0v/cnbROSJnu5tQ09vv7JGybUBA= github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67 h1:9LPGD+jzxMlnk5r6+hJnar67cgpDIz/iyD+rfl5r2Vk= diff --git a/pkg/metaservice/metamanager.go b/pkg/metaservice/metamanager.go index 6b217af52f073..fc52e26e376ef 100644 --- a/pkg/metaservice/metamanager.go +++ b/pkg/metaservice/metamanager.go @@ -22,6 +22,7 @@ import ( "github.com/pingcap/errors" "github.com/pingcap/kvproto/pkg/keyspacepb" "github.com/pingcap/log" + "github.com/tikv/client-go/v2/tikv" pd "github.com/tikv/pd/client" "go.uber.org/zap" ) @@ -90,7 +91,7 @@ func GetGroup(keyspaceMeta *keyspacepb.KeyspaceMeta, pdAddrs []string) (*Group, if err := validateGroupID(groupID); err != nil { return nil, err } - if !pd.IsKeyspaceUsingKeyspaceLevelGC(keyspaceMeta) { + if !pd.IsKeyspaceUsingKeyspaceLevelGC(keyspaceMeta) && !tikv.IsCESKeyspaceLevelGC(keyspaceMeta) { return nil, errors.Annotatef( ErrKeyspaceLevelGCRequired, "keyspace %q configured meta service group %q", diff --git a/pkg/metaservice/metamanager_test.go b/pkg/metaservice/metamanager_test.go index 7cf4a6b209379..d5d2f8c677fd7 100644 --- a/pkg/metaservice/metamanager_test.go +++ b/pkg/metaservice/metamanager_test.go @@ -52,6 +52,18 @@ func TestGetGroup(t *testing.T) { require.ElementsMatch(t, expectedAddrs, keyspaceMetaServiceGroup.Addrs) + keyspaceMeta = &keyspacepb.KeyspaceMeta{ + Config: map[string]string{ + metaservice.GroupIDKey: "group1", + metaservice.GroupAddrsKey: expectedAddrsStr, + "safe_point_version": "v2", + }, + } + keyspaceMetaServiceGroup, err = metaservice.GetGroup(keyspaceMeta, pdAddrs) + require.NoError(t, err) + require.Equal(t, "group1", keyspaceMetaServiceGroup.GroupID) + require.ElementsMatch(t, expectedAddrs, keyspaceMetaServiceGroup.Addrs) + // Test case where the keyspace does not use keyspace-level GC. keyspaceMeta = &keyspacepb.KeyspaceMeta{ Name: "ks-unified-gc", From 11e33fad43be539e962afee440ca8b4b138cf405 Mon Sep 17 00:00:00 2001 From: Ping Yu Date: Tue, 4 Aug 2026 12:17:53 +0800 Subject: [PATCH 2/4] *: sync Bazel client-go replacement Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus Signed-off-by: Ping Yu --- DEPS.bzl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/DEPS.bzl b/DEPS.bzl index 888ce76da557e..6991deb592ea0 100644 --- a/DEPS.bzl +++ b/DEPS.bzl @@ -4492,8 +4492,9 @@ def go_deps(): build_tags = ["nextgen", "intest"], build_file_proto_mode = "disable_global", importpath = "github.com/tikv/client-go/v2", - sum = "h1:20uV3D/EvkPVkDvSGWcOg2+jZOKaCYpIoIkwSb7amJM=", - version = "v2.0.8-0.20260803074519-341d4692ec57", + replace = "github.com/pingyu/client-go/v2", + sum = "h1:uBHv7Y7ZUwrCONnwvo/+zwmmIezHd7Wnibps4Lbhykk=", + version = "v2.0.1-0.20260803170505-11cb9ad8088b", ) go_repository( name = "com_github_tikv_pd_client", From 5df31e32cdb0d210d0bb986cdeb8573fdd02173b Mon Sep 17 00:00:00 2001 From: Ping Yu Date: Wed, 5 Aug 2026 10:30:39 +0800 Subject: [PATCH 3/4] *: bump client-go for CSE naming Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus Signed-off-by: Ping Yu --- DEPS.bzl | 4 ++-- go.mod | 2 +- go.sum | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/DEPS.bzl b/DEPS.bzl index 6991deb592ea0..361dfe6a5a5b5 100644 --- a/DEPS.bzl +++ b/DEPS.bzl @@ -4493,8 +4493,8 @@ def go_deps(): build_file_proto_mode = "disable_global", importpath = "github.com/tikv/client-go/v2", replace = "github.com/pingyu/client-go/v2", - sum = "h1:uBHv7Y7ZUwrCONnwvo/+zwmmIezHd7Wnibps4Lbhykk=", - version = "v2.0.1-0.20260803170505-11cb9ad8088b", + sum = "h1:vtHSY/KOd16FFxT0L8SJOkj0L2M5lpEUOxw4YI+Q9vc=", + version = "v2.0.1-0.20260805022548-e8984187ef67", ) go_repository( name = "com_github_tikv_pd_client", diff --git a/go.mod b/go.mod index 478e034c27741..ef83586c5cf5d 100644 --- a/go.mod +++ b/go.mod @@ -364,7 +364,7 @@ replace ( cloud.google.com/go/storage => cloud.google.com/go/storage v1.39.1 github.com/go-ldap/ldap/v3 => github.com/YangKeao/ldap/v3 v3.4.5-0.20230421065457-369a3bab1117 github.com/pingcap/tidb/pkg/parser => ./pkg/parser - github.com/tikv/client-go/v2 => github.com/pingyu/client-go/v2 v2.0.1-0.20260803170505-11cb9ad8088b + github.com/tikv/client-go/v2 => github.com/pingyu/client-go/v2 v2.0.1-0.20260805022548-e8984187ef67 // TODO: `sourcegraph.com/sourcegraph/appdash` has been archived, and the original host has been removed. // Please remove these dependencies. sourcegraph.com/sourcegraph/appdash => github.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 diff --git a/go.sum b/go.sum index cca8ce115aade..1fd589f569182 100644 --- a/go.sum +++ b/go.sum @@ -2187,6 +2187,8 @@ github.com/pingcap/tipb v0.0.0-20260623093813-5f9928e91afe h1:9I5GHZesmR+hv68t00 github.com/pingcap/tipb v0.0.0-20260623093813-5f9928e91afe/go.mod h1:RM8iRcMalzOthG2XJxnNBniM4xFGb/lDwHUwqkaVzt4= github.com/pingyu/client-go/v2 v2.0.1-0.20260803170505-11cb9ad8088b h1:uBHv7Y7ZUwrCONnwvo/+zwmmIezHd7Wnibps4Lbhykk= github.com/pingyu/client-go/v2 v2.0.1-0.20260803170505-11cb9ad8088b/go.mod h1:kNePJmoqcbd+eTTzZmzZy40rX8LjI6qFYCzdV66cu18= +github.com/pingyu/client-go/v2 v2.0.1-0.20260805022548-e8984187ef67 h1:vtHSY/KOd16FFxT0L8SJOkj0L2M5lpEUOxw4YI+Q9vc= +github.com/pingyu/client-go/v2 v2.0.1-0.20260805022548-e8984187ef67/go.mod h1:kNePJmoqcbd+eTTzZmzZy40rX8LjI6qFYCzdV66cu18= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= From debbb81f8e59a12f8596d96776b3f00a71e808d5 Mon Sep 17 00:00:00 2001 From: Ping Yu Date: Wed, 5 Aug 2026 10:30:39 +0800 Subject: [PATCH 4/4] metaservice: use CSE keyspace-level GC helper Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus Signed-off-by: Ping Yu --- pkg/metaservice/metamanager.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/metaservice/metamanager.go b/pkg/metaservice/metamanager.go index fc52e26e376ef..7addc4bb3c12b 100644 --- a/pkg/metaservice/metamanager.go +++ b/pkg/metaservice/metamanager.go @@ -91,7 +91,7 @@ func GetGroup(keyspaceMeta *keyspacepb.KeyspaceMeta, pdAddrs []string) (*Group, if err := validateGroupID(groupID); err != nil { return nil, err } - if !pd.IsKeyspaceUsingKeyspaceLevelGC(keyspaceMeta) && !tikv.IsCESKeyspaceLevelGC(keyspaceMeta) { + if !pd.IsKeyspaceUsingKeyspaceLevelGC(keyspaceMeta) && !tikv.IsCSEKeyspaceLevelGC(keyspaceMeta) { return nil, errors.Annotatef( ErrKeyspaceLevelGCRequired, "keyspace %q configured meta service group %q",