0
0
Fork 0
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:
Jason Volk 2019-09-18 22:11:00 -07:00
parent 8e116e3578
commit dc5a335968
2 changed files with 18 additions and 4 deletions

View file

@ -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 &);

View file

@ -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),