mirror of
https://github.com/matrix-construct/construct
synced 2024-06-02 18:18:56 +02:00
ircd::db::prefetcher: Add fetched byte counters; accumulated timers.
This commit is contained in:
parent
8e116e3578
commit
dc5a335968
|
@ -24,6 +24,7 @@ struct ircd::db::prefetcher
|
|||
ctx::dock dock;
|
||||
std::deque<request> queue;
|
||||
ctx::context context;
|
||||
size_t cache_hits {0};
|
||||
size_t request_workers {0};
|
||||
size_t request_counter {0};
|
||||
size_t directs_counter {0};
|
||||
|
@ -32,7 +33,10 @@ struct ircd::db::prefetcher
|
|||
size_t fetches_counter {0};
|
||||
size_t fetched_counter {0};
|
||||
size_t cancels_counter {0};
|
||||
size_t cache_hits {0};
|
||||
size_t fetched_bytes_key {0};
|
||||
size_t fetched_bytes_val {0};
|
||||
microseconds total_snd_req {0us};
|
||||
microseconds total_req_fin {0us};
|
||||
|
||||
size_t wait_pending();
|
||||
void request_handle(request &);
|
||||
|
|
16
ircd/db.cc
16
ircd/db.cc
|
@ -4029,8 +4029,10 @@ ircd::db::prefetcher::request_worker()
|
|||
|
||||
request->req = now<steady_point>();
|
||||
assert(request->fin == steady_point::min());
|
||||
total_snd_req += duration_cast<microseconds>(request->req - request->snd);
|
||||
++fetches_counter;
|
||||
request_handle(*request);
|
||||
assert(request->fin != steady_point::min());
|
||||
++fetched_counter;
|
||||
|
||||
#ifdef IRCD_DB_DEBUG_PREFETCH
|
||||
|
@ -4081,23 +4083,31 @@ try
|
|||
seek(column, key, gopts{})
|
||||
};
|
||||
|
||||
const ctx::critical_assertion ca;
|
||||
request.fin = now<steady_point>();
|
||||
total_req_fin += duration_cast<microseconds>(request.fin - request.req);
|
||||
const bool lte
|
||||
{
|
||||
valid_lte(*it, key)
|
||||
};
|
||||
|
||||
const ctx::critical_assertion ca;
|
||||
request.fin = now<steady_point>();
|
||||
if(likely(lte))
|
||||
{
|
||||
fetched_bytes_key += size(it->key());
|
||||
fetched_bytes_val += size(it->value());
|
||||
}
|
||||
|
||||
#ifdef IRCD_DB_DEBUG_PREFETCH
|
||||
char pbuf[3][32];
|
||||
log::debug
|
||||
{
|
||||
log, "[%s][%s] completed prefetch len:%zu lte:%b snd-req:%s req-fin:%s snd-fin:%s queue:%zu",
|
||||
log, "[%s][%s] completed prefetch len:%zu lte:%b k:%zu v:%zu snd-req:%s req-fin:%s snd-fin:%s queue:%zu",
|
||||
name(*request.d),
|
||||
name(column),
|
||||
size(key),
|
||||
lte,
|
||||
lte? size(it->key()) : 0UL,
|
||||
lte? size(it->value()) : 0UL,
|
||||
pretty(pbuf[0], request.req - request.snd, 1),
|
||||
pretty(pbuf[1], request.fin - request.req, 1),
|
||||
pretty(pbuf[2], request.fin - request.snd, 1),
|
||||
|
|
Loading…
Reference in a new issue