Rename sector_info.usage_count to flush_count
parent
534a4a657e
commit
e1e01d042e
|
@ -287,7 +287,7 @@ void blockstore_impl_t::check_wait(blockstore_op_t *op)
|
||||||
else if (PRIV(op)->wait_for == WAIT_JOURNAL_BUFFER)
|
else if (PRIV(op)->wait_for == WAIT_JOURNAL_BUFFER)
|
||||||
{
|
{
|
||||||
int next = ((journal.cur_sector + 1) % journal.sector_count);
|
int next = ((journal.cur_sector + 1) % journal.sector_count);
|
||||||
if (journal.sector_info[next].usage_count > 0 ||
|
if (journal.sector_info[next].flush_count > 0 ||
|
||||||
journal.sector_info[next].dirty)
|
journal.sector_info[next].dirty)
|
||||||
{
|
{
|
||||||
// do not submit
|
// do not submit
|
||||||
|
|
|
@ -62,7 +62,7 @@ int blockstore_journal_check_t::check_available(blockstore_op_t *op, int entries
|
||||||
" is too small for a batch of "+std::to_string(entries_required)+" entries of "+std::to_string(size)+" bytes"
|
" is too small for a batch of "+std::to_string(entries_required)+" entries of "+std::to_string(size)+" bytes"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (bs->journal.sector_info[next_sector].usage_count > 0 ||
|
if (bs->journal.sector_info[next_sector].flush_count > 0 ||
|
||||||
bs->journal.sector_info[next_sector].dirty)
|
bs->journal.sector_info[next_sector].dirty)
|
||||||
{
|
{
|
||||||
// No memory buffer available. Wait for it.
|
// No memory buffer available. Wait for it.
|
||||||
|
@ -74,7 +74,7 @@ int blockstore_journal_check_t::check_available(blockstore_op_t *op, int entries
|
||||||
dirty++;
|
dirty++;
|
||||||
used++;
|
used++;
|
||||||
}
|
}
|
||||||
if (bs->journal.sector_info[i].usage_count > 0)
|
if (bs->journal.sector_info[i].flush_count > 0)
|
||||||
{
|
{
|
||||||
used++;
|
used++;
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ int blockstore_journal_check_t::check_available(blockstore_op_t *op, int entries
|
||||||
"Ran out of journal sector buffers: %d/%lu buffers used (%d dirty), next buffer (%ld) is %s and flushed %lu times\n",
|
"Ran out of journal sector buffers: %d/%lu buffers used (%d dirty), next buffer (%ld) is %s and flushed %lu times\n",
|
||||||
used, bs->journal.sector_count, dirty, next_sector,
|
used, bs->journal.sector_count, dirty, next_sector,
|
||||||
bs->journal.sector_info[next_sector].dirty ? "dirty" : "not dirty",
|
bs->journal.sector_info[next_sector].dirty ? "dirty" : "not dirty",
|
||||||
bs->journal.sector_info[next_sector].usage_count
|
bs->journal.sector_info[next_sector].flush_count
|
||||||
);
|
);
|
||||||
PRIV(op)->wait_for = WAIT_JOURNAL_BUFFER;
|
PRIV(op)->wait_for = WAIT_JOURNAL_BUFFER;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -123,11 +123,11 @@ journal_entry* prefill_single_journal_entry(journal_t & journal, uint16_t type,
|
||||||
{
|
{
|
||||||
assert(!journal.sector_info[journal.cur_sector].dirty);
|
assert(!journal.sector_info[journal.cur_sector].dirty);
|
||||||
// Move to the next journal sector
|
// Move to the next journal sector
|
||||||
if (journal.sector_info[journal.cur_sector].usage_count > 0)
|
if (journal.sector_info[journal.cur_sector].flush_count > 0)
|
||||||
{
|
{
|
||||||
// Also select next sector buffer in memory
|
// Also select next sector buffer in memory
|
||||||
journal.cur_sector = ((journal.cur_sector + 1) % journal.sector_count);
|
journal.cur_sector = ((journal.cur_sector + 1) % journal.sector_count);
|
||||||
assert(!journal.sector_info[journal.cur_sector].usage_count);
|
assert(!journal.sector_info[journal.cur_sector].flush_count);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -159,7 +159,7 @@ void prepare_journal_sector_write(journal_t & journal, int cur_sector, io_uring_
|
||||||
{
|
{
|
||||||
journal.sector_info[cur_sector].dirty = false;
|
journal.sector_info[cur_sector].dirty = false;
|
||||||
journal.sector_info[cur_sector].written = true;
|
journal.sector_info[cur_sector].written = true;
|
||||||
journal.sector_info[cur_sector].usage_count++;
|
journal.sector_info[cur_sector].flush_count++;
|
||||||
ring_data_t *data = ((ring_data_t*)sqe->user_data);
|
ring_data_t *data = ((ring_data_t*)sqe->user_data);
|
||||||
data->iov = (struct iovec){
|
data->iov = (struct iovec){
|
||||||
(journal.inmemory
|
(journal.inmemory
|
||||||
|
|
|
@ -133,7 +133,7 @@ inline uint32_t je_crc32(journal_entry *je)
|
||||||
struct journal_sector_info_t
|
struct journal_sector_info_t
|
||||||
{
|
{
|
||||||
uint64_t offset;
|
uint64_t offset;
|
||||||
uint64_t usage_count; // flusher_count!
|
uint64_t flush_count;
|
||||||
bool written;
|
bool written;
|
||||||
bool dirty;
|
bool dirty;
|
||||||
};
|
};
|
||||||
|
|
|
@ -468,8 +468,8 @@ void blockstore_impl_t::release_journal_sectors(blockstore_op_t *op)
|
||||||
uint64_t s = PRIV(op)->min_flushed_journal_sector;
|
uint64_t s = PRIV(op)->min_flushed_journal_sector;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
journal.sector_info[s-1].usage_count--;
|
journal.sector_info[s-1].flush_count--;
|
||||||
if (s != (1+journal.cur_sector) && journal.sector_info[s-1].usage_count == 0)
|
if (s != (1+journal.cur_sector) && journal.sector_info[s-1].flush_count == 0)
|
||||||
{
|
{
|
||||||
// We know for sure that we won't write into this sector anymore
|
// We know for sure that we won't write into this sector anymore
|
||||||
uint64_t new_ds = journal.sector_info[s-1].offset + journal.block_size;
|
uint64_t new_ds = journal.sector_info[s-1].offset + journal.block_size;
|
||||||
|
|
Loading…
Reference in New Issue