From d87e7d1a378b7551af5c2f72b6d88f4405503fb4 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 27 Sep 2025 11:23:05 +0300 Subject: [PATCH] Optimize WA - do not move to the next journal sector until the actual write --- src/blockstore/blockstore_impl.cpp | 2 ++ src/blockstore/blockstore_journal.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/blockstore/blockstore_impl.cpp b/src/blockstore/blockstore_impl.cpp index 8222adef..a18b396f 100644 --- a/src/blockstore/blockstore_impl.cpp +++ b/src/blockstore/blockstore_impl.cpp @@ -229,6 +229,8 @@ void blockstore_impl_t::loop() { // Mark journal sector writes as submitted journal.sector_info[s].submit_id = 0; + if (journal.sector_info[s].submit_id) + journal.sector_info[s].written = true; } journal.submitting_sectors.clear(); if ((initial_ring_space - ringloop->space_left()) > 0) diff --git a/src/blockstore/blockstore_journal.cpp b/src/blockstore/blockstore_journal.cpp index e2b28dc8..163ca7e0 100644 --- a/src/blockstore/blockstore_journal.cpp +++ b/src/blockstore/blockstore_journal.cpp @@ -178,7 +178,7 @@ void blockstore_impl_t::prepare_journal_sector_write(int cur_sector, blockstore_ // Caller must ensure availability of an SQE assert(sqe != NULL); ring_data_t *data = ((ring_data_t*)sqe->user_data); - journal.sector_info[cur_sector].written = true; + // flag will be set at the moment of actual submission journal.sector_info[cur_sector].submit_id = ++journal.submit_id; assert(journal.submit_id != 0); // check overflow journal.submitting_sectors.push_back(cur_sector);