diff --git a/internal/proxy/impl.go b/internal/proxy/impl.go index 3e37099421..0717c3fb7d 100644 --- a/internal/proxy/impl.go +++ b/internal/proxy/impl.go @@ -34,6 +34,7 @@ import ( "go.opentelemetry.io/otel/trace" "go.uber.org/zap" "golang.org/x/sync/errgroup" + "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" "github.com/milvus-io/milvus-proto/go-api/v2/commonpb" @@ -3884,6 +3885,11 @@ func (node *Proxy) Query(ctx context.Context, request *milvuspb.QueryRequest) (* }) SetReportValue(res.Status, v) metrics.ProxyReportValue.WithLabelValues(nodeID, hookutil.OpTypeQuery, request.DbName, username).Add(float64(v)) + + if log.Ctx(ctx).Core().Enabled(zap.DebugLevel) && matchCountRule(request.GetOutputFields()) { + r, _ := protojson.Marshal(res) + log.Ctx(ctx).Debug("Count result", zap.String("result", string(r))) + } return res, nil } diff --git a/internal/querynodev2/delegator/delegator.go b/internal/querynodev2/delegator/delegator.go index 225cf044a8..257ecc75ea 100644 --- a/internal/querynodev2/delegator/delegator.go +++ b/internal/querynodev2/delegator/delegator.go @@ -21,6 +21,7 @@ import ( "context" "fmt" "path" + "slices" "strconv" "sync" "time" @@ -665,6 +666,23 @@ func (sd *shardDelegator) Query(ctx context.Context, req *querypb.QueryRequest) } log.Debug("Delegator Query done") + if log.Core().Enabled(zap.DebugLevel) { + sealedIDs := lo.FlatMap(sealed, func(item SnapshotItem, _ int) []int64 { + return lo.Map(item.Segments, func(segment SegmentEntry, _ int) int64 { + return segment.SegmentID + }) + }) + slices.Sort(sealedIDs) + growingIDs := lo.Map(growing, func(item SegmentEntry, _ int) int64 { + return item.SegmentID + }) + slices.Sort(growingIDs) + log.Debug("execute count on segments...", + zap.Int64s("sealedIDs", sealedIDs), + zap.Int64s("growingIDs", growingIDs), + zap.Int64("targetVersion", sd.distribution.queryView.version), + ) + } return results, nil } diff --git a/internal/querynodev2/segments/retrieve.go b/internal/querynodev2/segments/retrieve.go index f621486961..cdcf672c3f 100644 --- a/internal/querynodev2/segments/retrieve.go +++ b/internal/querynodev2/segments/retrieve.go @@ -67,6 +67,25 @@ func retrieveOnSegments(ctx context.Context, mgr *Manager, segments []Segment, s if err != nil { return err } + + log := log.Ctx(ctx) + if log.Core().Enabled(zap.DebugLevel) && req.GetReq().GetIsCount() { + allRetrieveCount := result.AllRetrieveCount + countRet := result.GetFieldsData()[0].GetScalars().GetLongData().GetData()[0] + if allRetrieveCount != countRet { + log.Debug("count segment done with delete", + zap.String("channel", s.LoadInfo().GetInsertChannel()), + zap.Int64("segmentID", s.ID()), + zap.Int64("allRetrieveCount", allRetrieveCount), + zap.Int64("countRet", countRet)) + } else { + log.Debug("count segment done", + zap.String("channel", s.LoadInfo().GetInsertChannel()), + zap.Int64("segmentID", s.ID()), + zap.Int64("allRetrieveCount", allRetrieveCount), + zap.Int64("countRet", countRet)) + } + } resultCh <- RetrieveSegmentResult{ result, s,