From 2963ad98ec53d50108232f9136738474e404248f Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Tue, 3 Dec 2019 00:18:57 +0300 Subject: [PATCH] Start to flush only when there are journal entries to flush --- blockstore_flush.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/blockstore_flush.cpp b/blockstore_flush.cpp index 8d536afd..da65a00b 100644 --- a/blockstore_flush.cpp +++ b/blockstore_flush.cpp @@ -53,14 +53,14 @@ journal_flusher_t::~journal_flusher_t() bool journal_flusher_t::is_active() { - return active_flushers > 0 || flush_queue.size() > 0; + return active_flushers > 0 || flush_queue.size() >= sync_threshold; } void journal_flusher_t::loop() { for (int i = 0; i < flusher_count; i++) { - if (!active_flushers && !flush_queue.size()) + if (!active_flushers && flush_queue.size() < sync_threshold) { return; } @@ -147,7 +147,8 @@ bool journal_flusher_co::loop() else if (wait_state == 18) goto resume_18; resume_0: - if (!flusher->flush_queue.size()) + if (!flusher->flush_queue.size() || + !flusher->active_flushers && flusher->flush_queue.size() < flusher->sync_threshold) { wait_state = 0; return true;