Track used blocks, not object versions

This commit is contained in:
Vitaliy Filippov
2023-07-29 12:17:18 +03:00
parent 21b5124a4b
commit 1a4ceb420d
4 changed files with 31 additions and 67 deletions
+3 -3
View File
@@ -180,7 +180,7 @@ struct __attribute__((__packed__)) dirty_entry
struct used_clean_obj_t
{
int refs;
uint64_t freed_block; // block+1 if freed, otherwise 0
bool was_freed; // was freed by a parallel flush?
bool was_changed; // was changed by a parallel flush?
};
@@ -206,7 +206,7 @@ struct blockstore_op_private_t
int op_state;
// Read
uint64_t clean_version_used;
uint64_t clean_block_used;
std::vector<copy_buffer_t> read_vec;
// Sync, write
@@ -286,7 +286,7 @@ class blockstore_impl_t
bool alloc_dyn_data = false;
// clean data blocks referenced by read operations
std::map<obj_ver_id, used_clean_obj_t> used_clean_objects;
std::map<uint64_t, used_clean_obj_t> used_clean_objects;
bool live = false, queue_stall = false;
ring_loop_t *ringloop;