Replace LoadWithPrefix with HasPrefix (#25471)

Signed-off-by: sunby <bingyi.sun@zilliz.com>
Co-authored-by: sunby <bingyi.sun@zilliz.com>
pull/25415/head
Bingyi Sun 2023-07-11 19:38:28 +08:00 committed by GitHub
parent bcd3abf644
commit 70c4ddc6c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 11 deletions

View File

@ -346,7 +346,7 @@ func TestCompactionPlanHandler_handleMergeCompactionResult(t *testing.T) {
metakv := mockkv.NewMetaKv(t)
metakv.EXPECT().Save(mock.Anything, mock.Anything).Return(errors.New("failed")).Maybe()
metakv.EXPECT().MultiSave(mock.Anything).Return(errors.New("failed")).Maybe()
metakv.EXPECT().LoadWithPrefix(mock.Anything).Return(nil, nil, nil).Maybe()
metakv.EXPECT().HasPrefix(mock.Anything).Return(false, nil).Maybe()
errMeta := &meta{
catalog: &datacoord.Catalog{MetaKv: metakv},
segments: &SegmentsInfo{

View File

@ -355,26 +355,26 @@ func (kc *Catalog) collectMetrics(s *datapb.SegmentInfo) {
}
func (kc *Catalog) hasBinlogPrefix(segment *datapb.SegmentInfo) (bool, error) {
binlogsKey, _, err := kc.getBinlogsWithPrefix(storage.InsertBinlog, segment.CollectionID, segment.PartitionID, segment.ID)
collectionID, partitionID, segmentID := segment.GetCollectionID(), segment.GetPartitionID(), segment.GetID()
prefix := buildFieldBinlogPathPrefix(collectionID, partitionID, segmentID)
hasBinlogPrefix, err := kc.MetaKv.HasPrefix(prefix)
if err != nil {
return false, err
}
deltalogsKey, _, err := kc.getBinlogsWithPrefix(storage.DeleteBinlog, segment.CollectionID, segment.PartitionID, segment.ID)
prefix = buildFieldDeltalogPathPrefix(collectionID, partitionID, segmentID)
hasDeltaPrefix, err := kc.MetaKv.HasPrefix(prefix)
if err != nil {
return false, err
}
statslogsKey, _, err := kc.getBinlogsWithPrefix(storage.StatsBinlog, segment.CollectionID, segment.PartitionID, segment.ID)
prefix = buildFieldStatslogPathPrefix(collectionID, partitionID, segmentID)
hasStatsPrefix, err := kc.MetaKv.HasPrefix(prefix)
if err != nil {
return false, err
}
if len(binlogsKey) == 0 && len(deltalogsKey) == 0 && len(statslogsKey) == 0 {
return false, nil
}
return true, nil
return hasBinlogPrefix || hasDeltaPrefix || hasStatsPrefix, nil
}
func (kc *Catalog) AlterSegmentsAndAddNewSegment(ctx context.Context, segments []*datapb.SegmentInfo, newSegment *datapb.SegmentInfo) error {

View File

@ -452,7 +452,7 @@ func Test_AlterSegmentsAndAddNewSegment(t *testing.T) {
t.Run("get prefix fail", func(t *testing.T) {
metakv := mocks.NewMetaKv(t)
metakv.EXPECT().LoadWithPrefix(mock.Anything).Return(nil, nil, errors.New("error"))
metakv.EXPECT().HasPrefix(mock.Anything).Return(false, errors.New("error"))
catalog := NewCatalog(metakv, rootPath, "")
err := catalog.AlterSegmentsAndAddNewSegment(context.TODO(), []*datapb.SegmentInfo{droppedSegment}, nil)
@ -466,13 +466,13 @@ func Test_AlterSegmentsAndAddNewSegment(t *testing.T) {
maps.Copy(savedKvs, m)
return nil
})
metakv.EXPECT().LoadWithPrefix(mock.Anything).Return([]string{}, []string{}, nil)
metakv.EXPECT().Load(mock.Anything).RunAndReturn(func(s string) (string, error) {
if v, ok := savedKvs[s]; ok {
return v, nil
}
return "", errors.New("key not found")
})
metakv.EXPECT().HasPrefix(mock.Anything).Return(false, nil)
catalog := NewCatalog(metakv, rootPath, "")
err := catalog.AlterSegmentsAndAddNewSegment(context.TODO(), []*datapb.SegmentInfo{droppedSegment}, segment1)