Fix false load success for partition load timeout but collection remains (#25379)

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
congqixia 2023-07-06 19:10:25 +08:00 committed by GitHub
parent b7b249770c
commit 2bed5bc461
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 7 deletions

View File

@ -297,7 +297,7 @@ func (m *CollectionManager) CalculateLoadPercentage(collectionID UniqueID) int32
}
func (m *CollectionManager) calculateLoadPercentage(collectionID UniqueID) int32 {
collection, ok := m.collections[collectionID]
_, ok := m.collections[collectionID]
if ok {
partitions := m.getPartitionsByCollection(collectionID)
if len(partitions) > 0 {
@ -305,10 +305,6 @@ func (m *CollectionManager) calculateLoadPercentage(collectionID UniqueID) int32
return partition.LoadPercentage
}) / int32(len(partitions))
}
if collection.GetLoadType() == querypb.LoadType_LoadCollection {
// no partition exists
return 100
}
}
return -1
}

View File

@ -71,7 +71,7 @@ func (suite *CollectionManagerSuite) SetupSuite() {
querypb.LoadType_LoadCollection,
}
suite.replicaNumber = []int32{1, 2, 3, 1}
suite.colLoadPercent = []int32{0, 50, 100, 100}
suite.colLoadPercent = []int32{0, 50, 100, -1}
suite.parLoadPercent = map[int64][]int32{
100: {0},
101: {0, 100},

View File

@ -132,7 +132,14 @@ func (ob *CollectionObserver) observeTimeout() {
zap.Duration("loadTime", time.Since(partition.CreatedAt)))
ob.meta.CollectionManager.RemovePartition(partition.GetPartitionID())
ob.targetMgr.RemovePartition(partition.GetCollectionID(), partition.GetPartitionID())
break
}
// all partition timeout, remove collection
if len(ob.meta.CollectionManager.GetPartitionsByCollection(collection)) == 0 {
log.Info("collection timeout due to all partition removed", zap.Int64("collection", collection))
ob.meta.CollectionManager.RemoveCollection(collection)
ob.meta.ReplicaManager.RemoveCollection(collection)
ob.targetMgr.RemoveCollection(collection)
}
}
}