From 8e2e828a7898fab0bae5c97116003865f5e56603 Mon Sep 17 00:00:00 2001 From: congqixia Date: Mon, 20 Jan 2025 18:07:04 +0800 Subject: [PATCH] enhance: [2.5] Skip loading pk index for sorted segment in loader (#39438) Cherry pick from master pr: #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 e142431fad47a..cbc49130c9b8f 100644 --- a/internal/querynodev2/segments/segment.go +++ b/internal/querynodev2/segments/segment.go @@ -1017,6 +1017,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) }