From 5de4c7dc7e4a8300fd0064604aef3b03060d2b93 Mon Sep 17 00:00:00 2001 From: glorv Date: Thu, 16 Nov 2023 11:08:11 +0800 Subject: [PATCH 1/4] set override_priority with resource group priority Signed-off-by: glorv --- go.mod | 2 ++ go.sum | 4 ++-- internal/client/client_interceptor.go | 9 +++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index b8c69960cd..cd0b091b43 100644 --- a/go.mod +++ b/go.mod @@ -61,3 +61,5 @@ require ( gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +replace github.com/tikv/pd/client => github.com/glorv/pd/client v0.0.0-20231116024528-5b7460301444 diff --git a/go.sum b/go.sum index 55dc863a60..d31b50075f 100644 --- a/go.sum +++ b/go.sum @@ -22,6 +22,8 @@ github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczC github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/glorv/pd/client v0.0.0-20231116024528-5b7460301444 h1:+lReCT2AnPA/OMp5s3Bo8wotv3OJLrLqQlC/svI8wl4= +github.com/glorv/pd/client v0.0.0-20231116024528-5b7460301444/go.mod h1:cd6zBqRM9aogxf26K8NnFRPVtq9BnRE59tKEpX8IaWQ= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -112,8 +114,6 @@ github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/tiancaiamao/gp v0.0.0-20221230034425-4025bc8a4d4a h1:J/YdBZ46WKpXsxsW93SG+q0F8KI+yFrcIDT4c/RNoc4= github.com/tiancaiamao/gp v0.0.0-20221230034425-4025bc8a4d4a/go.mod h1:h4xBhSNtOeEosLJ4P7JyKXX7Cabg7AVkWCK5gV2vOrM= -github.com/tikv/pd/client v0.0.0-20231114041114-86831ce71865 h1:Gkvo77EevOpBGIdV1c8gwRqPhVbgLPRy82tXNEFpGTc= -github.com/tikv/pd/client v0.0.0-20231114041114-86831ce71865/go.mod h1:cd6zBqRM9aogxf26K8NnFRPVtq9BnRE59tKEpX8IaWQ= github.com/twmb/murmur3 v1.1.3 h1:D83U0XYKcHRYwYIpBKf3Pks91Z0Byda/9SJ8B6EMRcA= github.com/twmb/murmur3 v1.1.3/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= diff --git a/internal/client/client_interceptor.go b/internal/client/client_interceptor.go index 64ae333edd..e249c9a19d 100644 --- a/internal/client/client_interceptor.go +++ b/internal/client/client_interceptor.go @@ -116,12 +116,17 @@ func buildResourceControlInterceptor( return next(target, req) } - consumption, penalty, err := resourceControlInterceptor.OnRequestWait(ctx, resourceGroupName, reqInfo) + consumption, penalty, priority, err := resourceControlInterceptor.OnRequestWait(ctx, resourceGroupName, reqInfo) if err != nil { return nil, err } req.GetResourceControlContext().Penalty = penalty - ruRuntimeStats.Update(consumption) + // override request priority with resource group priority if it's not set. + // Get the priority at tikv side has some performance issue, so we pass it + // at client side. See: https://github.com/tikv/tikv/issues/15994 for more detials. + if req.GetResourceControlContext().OverridePriority == 0 { + req.GetResourceControlContext().OverridePriority = uint64(priority) + } resp, err := next(target, req) if resp != nil { respInfo := resourcecontrol.MakeResponseInfo(resp) From 9b52691104de18e9217239b0ef7f96cf63325502 Mon Sep 17 00:00:00 2001 From: glorv Date: Thu, 16 Nov 2023 11:52:13 +0800 Subject: [PATCH 2/4] update go.mod Signed-off-by: glorv --- go.mod | 4 +--- go.sum | 4 ++-- integration_tests/go.mod | 2 +- integration_tests/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index cd0b091b43..23a96cd6da 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/prometheus/client_model v0.3.0 github.com/stretchr/testify v1.8.2 github.com/tiancaiamao/gp v0.0.0-20221230034425-4025bc8a4d4a - github.com/tikv/pd/client v0.0.0-20231114041114-86831ce71865 + github.com/tikv/pd/client v0.0.0-20231116034417-4e600c227e83 github.com/twmb/murmur3 v1.1.3 go.etcd.io/etcd/api/v3 v3.5.10 go.etcd.io/etcd/client/v3 v3.5.10 @@ -61,5 +61,3 @@ require ( gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) - -replace github.com/tikv/pd/client => github.com/glorv/pd/client v0.0.0-20231116024528-5b7460301444 diff --git a/go.sum b/go.sum index d31b50075f..732f7b8178 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,6 @@ github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczC github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/glorv/pd/client v0.0.0-20231116024528-5b7460301444 h1:+lReCT2AnPA/OMp5s3Bo8wotv3OJLrLqQlC/svI8wl4= -github.com/glorv/pd/client v0.0.0-20231116024528-5b7460301444/go.mod h1:cd6zBqRM9aogxf26K8NnFRPVtq9BnRE59tKEpX8IaWQ= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -114,6 +112,8 @@ github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/tiancaiamao/gp v0.0.0-20221230034425-4025bc8a4d4a h1:J/YdBZ46WKpXsxsW93SG+q0F8KI+yFrcIDT4c/RNoc4= github.com/tiancaiamao/gp v0.0.0-20221230034425-4025bc8a4d4a/go.mod h1:h4xBhSNtOeEosLJ4P7JyKXX7Cabg7AVkWCK5gV2vOrM= +github.com/tikv/pd/client v0.0.0-20231116034417-4e600c227e83 h1:wPZW67pTWz2yEboCw2dK+z4p/tGFVCTqRl5WkNCK0lc= +github.com/tikv/pd/client v0.0.0-20231116034417-4e600c227e83/go.mod h1:cd6zBqRM9aogxf26K8NnFRPVtq9BnRE59tKEpX8IaWQ= github.com/twmb/murmur3 v1.1.3 h1:D83U0XYKcHRYwYIpBKf3Pks91Z0Byda/9SJ8B6EMRcA= github.com/twmb/murmur3 v1.1.3/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= diff --git a/integration_tests/go.mod b/integration_tests/go.mod index c82653b3a4..7940a75128 100644 --- a/integration_tests/go.mod +++ b/integration_tests/go.mod @@ -12,7 +12,7 @@ require ( github.com/stretchr/testify v1.8.4 github.com/tidwall/gjson v1.14.1 github.com/tikv/client-go/v2 v2.0.8-0.20231025022411-cad314220659 - github.com/tikv/pd/client v0.0.0-20231114041114-86831ce71865 + github.com/tikv/pd/client v0.0.0-20231116034417-4e600c227e83 go.uber.org/goleak v1.2.1 ) diff --git a/integration_tests/go.sum b/integration_tests/go.sum index 5781b227b7..3ff59b95e7 100644 --- a/integration_tests/go.sum +++ b/integration_tests/go.sum @@ -507,8 +507,8 @@ github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= -github.com/tikv/pd/client v0.0.0-20231114041114-86831ce71865 h1:Gkvo77EevOpBGIdV1c8gwRqPhVbgLPRy82tXNEFpGTc= -github.com/tikv/pd/client v0.0.0-20231114041114-86831ce71865/go.mod h1:cd6zBqRM9aogxf26K8NnFRPVtq9BnRE59tKEpX8IaWQ= +github.com/tikv/pd/client v0.0.0-20231116034417-4e600c227e83 h1:wPZW67pTWz2yEboCw2dK+z4p/tGFVCTqRl5WkNCK0lc= +github.com/tikv/pd/client v0.0.0-20231116034417-4e600c227e83/go.mod h1:cd6zBqRM9aogxf26K8NnFRPVtq9BnRE59tKEpX8IaWQ= github.com/tklauser/go-sysconf v0.3.9/go.mod h1:11DU/5sG7UexIrp/O6g35hrWzu0JxlwQ3LSFUzyeuhs= github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= From 024b02a9a7d0bf1e32ba588979b817af75804caf Mon Sep 17 00:00:00 2001 From: glorv Date: Thu, 16 Nov 2023 12:03:11 +0800 Subject: [PATCH 3/4] fix typo Signed-off-by: glorv --- internal/client/client_interceptor.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/client/client_interceptor.go b/internal/client/client_interceptor.go index e249c9a19d..7d57e77283 100644 --- a/internal/client/client_interceptor.go +++ b/internal/client/client_interceptor.go @@ -123,7 +123,7 @@ func buildResourceControlInterceptor( req.GetResourceControlContext().Penalty = penalty // override request priority with resource group priority if it's not set. // Get the priority at tikv side has some performance issue, so we pass it - // at client side. See: https://github.com/tikv/tikv/issues/15994 for more detials. + // at client side. See: https://github.com/tikv/tikv/issues/15994 for more details. if req.GetResourceControlContext().OverridePriority == 0 { req.GetResourceControlContext().OverridePriority = uint64(priority) } From 93a4c9255206835e5e173ac08e035d993d21624a Mon Sep 17 00:00:00 2001 From: glorv Date: Thu, 16 Nov 2023 12:18:19 +0800 Subject: [PATCH 4/4] fix Signed-off-by: glorv --- internal/client/client_interceptor.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/client/client_interceptor.go b/internal/client/client_interceptor.go index 7d57e77283..5afa476ed1 100644 --- a/internal/client/client_interceptor.go +++ b/internal/client/client_interceptor.go @@ -121,6 +121,7 @@ func buildResourceControlInterceptor( return nil, err } req.GetResourceControlContext().Penalty = penalty + ruRuntimeStats.Update(consumption) // override request priority with resource group priority if it's not set. // Get the priority at tikv side has some performance issue, so we pass it // at client side. See: https://github.com/tikv/tikv/issues/15994 for more details.