mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-08 10:08:42 +08:00
enhance: disk cache to enable size based eviction (#31469)
See #31262 Signed-off-by: Ted Xu <ted.xu@zilliz.com>
This commit is contained in:
parent
03eaa5d478
commit
09281a07f4
@ -162,8 +162,6 @@ type Manager struct {
|
|||||||
|
|
||||||
func NewManager() *Manager {
|
func NewManager() *Manager {
|
||||||
diskCap := paramtable.Get().QueryNodeCfg.DiskCapacityLimit.GetAsInt64()
|
diskCap := paramtable.Get().QueryNodeCfg.DiskCapacityLimit.GetAsInt64()
|
||||||
segmentMaxSize := paramtable.Get().DataCoordCfg.SegmentMaxSize.GetAsInt64()
|
|
||||||
cacheMaxItemNum := diskCap / segmentMaxSize
|
|
||||||
|
|
||||||
segMgr := NewSegmentManager()
|
segMgr := NewSegmentManager()
|
||||||
sf := singleflight.Group{}
|
sf := singleflight.Group{}
|
||||||
@ -172,7 +170,9 @@ func NewManager() *Manager {
|
|||||||
Segment: segMgr,
|
Segment: segMgr,
|
||||||
}
|
}
|
||||||
|
|
||||||
manager.DiskCache = cache.NewCacheBuilder[int64, Segment]().WithCapacity(cacheMaxItemNum).WithLoader(func(key int64) (Segment, bool) {
|
manager.DiskCache = cache.NewCacheBuilder[int64, Segment]().WithLazyScavenger(func(key int64) int64 {
|
||||||
|
return int64(segMgr.sealedSegments[key].ResourceUsageEstimate().DiskSize)
|
||||||
|
}, diskCap).WithLoader(func(key int64) (Segment, bool) {
|
||||||
log.Debug("cache missed segment", zap.Int64("segmentID", key))
|
log.Debug("cache missed segment", zap.Int64("segmentID", key))
|
||||||
segMgr.mu.RLock()
|
segMgr.mu.RLock()
|
||||||
defer segMgr.mu.RUnlock()
|
defer segMgr.mu.RUnlock()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user