Skip to content

Commit ca7abaa

Browse files
keypath: remove rootPath from storage and change all paths to absolute path (tikv#8919)
close tikv#8582 Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> Signed-off-by: okJiang <[email protected]>
1 parent 898e55e commit ca7abaa

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+686
-831
lines changed

client/servicediscovery/tso_service_discovery.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,10 @@ import (
4141
)
4242

4343
const (
44-
msServiceRootPath = "/ms"
45-
tsoServiceName = "tso"
4644
// tsoSvcDiscoveryFormat defines the key prefix for keyspace group primary election.
4745
// The entire key is in the format of "/ms/<cluster-id>/tso/<group-id>/primary".
4846
// The <group-id> is 5 digits integer with leading zeros.
49-
tsoSvcDiscoveryFormat = msServiceRootPath + "/%d/" + tsoServiceName + "/%05d/primary"
47+
tsoSvcDiscoveryFormat = "/ms/%d/tso/%05d/primary"
5048
// initRetryInterval is the rpc retry interval during the initialization phase.
5149
initRetryInterval = time.Second
5250
// tsoQueryRetryMaxTimes is the max retry times for querying TSO.

pkg/keyspace/tso_keyspace_group.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ func (m *GroupManager) allocNodesToAllKeyspaceGroups(ctx context.Context) {
219219
}
220220

221221
func (m *GroupManager) initTSONodesWatcher(client *clientv3.Client) {
222-
tsoServiceKey := keypath.TSOPath()
222+
tsoServiceKey := keypath.ServicePath(constant.TSOServiceName)
223223

224224
putFn := func(kv *mvccpb.KeyValue) error {
225225
s := &discovery.ServiceRegistryEntry{}

pkg/mcs/metastorage/server/manager.go

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,12 @@ import (
2121
"github.com/pingcap/log"
2222

2323
bs "github.com/tikv/pd/pkg/basicserver"
24-
"github.com/tikv/pd/pkg/storage/endpoint"
25-
"github.com/tikv/pd/pkg/storage/kv"
2624
)
2725

28-
// Manager is the manager of resource group.
26+
// Manager is the manager of meta storage.
2927
type Manager struct {
30-
srv bs.Server
31-
client *clientv3.Client
32-
storage *endpoint.StorageEndpoint
28+
srv bs.Server
29+
client *clientv3.Client
3330
}
3431

3532
// NewManager returns a new Manager.
@@ -38,10 +35,6 @@ func NewManager(srv bs.Server) *Manager {
3835
// The first initialization after the server is started.
3936
srv.AddStartCallback(func() {
4037
log.Info("meta storage starts to initialize", zap.String("name", srv.Name()))
41-
m.storage = endpoint.NewStorageEndpoint(
42-
kv.NewEtcdKVBase(srv.GetClient(), "meta_storage"),
43-
nil,
44-
)
4538
m.client = srv.GetClient()
4639
m.srv = srv
4740
})

pkg/mcs/resourcemanager/server/manager.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ func NewManager[T ConfigProvider](srv bs.Server) *Manager {
102102
srv.AddStartCallback(func() {
103103
log.Info("resource group manager starts to initialize", zap.String("name", srv.Name()))
104104
m.storage = endpoint.NewStorageEndpoint(
105-
kv.NewEtcdKVBase(srv.GetClient(), "resource_group"),
105+
kv.NewEtcdKVBase(srv.GetClient()),
106106
nil,
107107
)
108108
m.srv = srv

pkg/mcs/scheduling/server/config/watcher.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,10 +186,9 @@ func (cw *Watcher) initializeTTLConfigWatcher() error {
186186
}
187187

188188
func (cw *Watcher) initializeSchedulerConfigWatcher() error {
189-
prefixToTrim := cw.schedulerConfigPathPrefix + "/"
190189
putFn := func(kv *mvccpb.KeyValue) error {
191190
key := string(kv.Key)
192-
name := strings.TrimPrefix(key, prefixToTrim)
191+
name := strings.TrimPrefix(key, cw.schedulerConfigPathPrefix)
193192
log.Info("update scheduler config", zap.String("name", name),
194193
zap.String("value", string(kv.Value)))
195194
err := cw.storage.SaveSchedulerConfig(name, kv.Value)
@@ -210,7 +209,7 @@ func (cw *Watcher) initializeSchedulerConfigWatcher() error {
210209
key := string(kv.Key)
211210
log.Info("remove scheduler config", zap.String("key", key))
212211
return cw.storage.RemoveSchedulerConfig(
213-
strings.TrimPrefix(key, prefixToTrim),
212+
strings.TrimPrefix(key, cw.schedulerConfigPathPrefix),
214213
)
215214
}
216215
cw.schedulerConfigWatcher = etcdutil.NewLoopWatcher(

pkg/mcs/scheduling/server/rule/watcher.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ func (rw *Watcher) initializeRuleWatcher() error {
159159
key := string(kv.Key)
160160
if strings.HasPrefix(key, rw.rulesPathPrefix) {
161161
log.Info("delete placement rule", zap.String("key", key))
162-
ruleJSON, err := rw.ruleStorage.LoadRule(strings.TrimPrefix(key, rw.rulesPathPrefix+"/"))
162+
ruleJSON, err := rw.ruleStorage.LoadRule(strings.TrimPrefix(key, rw.rulesPathPrefix))
163163
if err != nil {
164164
return err
165165
}
@@ -174,7 +174,7 @@ func (rw *Watcher) initializeRuleWatcher() error {
174174
return err
175175
} else if strings.HasPrefix(key, rw.ruleGroupPathPrefix) {
176176
log.Info("delete placement rule group", zap.String("key", key))
177-
trimmedKey := strings.TrimPrefix(key, rw.ruleGroupPathPrefix+"/")
177+
trimmedKey := strings.TrimPrefix(key, rw.ruleGroupPathPrefix)
178178
// Try to add the rule group change to the patch.
179179
rw.patch.DeleteGroup(trimmedKey)
180180
// Update the suspect key ranges
@@ -211,7 +211,6 @@ func (rw *Watcher) initializeRuleWatcher() error {
211211
}
212212

213213
func (rw *Watcher) initializeRegionLabelWatcher() error {
214-
prefixToTrim := rw.regionLabelPathPrefix + "/"
215214
// TODO: use txn in region labeler.
216215
preEventsFn := func([]*clientv3.Event) error {
217216
// It will be locked until the postEventsFn is finished.
@@ -229,7 +228,7 @@ func (rw *Watcher) initializeRegionLabelWatcher() error {
229228
deleteFn := func(kv *mvccpb.KeyValue) error {
230229
key := string(kv.Key)
231230
log.Info("delete region label rule", zap.String("key", key))
232-
return rw.regionLabeler.DeleteLabelRuleLocked(strings.TrimPrefix(key, prefixToTrim))
231+
return rw.regionLabeler.DeleteLabelRuleLocked(strings.TrimPrefix(key, rw.regionLabelPathPrefix))
233232
}
234233
postEventsFn := func([]*clientv3.Event) error {
235234
defer rw.regionLabeler.Unlock()

pkg/mcs/scheduling/server/rule/watcher_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ func prepare(t require.TestingT) (context.Context, *clientv3.Client, func()) {
102102
}
103103
value, err := json.Marshal(rule)
104104
re.NoError(err)
105-
key := keypath.RegionLabelPathPrefix() + "/" + rule.ID
105+
key := keypath.RegionLabelKeyPath(rule.ID)
106106
_, err = clientv3.NewKV(client).Put(ctx, key, string(value))
107107
re.NoError(err)
108108
}

pkg/mcs/tso/server/server.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -346,11 +346,9 @@ func (s *Server) startServer() (err error) {
346346

347347
// Initialize the TSO service.
348348
s.serverLoopCtx, s.serverLoopCancel = context.WithCancel(s.Context())
349-
legacySvcRootPath := keypath.LegacyRootPath()
350-
tsoSvcRootPath := keypath.TSOSvcRootPath()
351349
s.keyspaceGroupManager = tso.NewKeyspaceGroupManager(
352350
s.serverLoopCtx, s.serviceID, s.GetClient(), s.GetHTTPClient(),
353-
s.cfg.AdvertiseListenAddr, legacySvcRootPath, tsoSvcRootPath, s.cfg)
351+
s.cfg.AdvertiseListenAddr, s.cfg)
354352
if err := s.keyspaceGroupManager.Initialize(); err != nil {
355353
return err
356354
}

pkg/schedule/labeler/labeler_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func TestTxnWithEtcd(t *testing.T) {
149149
re := require.New(t)
150150
_, client, clean := etcdutil.NewTestEtcdCluster(t, 1)
151151
defer clean()
152-
store := storage.NewStorageWithEtcdBackend(client, "")
152+
store := storage.NewStorageWithEtcdBackend(client)
153153
labeler, err := NewRegionLabeler(context.Background(), store, time.Millisecond*10)
154154
re.NoError(err)
155155
// test patch rules in batch

pkg/storage/endpoint/config.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ var _ ConfigStorage = (*StorageEndpoint)(nil)
4040

4141
// LoadConfig loads config from keypath.Config then unmarshal it to cfg.
4242
func (se *StorageEndpoint) LoadConfig(cfg any) (bool, error) {
43-
value, err := se.Load(keypath.Config)
43+
value, err := se.Load(keypath.ConfigPath())
4444
if err != nil || value == "" {
4545
return false, err
4646
}
@@ -53,12 +53,12 @@ func (se *StorageEndpoint) LoadConfig(cfg any) (bool, error) {
5353

5454
// SaveConfig stores marshallable cfg to the keypath.Config.
5555
func (se *StorageEndpoint) SaveConfig(cfg any) error {
56-
return se.saveJSON(keypath.Config, cfg)
56+
return se.saveJSON(keypath.ConfigPath(), cfg)
5757
}
5858

5959
// LoadAllSchedulerConfigs loads all schedulers' config.
6060
func (se *StorageEndpoint) LoadAllSchedulerConfigs() (keys, values []string, err error) {
61-
prefix := keypath.CustomSchedulerConfigPath + "/"
61+
prefix := keypath.SchedulerConfigPathPrefix()
6262
keys, values, err = se.LoadRange(prefix, clientv3.GetPrefixRangeEnd(prefix), MinKVRangeLimit)
6363
for i, key := range keys {
6464
keys[i] = strings.TrimPrefix(key, prefix)

0 commit comments

Comments
 (0)