tikv / tikv/pd

Optimize the lock usage in resource controller

Open
#8,918 0 comments 0 reactions 0 assignees View on GitHub
component/resource-control type/development
Dominant language
Go
Stars
1.2k
Forks
783
Avg merge
5d 21h
Merged PRs (30d)
36

Description

## Development Task

```
79574260 2380 @ 0x1037b3079 0x1037b305a 0x1037ad6c5 0x1037cc578 0x1037cbee2 0x1037d1c73 0x1037cb31d 0x1037d16d3 0x1037fa592 0x1037f6c7b 0x10385bded 0x103863632 0x1038624c5 0x10464bbcb 0x10626b9bb 0x10626ab8b 0x1062693f2 0x1057e251f 0x106126fae 0x10611e828 0x10643f662 0x1064aeb4c 0x1064adfd3 0x1064b3727 0x1064b2b30 0x1064b26a9 0x1064a70bb 0x1064a3288 0x1064c6adf 0x1064c5425 0x102b717a1
# 0x1037b3078 sync.(*Mutex).Unlock+0x1b8 /Users/siddon/go/pkg/mod/[golang.org/toolchain@v0.0.1-go1.23.4.darwin-amd64/src/sync/mutex.go:225](http://golang.org/toolchain@v0.0.1-go1.23.4.darwin-amd64/src/sync/mutex.go:225)
# 0x1037b3059 [github.com/tikv/pd/client/resource_group/controller.(*groupCostController).onRequestWaitImpl+0x199](http://github.com/tikv/pd/client/resource_group/controller.(*groupCostController).onRequestWaitImpl+0x199) /Users/siddon/go/pkg/mod/[github.com/tikv/pd/client@v0.0.0-20241111073742-238d4d79ea31/resource_group/controller/controller.go:1400](http://github.com/tikv/pd/client@v0.0.0-20241111073742-238d4d79ea31/resource_group/controller/controller.go:1400)
# 0x1037ad6c4 [github.com/tikv/pd/client/resource_group/controller.(*ResourceGroupsController).OnRequestWait+0x64](http://github.com/tikv/pd/client/resource_group/controller.(*ResourceGroupsController).OnRequestWait+0x64) /Users/siddon/go/pkg/mod/[github.com/tikv/pd/client@v0.0.0-20241111073742-238d4d79ea31/resource_group/controller/controller.go:646](http://github.com/tikv/pd/client@v0.0.0-20241111073742-238d4d79ea31/resource_group/controller/controller.go:646)
# 0x1037cc577 [github.com/tikv/client-go/v2/internal/client.buildResourceControlInterceptor.func1.1+0x137](http://github.com/tikv/client-go/v2/internal/client.buildResourceControlInterceptor.func1.1+0x137) /Users/siddon/go/pkg/mod/[github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/internal/client/client_interceptor.go:108](http://github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/internal/client/client_interceptor.go:108)
# 0x1037cbee1 [github.com/tikv/client-go/v2/internal/client.interceptedClient.SendRequest+0x1c1](http://github.com/tikv/client-go/v2/internal/client.interceptedClient.SendRequest+0x1c1) /Users/siddon/go/pkg/mod/[github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/internal/client/client_interceptor.go:58](http://github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/internal/client/client_interceptor.go:58)
# 0x1037d1c72 [github.com/tikv/client-go/v2/internal/client.(*interceptedClient).SendRequest+0x52](http://github.com/tikv/client-go/v2/internal/client.(*interceptedClient).SendRequest+0x52) :1
# 0x1037cb31c [github.com/tikv/client-go/v2/internal/client.reqCollapse.SendRequest+0xbc](http://github.com/tikv/client-go/v2/internal/client.reqCollapse.SendRequest+0xbc) /Users/siddon/go/pkg/mod/[github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/internal/client/client_collapse.go:74](http://github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/internal/client/client_collapse.go:74)
# 0x1037d16d2 [github.com/tikv/client-go/v2/internal/client.(*reqCollapse).SendRequest+0x52](http://github.com/tikv/client-go/v2/internal/client.(*reqCollapse).SendRequest+0x52) :1
# 0x1037fa591 [github.com/tikv/client-go/v2/internal/locate.(*RegionRequestSender).sendReqToRegion+0x8d1](http://github.com/tikv/client-go/v2/internal/locate.(*RegionRequestSender).sendReqToRegion+0x8d1) /Users/siddon/go/pkg/mod/[github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/internal/locate/region_request.go:1114](http://github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/internal/locate/region_request.go:1114)
# 0x1037f6c7a [github.com/tikv/client-go/v2/internal/locate.(*RegionRequestSender).SendReqCtx+0x14ba](http://github.com/tikv/client-go/v2/internal/locate.(*RegionRequestSender).SendReqCtx+0x14ba) /Users/siddon/go/pkg/mod/[github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/internal/locate/region_request.go:870](http://github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/internal/locate/region_request.go:870)
# 0x10385bdec [github.com/tikv/client-go/v2/txnkv/txnsnapshot.(*ClientHelper).SendReqCtx+0x22c](http://github.com/tikv/client-go/v2/txnkv/txnsnapshot.(*ClientHelper).SendReqCtx+0x22c) /Users/siddon/go/pkg/mod/[github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/txnkv/txnsnapshot/client_helper.go:146](http://github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/txnkv/txnsnapshot/client_helper.go:146)
# 0x103863631 [github.com/tikv/client-go/v2/txnkv/txnsnapshot.(*KVSnapshot).get+0xb71](http://github.com/tikv/client-go/v2/txnkv/txnsnapshot.(*KVSnapshot).get+0xb71) /Users/siddon/go/pkg/mod/[github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/txnkv/txnsnapshot/snapshot.go:721](http://github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/txnkv/txnsnapshot/snapshot.go:721)
# 0x1038624c4 [github.com/tikv/client-go/v2/txnkv/txnsnapshot.(*KVSnapshot).Get+0x5c4](http://github.com/tikv/client-go/v2/txnkv/txnsnapshot.(*KVSnapshot).Get+0x5c4) /Users/siddon/go/pkg/mod/[github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/txnkv/txnsnapshot/snapshot.go:633](http://github.com/tikv/client-go/v2@v2.0.8-0.20241120024459-05d115b3e88b/txnkv/txnsnapshot/snapshot.go:633)
# 0x10464bbca [github.com/pingcap/tidb/pkg/store/driver/txn.(*tikvSnapshot).Get+0xea](http://github.com/pingcap/tidb/pkg/store/driver/txn.(*tikvSnapshot).Get+0xea) /Users/siddon/eng/tidb/pkg/store/driver/txn/snapshot.go:60
# 0x10626b9ba [github.com/pingcap/tidb/pkg/executor.(*PointGetExecutor).get+0x4da](http://github.com/pingcap/tidb/pkg/executor.(*PointGetExecutor).get+0x4da) /Users/siddon/eng/tidb/pkg/executor/point_get.go:687
# 0x10626ab8a [github.com/pingcap/tidb/pkg/executor.(*PointGetExecutor).getAndLock+0x18a](http://github.com/pingcap/tidb/pkg/executor.(*PointGetExecutor).getAndLock+0x18a) /Users/siddon/eng/tidb/pkg/executor/point_get.go:561
# 0x1062693f1 [github.com/pingcap/tidb/pkg/executor.(*PointGetExecutor).Next+0x771](http://github.com/pingcap/tidb/pkg/executor.(*PointGetExecutor).Next+0x771) /Users/siddon/eng/tidb/pkg/executor/point_get.go:394

```
there are too many locks.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.