From d1e026a7e53a055c5915c9af998aa06f3addd76a Mon Sep 17 00:00:00 2001 From: bb7133 Date: Sun, 5 Jul 2026 23:44:59 -0700 Subject: [PATCH] This is an automated cherry-pick of #10965 close tikv/pd#10964 Signed-off-by: ti-chi-bot --- client/clients/router/client.go | 17 +++++++++-------- client/clients/tso/dispatcher.go | 15 +++++++++++---- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/client/clients/router/client.go b/client/clients/router/client.go index 39524f1ee7..7bc6795234 100644 --- a/client/clients/router/client.go +++ b/client/clients/router/client.go @@ -597,23 +597,24 @@ batchLoop: func (c *Cli) processRequests(stream pdpb.PD_QueryRegionClient) error { var ( - requests = c.batchController.GetCollectedRequests() - traceRegions = make([]*trace.Region, 0, len(requests)) - spans = make([]opentracing.Span, 0, len(requests)) + requests = c.batchController.GetCollectedRequests() + spans = make([]opentracing.Span, 0, len(requests)) ) + traceCtx := context.Background() + if len(requests) > 0 { + traceCtx = requests[0].requestCtx + } + traceRegion := trace.StartRegion(traceCtx, "pdclient.regionReqSendBatch") for _, req := range requests { - traceRegions = append(traceRegions, trace.StartRegion(req.requestCtx, "pdclient.regionReqSend")) if span := opentracing.SpanFromContext(req.requestCtx); span != nil && span.Tracer() != nil { spans = append(spans, span.Tracer().StartSpan("pdclient.processRegionRequests", opentracing.ChildOf(span.Context()))) } } defer func() { - for i := range spans { + for i := len(spans) - 1; i >= 0; i-- { spans[i].Finish() } - for i := range traceRegions { - traceRegions[i].End() - } + traceRegion.End() }() queryReq := &pdpb.QueryRegionRequest{ diff --git a/client/clients/tso/dispatcher.go b/client/clients/tso/dispatcher.go index 7f7d6b21df..bb98933721 100644 --- a/client/clients/tso/dispatcher.go +++ b/client/clients/tso/dispatcher.go @@ -401,12 +401,15 @@ func (td *tsoDispatcher) processRequests( ) error { // `done` must be guaranteed to be eventually called. var ( - requests = tbc.GetCollectedRequests() - traceRegions = make([]*trace.Region, 0, len(requests)) - spans = make([]opentracing.Span, 0, len(requests)) + requests = tbc.GetCollectedRequests() + spans = make([]opentracing.Span, 0, len(requests)) ) + traceCtx := context.Background() + if len(requests) > 0 { + traceCtx = requests[0].requestCtx + } + traceRegion := trace.StartRegion(traceCtx, "pdclient.tsoReqSendBatch") for _, req := range requests { - traceRegions = append(traceRegions, trace.StartRegion(req.requestCtx, "pdclient.tsoReqSend")) if span := opentracing.SpanFromContext(req.requestCtx); span != nil && span.Tracer() != nil { spans = append(spans, span.Tracer().StartSpan("pdclient.processRequests", opentracing.ChildOf(span.Context()))) } @@ -415,9 +418,13 @@ func (td *tsoDispatcher) processRequests( for i := range spans { spans[i].Finish() } +<<<<<<< HEAD for i := range traceRegions { traceRegions[i].End() } +======= + traceRegion.End() +>>>>>>> 4f08e58847 (client: use batch-level runtime trace regions (#10965)) }() var (