Cache::~Cache()
{
LOG_PREFIX(Cache::~Cache);
- for (auto &i: extents) {
+ for (auto &i: extents_index) {
ERROR("extent is still alive -- {}", i);
}
- ceph_assert(extents.empty());
+ ceph_assert(extents_index.empty());
}
// TODO: this method can probably be removed in the future
{
LOG_PREFIX(Cache::dump_contents);
DEBUG("enter");
- for (auto &&i: extents) {
+ for (auto &&i: extents_index) {
DEBUG("live {}", i);
}
DEBUG("exit");
sm::make_counter(
"cached_extents",
[this] {
- return extents.size();
+ return extents_index.size();
},
sm::description("total number of cached extents")
),
sm::make_counter(
"cached_extent_bytes",
[this] {
- return extents.get_bytes();
+ return extents_index.get_bytes();
},
sm::description("total bytes of cached extents")
),
assert(ref->is_valid());
assert(ref->user_hint == PLACEMENT_HINT_NULL);
assert(ref->rewrite_generation == NULL_GENERATION);
- extents.insert(*ref);
+ extents_index.insert(*ref);
}
void Cache::mark_dirty(CachedExtentRef ref)
} else if (!ref->is_placeholder()) {
lru.remove_from_lru(*ref);
}
- extents.erase(*ref);
+ extents_index.erase(*ref);
}
void Cache::commit_retire_extent(
{
assert(next->get_paddr() == prev->get_paddr());
assert(next->version == prev->version + 1);
- extents.replace(*next, *prev);
+ extents_index.replace(*next, *prev);
const auto t_src = t.get_src();
if (is_root_type(prev->get_type())) {
NULL_GENERATION,
TRANS_ID_NULL);
INFO("init root -- {}", *root);
- extents.insert(*root);
+ extents_index.insert(*root);
}
Cache::mkfs_iertr::future<> Cache::mkfs(Transaction &t)
get_oldest_backref_dirty_from().value_or(JOURNAL_SEQ_NULL),
lru.get_current_num_extents(),
lru.get_current_size_bytes(),
- extents.size(),
- extents.get_bytes());
+ extents_index.size(),
+ extents_index.get_bytes());
root.reset();
clear_dirty();
backref_extents.clear();
<< "ps, dversion="
<< fmt::format(dfmt, _reclaim_rewrites.get_avg_version());
+ oss << "\ncache total"
+ << cache_size_stats_t{extents_index.get_bytes(), extents_index.size()};
+
INFO("{}", oss.str());
last_dirty_io_by_src_ext = stats.dirty_io_by_src_ext;
* - Remove all extents in the retired_set from Cache::extents
* - Mark all extents in the write_set wait_io(), add promises to
* transaction
- * - Merge Transaction::write_set into Cache::extents
+ * - Merge Transaction::write_set into Cache::extents_index
*
* After phase 2, the user will submit the record to the journal.
* Once complete, we perform phase 3:
SUBDEBUG(seastore_cache,
"{} {}~{} is absent(placeholder), reading ... -- {}",
T::TYPE, offset, length, *ret);
- extents.replace(*ret, *cached);
+ extents_index.replace(*ret, *cached);
on_cache(*ret);
// replace placeholder in transactions
SUBINFOT(seastore_cache,
"start with {}({}B) extents, {} dirty, dirty_from={}, alloc_from={}",
t,
- extents.size(),
- extents.get_bytes(),
+ extents_index.size(),
+ extents_index.get_bytes(),
dirty.size(),
get_oldest_dirty_from().value_or(JOURNAL_SEQ_NULL),
get_oldest_backref_dirty_from().value_or(JOURNAL_SEQ_NULL));
// Cache::root should have been inserted to the dirty list
assert(root->is_dirty());
std::vector<CachedExtentRef> _dirty;
- for (auto &e : extents) {
+ for (auto &e : extents_index) {
_dirty.push_back(CachedExtentRef(&e));
}
return seastar::do_with(
SUBINFOT(seastore_cache,
"finish with {}({}B) extents, {} dirty, dirty_from={}, alloc_from={}",
t,
- extents.size(),
- extents.get_bytes(),
+ extents_index.size(),
+ extents_index.get_bytes(),
dirty.size(),
get_oldest_dirty_from().value_or(JOURNAL_SEQ_NULL),
get_oldest_backref_dirty_from().value_or(JOURNAL_SEQ_NULL));
ExtentPlacementManager& epm;
RootBlockRef root; ///< ref to current root
- ExtentIndex extents; ///< set of live extents
+ ExtentIndex extents_index; ///< set of live extents
journal_seq_t last_commit = JOURNAL_SEQ_MIN;
p_counters = &get_by_src(stats.cache_query_by_src, p_metric_key->first);
++p_counters->access;
}
- if (auto iter = extents.find_offset(offset);
- iter != extents.end()) {
+ if (auto iter = extents_index.find_offset(offset);
+ iter != extents_index.end()) {
if (p_metric_key &&
// retired_placeholder is not really cached yet
!is_retired_placeholder_type(iter->get_type())) {