Optimize WA - do not move to the next journal sector until the actual write
This commit is contained in:
@@ -229,6 +229,8 @@ void blockstore_impl_t::loop()
|
|||||||
{
|
{
|
||||||
// Mark journal sector writes as submitted
|
// Mark journal sector writes as submitted
|
||||||
journal.sector_info[s].submit_id = 0;
|
journal.sector_info[s].submit_id = 0;
|
||||||
|
if (journal.sector_info[s].submit_id)
|
||||||
|
journal.sector_info[s].written = true;
|
||||||
}
|
}
|
||||||
journal.submitting_sectors.clear();
|
journal.submitting_sectors.clear();
|
||||||
if ((initial_ring_space - ringloop->space_left()) > 0)
|
if ((initial_ring_space - ringloop->space_left()) > 0)
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ void blockstore_impl_t::prepare_journal_sector_write(int cur_sector, blockstore_
|
|||||||
// Caller must ensure availability of an SQE
|
// Caller must ensure availability of an SQE
|
||||||
assert(sqe != NULL);
|
assert(sqe != NULL);
|
||||||
ring_data_t *data = ((ring_data_t*)sqe->user_data);
|
ring_data_t *data = ((ring_data_t*)sqe->user_data);
|
||||||
journal.sector_info[cur_sector].written = true;
|
// <written> flag will be set at the moment of actual submission
|
||||||
journal.sector_info[cur_sector].submit_id = ++journal.submit_id;
|
journal.sector_info[cur_sector].submit_id = ++journal.submit_id;
|
||||||
assert(journal.submit_id != 0); // check overflow
|
assert(journal.submit_id != 0); // check overflow
|
||||||
journal.submitting_sectors.push_back(cur_sector);
|
journal.submitting_sectors.push_back(cur_sector);
|
||||||
|
|||||||
Reference in New Issue
Block a user