From 8846ce5f1dfc77a7878887bc10f7c3a06085c6d6 Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin <valyala@victoriametrics.com> Date: Thu, 13 Apr 2023 23:17:10 -0700 Subject: [PATCH] lib/{mergeset,storage}: make sure that getFlushToDiskDeadline() takes into account only in-memory parts --- lib/mergeset/table.go | 6 +++--- lib/storage/partition.go | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/mergeset/table.go b/lib/mergeset/table.go index 96a02ce7f5..f1f82d4daf 100644 --- a/lib/mergeset/table.go +++ b/lib/mergeset/table.go @@ -1168,9 +1168,9 @@ func (tb *Table) mergeParts(pws []*partWrapper, stopCh <-chan struct{}, isFinal } func getFlushToDiskDeadline(pws []*partWrapper) time.Time { - d := pws[0].flushToDiskDeadline - for _, pw := range pws[1:] { - if pw.flushToDiskDeadline.Before(d) { + d := time.Now().Add(dataFlushInterval) + for _, pw := range pws { + if pw.mp != nil && pw.flushToDiskDeadline.Before(d) { d = pw.flushToDiskDeadline } } diff --git a/lib/storage/partition.go b/lib/storage/partition.go index ffbb74b76e..a517fa63c1 100644 --- a/lib/storage/partition.go +++ b/lib/storage/partition.go @@ -1353,9 +1353,9 @@ func (pt *partition) mergeParts(pws []*partWrapper, stopCh <-chan struct{}, isFi } func getFlushToDiskDeadline(pws []*partWrapper) time.Time { - d := pws[0].flushToDiskDeadline - for _, pw := range pws[1:] { - if pw.flushToDiskDeadline.Before(d) { + d := time.Now().Add(dataFlushInterval) + for _, pw := range pws { + if pw.mp != nil && pw.flushToDiskDeadline.Before(d) { d = pw.flushToDiskDeadline } }