提交 ebaa5d4f 编写于 作者: X xige-16 提交者: yefu.chen

Fix error of repeated loading partition failures

Signed-off-by: Nxige-16 <xi.ge@zilliz.com>
上级 6dc938e6
......@@ -244,20 +244,18 @@ func (qs *QueryService) LoadCollection(ctx context.Context, req *querypb.LoadCol
}
log.Debug("load collection start", zap.String("collectionID", fmt.Sprintln(collectionID)))
_, err := qs.replica.getCollectionByID(dbID, collectionID)
if err == nil {
log.Error("load collection end, collection already exist", zap.String("collectionID", fmt.Sprintln(collectionID)))
return fn(nil), nil
}
err = qs.replica.addCollection(dbID, collectionID, schema)
_, err := qs.replica.getCollectionByID(dbID, collectionID)
if err != nil {
return fn(err), err
}
err = qs.replica.addCollection(dbID, collectionID, schema)
if err != nil {
return fn(err), err
}
err = qs.watchDmChannels(dbID, collectionID)
if err != nil {
return fn(err), err
err = qs.watchDmChannels(dbID, collectionID)
if err != nil {
return fn(err), err
}
}
// get partitionIDs
......@@ -277,11 +275,29 @@ func (qs *QueryService) LoadCollection(ctx context.Context, req *querypb.LoadCol
}
partitionIDs := showPartitionResponse.PartitionIDs
partitionIDsToLoad := make([]UniqueID, 0)
partitionsInReplica, err := qs.replica.getPartitions(dbID, collectionID)
if err != nil {
return fn(err), err
}
for _, id := range partitionIDs {
cached := false
for _, partition := range partitionsInReplica {
if id == partition.id {
cached = true
break
}
}
if !cached {
partitionIDsToLoad = append(partitionIDsToLoad, id)
}
}
loadPartitionsRequest := &querypb.LoadPartitionRequest{
Base: req.Base,
DbID: dbID,
CollectionID: collectionID,
PartitionIDs: partitionIDs,
PartitionIDs: partitionIDsToLoad,
Schema: schema,
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册