Skip to content

Commit 3366efc

Browse files
disable receive flush on shutdown
1 parent 994422f commit 3366efc

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

cmd/thanos/receive.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ func runReceive(
286286

287287
level.Debug(logger).Log("msg", "setting up TSDB")
288288
{
289-
if err := startTSDBAndUpload(g, logger, reg, dbs, uploadC, hashringChangedChan, upload, uploadDone, statusProber, bkt, receive.HashringAlgorithm(conf.hashringsAlgorithm)); err != nil {
289+
if err := startTSDBAndUpload(g, logger, reg, dbs, uploadC, hashringChangedChan, upload, uploadDone, statusProber, bkt, receive.HashringAlgorithm(conf.hashringsAlgorithm), conf.tsdbDisableFlushOnShutdown); err != nil {
290290
return err
291291
}
292292
}
@@ -578,6 +578,7 @@ func startTSDBAndUpload(g *run.Group,
578578
statusProber prober.Probe,
579579
bkt objstore.Bucket,
580580
hashringAlgorithm receive.HashringAlgorithm,
581+
disableFlushOnShutDown bool,
581582
) error {
582583

583584
log.With(logger, "component", "storage")
@@ -603,10 +604,12 @@ func startTSDBAndUpload(g *run.Group,
603604
// Before quitting, ensure the WAL is flushed and the DBs are closed.
604605
defer func() {
605606
level.Info(logger).Log("msg", "shutting down storage")
606-
if err := dbs.Flush(); err != nil {
607-
level.Error(logger).Log("err", err, "msg", "failed to flush storage")
608-
} else {
609-
level.Info(logger).Log("msg", "storage is flushed successfully")
607+
if !disableFlushOnShutDown {
608+
if err := dbs.Flush(); err != nil {
609+
level.Error(logger).Log("err", err, "msg", "failed to flush storage")
610+
} else {
611+
level.Info(logger).Log("msg", "storage is flushed successfully")
612+
}
610613
}
611614
if err := dbs.Close(); err != nil {
612615
level.Error(logger).Log("err", err, "msg", "failed to close storage")
@@ -822,6 +825,7 @@ type receiveConfig struct {
822825
tsdbMaxBytes units.Base2Bytes
823826
tsdbWriteQueueSize int64
824827
tsdbMemorySnapshotOnShutdown bool
828+
tsdbDisableFlushOnShutdown bool
825829
tsdbEnableNativeHistograms bool
826830

827831
walCompression bool
@@ -958,6 +962,10 @@ func (rc *receiveConfig) registerFlag(cmd extkingpin.FlagClause) {
958962
"[EXPERIMENTAL] Enables feature to snapshot in-memory chunks on shutdown for faster restarts.").
959963
Default("false").Hidden().BoolVar(&rc.tsdbMemorySnapshotOnShutdown)
960964

965+
cmd.Flag("tsdb.disable-flush-on-shutdown",
966+
"[EXPERIMENTAL] disable flush on receive shutdown for rebuilding mempostings on restart.").
967+
Default("false").Hidden().BoolVar(&rc.tsdbDisableFlushOnShutdown)
968+
961969
cmd.Flag("tsdb.enable-native-histograms",
962970
"[EXPERIMENTAL] Enables the ingestion of native histograms.").
963971
Default("false").Hidden().BoolVar(&rc.tsdbEnableNativeHistograms)

0 commit comments

Comments
 (0)