Add config for disable BF load (#22998)

Signed-off-by: xiaofan-luan <xiaofan.luan@zilliz.com>
This commit is contained in:
Xiaofan 2023-03-28 20:06:08 +08:00 committed by GitHub
parent ec6ed9f2b4
commit 4f724f1c83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 0 deletions

View File

@ -613,6 +613,12 @@ func (s *Segment) InitCurrentStat() {
func (s *Segment) isPKExist(pk primaryKey) bool {
s.statLock.Lock()
defer s.statLock.Unlock()
if Params.DataNodeCfg.SkipBFStatsLoad {
log.Warn("processing delete while skip load BF, may affect performance", zap.Any("pk", pk), zap.Int64("segmentID", s.segmentID))
return true
}
if s.currentStat != nil && s.currentStat.PkExist(pk) {
return true
}

View File

@ -641,6 +641,11 @@ func (loader *segmentLoader) loadSegmentBloomFilter(ctx context.Context, segment
return nil
}
if Params.DataNodeCfg.SkipBFStatsLoad {
log.Info("skip load BF with config set ", zap.Int64("segmentID", segment.segmentID))
return nil
}
startTs := time.Now()
values, err := loader.cm.MultiRead(ctx, binlogPaths)
if err != nil {

View File

@ -1574,6 +1574,8 @@ type dataNodeConfig struct {
MemoryForceSyncEnable bool
MemoryForceSyncSegmentNum int
MemoryWatermark float64
SkipBFStatsLoad bool
}
func (p *dataNodeConfig) init(base *BaseTable) {
@ -1589,6 +1591,8 @@ func (p *dataNodeConfig) init(base *BaseTable) {
p.initIOConcurrency()
p.initDataNodeTimeTickInterval()
p.initSkipBFStatsLoad()
p.initChannelWatchPath()
p.initMemoryForceSyncEnable()
p.initMemoryWatermark()
@ -1653,6 +1657,10 @@ func (p *dataNodeConfig) initDataNodeTimeTickInterval() {
p.DataNodeTimeTickInterval = p.Base.ParseIntWithDefault("datanode.timetick.interval", 500)
}
func (p *dataNodeConfig) initSkipBFStatsLoad() {
p.SkipBFStatsLoad = p.Base.ParseBool("dataNode.skip.BFStats.Load", false)
}
func (p *dataNodeConfig) SetNodeID(id UniqueID) {
p.NodeID.Store(id)
}