mirror of
https://github.com/matrix-construct/construct
synced 2024-09-27 19:28:52 +02:00
ircd::db: Update pure-virtual requirement in database::stats.
This commit is contained in:
parent
7df3f6b5e6
commit
4f095024ee
1 changed files with 12 additions and 2 deletions
14
ircd/db.cc
14
ircd/db.cc
|
@ -129,6 +129,7 @@ struct database::stats
|
|||
void histogramData(const uint32_t type, rocksdb::HistogramData *) const override;
|
||||
void measureTime(const uint32_t histogramType, const uint64_t time) override;
|
||||
bool HistEnabledForType(const uint32_t type) const override;
|
||||
uint64_t getAndResetTickerCount(const uint32_t tickerType) override;
|
||||
|
||||
stats(database *const &d)
|
||||
:d{d}
|
||||
|
@ -848,6 +849,14 @@ ircd::db::log_rdb_perf_context(const bool &all)
|
|||
log.debug("%s", rocksdb::perf_context.ToString(exclude_zeros));
|
||||
}
|
||||
|
||||
uint64_t
|
||||
ircd::db::database::stats::getAndResetTickerCount(const uint32_t type)
|
||||
{
|
||||
const auto ret(getTickerCount(type));
|
||||
setTickerCount(type, 0);
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool
|
||||
ircd::db::database::stats::HistEnabledForType(const uint32_t type)
|
||||
const
|
||||
|
@ -1653,14 +1662,15 @@ ircd::db::has(column &column,
|
|||
return false;
|
||||
|
||||
// Perform a query to the cache
|
||||
auto status(d.d->Get(opts, c, k, nullptr));
|
||||
static std::string *const null_str_ptr(nullptr);
|
||||
auto status(d.d->Get(opts, c, k, null_str_ptr));
|
||||
if(status.IsIncomplete())
|
||||
{
|
||||
// DB cache miss; next query requires I/O, offload it
|
||||
opts.read_tier = BLOCKING;
|
||||
ctx::offload([&d, &c, &k, &opts, &status]
|
||||
{
|
||||
status = d.d->Get(opts, c, k, nullptr);
|
||||
status = d.d->Get(opts, c, k, null_str_ptr);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue