From aaf94c6aeba18acee87992f354d6738f5210f176 Mon Sep 17 00:00:00 2001 From: Nia Weiss Date: Wed, 16 Dec 2020 08:03:37 -0500 Subject: [PATCH 1/2] fix the automatic snapshot queue enable check The "needs snapshot queue" check was broken, as it only checked inside a loop over indices. If there are no indexes yet (or more likely if the indices have not yet been loaded off of disk), then this would never use the snapshot queue on roaring. --- holder.go | 8 ++------ server.go | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/holder.go b/holder.go index a6db1e76a..b160b888a 100644 --- a/holder.go +++ b/holder.go @@ -782,12 +782,8 @@ func (h *Holder) Close() error { func (h *Holder) NeedsSnapshot() bool { h.mu.RLock() defer h.mu.RUnlock() - for _, idx := range h.Indexes() { - if idx.NeedsSnapshot() { - return true - } - } - return false + + return h.cfg.Txsrc == "roaring" } // HasData returns true if Holder contains at least one index. diff --git a/server.go b/server.go index 6fc01ebe7..89d197fef 100644 --- a/server.go +++ b/server.go @@ -88,7 +88,7 @@ type Server struct { // nolint: maligned dataDir string // Threshold for logging long-running queries - longQueryTime time.Duration + longQueryTime time.Duration queryHistoryLength int } From eab70e231423d3fb7d494740d6a64a2793e5e72f Mon Sep 17 00:00:00 2001 From: Nia Weiss Date: Wed, 16 Dec 2020 11:00:27 -0500 Subject: [PATCH 2/2] use the txf to determine if snapshots are needed --- holder.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/holder.go b/holder.go index b160b888a..c3e6ff01a 100644 --- a/holder.go +++ b/holder.go @@ -783,7 +783,7 @@ func (h *Holder) NeedsSnapshot() bool { h.mu.RLock() defer h.mu.RUnlock() - return h.cfg.Txsrc == "roaring" + return h.txf.NeedsSnapshot() } // HasData returns true if Holder contains at least one index.