From 29dfcc272912013f6b1d4930d11143ccd94c516e Mon Sep 17 00:00:00 2001 From: glorv Date: Tue, 7 Feb 2023 17:07:54 +0800 Subject: [PATCH] fix the calculation of write request total write bytes (#691) Signed-off-by: glorv --- internal/resourcecontrol/resource_control.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/internal/resourcecontrol/resource_control.go b/internal/resourcecontrol/resource_control.go index 4a98ac23..6bd67c54 100644 --- a/internal/resourcecontrol/resource_control.go +++ b/internal/resourcecontrol/resource_control.go @@ -16,7 +16,6 @@ package resourcecontrol import ( "reflect" - "unsafe" "github.com/pingcap/kvproto/pkg/coprocessor" "github.com/pingcap/kvproto/pkg/kvrpcpb" @@ -43,9 +42,17 @@ func MakeRequestInfo(req *tikvrpc.Request) *RequestInfo { var writeBytes int64 switch r := req.Req.(type) { case *kvrpcpb.PrewriteRequest: - writeBytes += int64(r.TxnSize) + for _, m := range r.Mutations { + writeBytes += int64(len(m.Key)) + int64(len(m.Value)) + } + writeBytes += int64(len(r.PrimaryLock)) + for _, l := range r.Secondaries { + writeBytes += int64(len(l)) + } case *kvrpcpb.CommitRequest: - writeBytes += int64(unsafe.Sizeof(r.Keys)) + for _, k := range r.Keys { + writeBytes += int64(len(k)) + } } return &RequestInfo{writeBytes: writeBytes}