0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-09-26 18:38:52 +02:00

ircd:Ⓜ️:vm: Additional stats; instrumentation around write txn.

This commit is contained in:
Jason Volk 2021-02-01 03:03:28 -08:00
parent c388361041
commit e0f7c431cb

View file

@ -1144,6 +1144,26 @@ ircd::m::vm::retire(eval &eval,
sequence::retired = retire;
}
namespace ircd::m::vm
{
[[gnu::visibility("internal")]]
extern stats::item<uint64_t>
write_commit_count,
write_commit_cycles;
}
decltype(ircd::m::vm::write_commit_cycles)
ircd::m::vm::write_commit_cycles
{
{ "name", "ircd.m.vm.write_commit.cycles" },
};
decltype(ircd::m::vm::write_commit_count)
ircd::m::vm::write_commit_count
{
{ "name", "ircd.m.vm.write_commit.count" },
};
void
ircd::m::vm::write_commit(eval &eval)
{
@ -1154,26 +1174,47 @@ ircd::m::vm::write_commit(eval &eval)
*eval.txn
};
#ifdef RB_DEBUG
const auto db_seq_before(db::sequence(*m::dbs::events));
#endif
const auto db_seq_before
{
#ifdef RB_DEBUG
db::sequence(*m::dbs::events)
#else
0UL
#endif
};
txn();
const uint64_t cyc_before {write_commit_cycles};
{
const prof::scope_cycles cycles
{
write_commit_cycles
};
#ifdef RB_DEBUG
const auto db_seq_after(db::sequence(*m::dbs::events));
txn();
}
++write_commit_count;
const auto db_seq_after
{
#ifdef RB_DEBUG
db::sequence(*m::dbs::events)
#else
0UL
#endif
};
log::debug
{
log, "%s wrote %lu | db seq %lu:%lu %zu cells in %zu bytes to events database ...",
log, "%s wrote %lu | db seq:%lu:%lu txn:%lu cells:%zu in bytes:%zu cycles:%lu to events database",
loghead(eval),
sequence::get(eval),
db_seq_before,
db_seq_after,
uint64_t(write_commit_count),
txn.size(),
txn.bytes()
txn.bytes(),
uint64_t(write_commit_cycles) - cyc_before,
};
#endif
}
void