{
sm::make_counter(
"trans_created",
- get_counter(stats.trans_created_by_src, src),
+ get_by_src(stats.trans_created_by_src, src),
sm::description(oss_desc.str()),
{labels_by_src.find(src)->second}
),
{
sm::make_counter(
"trans_committed",
- get_counter(stats.trans_committed_by_src, src),
+ get_by_src(stats.trans_committed_by_src, src),
sm::description(oss_desc.str()),
{labels_by_src.find(src)->second}
),
{
sm::make_counter(
"cache_access",
- get_counter(stats.cache_query_by_src, src).access,
+ get_by_src(stats.cache_query_by_src, src).access,
sm::description("total number of cache accesses"),
{src_label}
),
sm::make_counter(
"cache_hit",
- get_counter(stats.cache_query_by_src, src).hit,
+ get_by_src(stats.cache_query_by_src, src).hit,
sm::description("total number of cache hits"),
{src_label}
),
// register src_t::READ later
continue;
}
- auto& efforts = get_counter(stats.invalidated_efforts_by_src, src);
+ auto& efforts = get_by_src(stats.invalidated_efforts_by_src, src);
efforts = {};
for (auto& [effort_name, effort_label] : labels_by_effort) {
auto& effort = efforts.get_by_name(effort_name);
// read transaction won't have non-read efforts
auto read_src_label = labels_by_src.find(src_t::READ)->second;
auto read_effort_label = labels_by_effort.find("READ")->second;
- auto& read_efforts = get_counter(stats.invalidated_efforts_by_src, src_t::READ);
+ auto& read_efforts = get_by_src(stats.invalidated_efforts_by_src, src_t::READ);
read_efforts = {};
metrics.add_group(
"cache",
// READ transaction won't commit
continue;
}
- auto& efforts = get_counter(stats.committed_efforts_by_src, src);
+ auto& efforts = get_by_src(stats.committed_efforts_by_src, src);
for (auto& [effort_name, effort_label] : labels_by_effort) {
auto& effort_by_ext = [&efforts, &effort_name]()
-> std::array<effort_t, EXTENT_TYPES_MAX>& {
assert(stats.trans_invalidated.count(m_key));
++(stats.trans_invalidated[m_key]);
- auto& efforts = get_counter(stats.invalidated_efforts_by_src,
- t.get_src());
+ auto& efforts = get_by_src(stats.invalidated_efforts_by_src,
+ t.get_src());
efforts.read.extents += t.read_set.size();
for (auto &i: t.read_set) {
efforts.read.bytes += i.ref->get_length();
assert(!t.is_weak());
assert(t.get_src() != Transaction::src_t::READ);
- ++(get_counter(stats.trans_committed_by_src, t.get_src()));
- auto& efforts = get_counter(stats.committed_efforts_by_src,
- t.get_src());
+ ++(get_by_src(stats.trans_committed_by_src, t.get_src()));
+ auto& efforts = get_by_src(stats.committed_efforts_by_src,
+ t.get_src());
// Should be valid due to interruptible future
for (auto &i: t.read_set) {
Transaction::src_t src) {
LOG_PREFIX(Cache::create_transaction);
- ++(get_counter(stats.trans_created_by_src, src));
+ ++(get_by_src(stats.trans_created_by_src, src));
auto ret = std::make_unique<Transaction>(
get_dummy_ordering_handle(),
Transaction::src_t src) {
LOG_PREFIX(Cache::create_weak_transaction);
- ++(get_counter(stats.trans_created_by_src, src));
+ ++(get_by_src(stats.trans_created_by_src, src));
auto ret = std::make_unique<Transaction>(
get_dummy_ordering_handle(),
void reset_transaction_preserve_handle(Transaction &t) {
LOG_PREFIX(Cache::reset_transaction_preserve_handle);
if (t.did_reset()) {
- ++(get_counter(stats.trans_created_by_src, t.get_src()));
+ ++(get_by_src(stats.trans_created_by_src, t.get_src()));
}
t.reset_preserve_handle(last_commit);
DEBUGT("reset", t);
} stats;
template <typename CounterT>
- CounterT& get_counter(
+ CounterT& get_by_src(
std::array<CounterT, Transaction::SRC_MAX>& counters_by_src,
Transaction::src_t src) {
assert(static_cast<std::size_t>(src) < counters_by_src.size());
const src_ext_t* p_metric_key) {
query_counters_t* p_counters = nullptr;
if (p_metric_key) {
- p_counters = &get_counter(stats.cache_query_by_src, p_metric_key->first);
+ p_counters = &get_by_src(stats.cache_query_by_src, p_metric_key->first);
++p_counters->access;
}
if (auto iter = extents.find_offset(offset);