milvus的compaction机制

发布于:2024-04-17 ⋅ 阅读:(31) ⋅ 点赞:(0)

compaction机制
compaction用来合并对象存储的小文件,将小的segment合并为大的segment。
Compaction 有一个配置项来控制是否启用自动压缩。此配置是全局的,会影响系统中的所有集合。
dataCoord.enableCompaction = true
dataCoord.compaction.enableAutoCompaction = true
enableAutoCompaction生效的前提是enableCompaction为true。

dataCoord.segment.maxSize
segment的最大大小。
dataCoord.segment.maxSize:512 (单位M)

dataCoord.enableCompaction:
true/false
是否开启compaction。

dataCoord.compaction.enableAutoCompaction
true:开启自动compact
false:关闭自动compact

判断是否是smallSegment:
如果是smallSegment,则加入候选smallCandidates,用于合并。
当segment的rows小于(segment的最大rows * smallProportion),就被认为是小segment。
dataCoord.segment.smallProportion默认是0.5。

判断是否可以进行compact:
所有的segment的总和rows > segment的最大rows *compactableProportion
dataCoord.segment.compactableProportion:默认为0.85

segment的行数包含insert、delete、update。

dataCoord.compaction.global.interval:
触发compact的间隔时间。
默认为60,单位:秒

compaction相关参数(全局):
dataCoord.enableCompaction = true
dataCoord.compaction.enableAutoCompaction = true
dataCoord.compaction.indexBasedCompaction = true
dataCoord.compaction.global.interval = 60 #默认60秒,触发compaction信号
dataCoord.compaction.check.interval = 10 #默认10秒,更新状态
dataCoord.segment.smallProportion = 0.5 #默认0.5
dataCoord.compaction.max.segment = 30 #默认30
dataCoord.compaction.min.segment = 3 #默认3