"seastore_cache_lru_size"))
{
LOG_PREFIX(Cache::Cache);
- INFO("created, lru_size={}", lru.get_capacity());
+ INFO("created, lru_capacity={}B", lru.get_capacity_bytes());
register_metrics();
segment_providers_by_device_id.resize(DEVICE_ID_MAX, nullptr);
}
sm::make_counter(
"cache_lru_size_bytes",
[this] {
- return lru.get_current_contents_bytes();
+ return lru.get_current_size_bytes();
},
sm::description("total bytes pinned by the lru")
),
sm::make_counter(
- "cache_lru_size_extents",
+ "cache_lru_num_extents",
[this] {
- return lru.get_current_contents_extents();
+ return lru.get_current_num_extents();
},
sm::description("total extents pinned by the lru")
),
stats.dirty_bytes,
get_oldest_dirty_from().value_or(JOURNAL_SEQ_NULL),
get_oldest_backref_dirty_from().value_or(JOURNAL_SEQ_NULL),
- lru.get_current_contents_extents(),
- lru.get_current_contents_bytes(),
+ lru.get_current_num_extents(),
+ lru.get_current_size_bytes(),
extents.size(),
extents.get_bytes());
root.reset();
const size_t capacity = 0;
// current size (bytes)
- size_t contents = 0;
+ size_t current_size = 0;
CachedExtent::primary_ref_list lru;
assert(extent.is_stable_clean() && !extent.is_placeholder());
assert(extent.primary_ref_list_hook.is_linked());
assert(lru.size() > 0);
- assert(contents >= extent.get_length());
+ assert(current_size >= extent.get_length());
lru.erase(lru.s_iterator_to(extent));
- contents -= extent.get_length();
+ current_size -= extent.get_length();
intrusive_ptr_release(&extent);
}
public:
LRU(size_t capacity) : capacity(capacity) {}
- size_t get_capacity() const {
+ size_t get_capacity_bytes() const {
return capacity;
}
- size_t get_current_contents_bytes() const {
- return contents;
+ size_t get_current_size_bytes() const {
+ return current_size;
}
- size_t get_current_contents_extents() const {
+ size_t get_current_num_extents() const {
return lru.size();
}
if (extent.primary_ref_list_hook.is_linked()) {
// present, move to top (back)
assert(lru.size() > 0);
- assert(contents >= extent.get_length());
+ assert(current_size >= extent.get_length());
lru.erase(lru.s_iterator_to(extent));
lru.push_back(extent);
} else {
// absent, add to top (back)
- contents += extent.get_length();
+ current_size += extent.get_length();
intrusive_ptr_add_ref(&extent);
lru.push_back(extent);
// trim to capacity
- while (contents > capacity) {
+ while (current_size > capacity) {
do_remove_from_lru(lru.front());
}
}