From fb5761af8d8fbb5b8a9f4778d4775c8a9cf26b02 Mon Sep 17 00:00:00 2001 From: congqixia Date: Mon, 20 Jan 2025 18:17:10 +0800 Subject: [PATCH] enhance: Skip loading pk index for sorted segment in loader (#39437) Related to #39339 Previous PR #39389 only skips append index into segment Also related to #39428 Signed-off-by: Congqi Xia --- internal/querynodev2/segments/segment.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/internal/querynodev2/segments/segment.go b/internal/querynodev2/segments/segment.go index 8cf4abc888..fc652146ae 100644 --- a/internal/querynodev2/segments/segment.go +++ b/internal/querynodev2/segments/segment.go @@ -1021,6 +1021,19 @@ func (s *LocalSegment) LoadIndex(ctx context.Context, indexInfo *querypb.FieldIn return err } + // // if segment is pk sorted, user created indexes bring no performance gain but extra memory usage + if s.IsSorted() && fieldSchema.GetIsPrimaryKey() { + log.Info("skip loading index for pk field in sorted segment") + // set field index, preventing repeated loading index task + s.fieldIndexes.Insert(indexInfo.GetFieldID(), &IndexedFieldInfo{ + FieldBinlog: &datapb.FieldBinlog{ + FieldID: indexInfo.GetFieldID(), + }, + IndexInfo: indexInfo, + IsLoaded: true, + }) + } + return s.innerLoadIndex(ctx, fieldSchema, indexInfo, tr, fieldType) }