From 1957b2dd33b244754cd47db05f831a7627b8031e Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 25 Apr 2025 12:28:31 -0400 Subject: Scheduler statistics tracking update The current scheme is really inefficient in terms of retreival of the results, but keeps the critical path mostly clear. It's probably worth it to do a more organized tracking of the data as it comes in, to avoid an n^2 statistics generation step at the end. --- benchmarks/tail-latency/query_parm_sweep.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'benchmarks/tail-latency') diff --git a/benchmarks/tail-latency/query_parm_sweep.cpp b/benchmarks/tail-latency/query_parm_sweep.cpp index 4f11ce0..a91db8c 100644 --- a/benchmarks/tail-latency/query_parm_sweep.cpp +++ b/benchmarks/tail-latency/query_parm_sweep.cpp @@ -29,11 +29,11 @@ typedef de::Record Rec; typedef de::ISAMTree Shard; typedef de::pl::Query Q; typedef de::DynamicExtension + de::FIFOScheduler> Ext; typedef Q::Parameters QP; typedef de::DEConfiguration + de::FIFOScheduler> Conf; std::atomic idx; @@ -103,11 +103,11 @@ int main(int argc, char **argv) { auto queries =read_sosd_point_lookups(q_fname, 100); size_t buffer_size = 8000; - std::vector policies = {0, 1, 2}; + std::vector policies = {0}; std::vector thread_counts = {8}; - std::vector modifiers = {0, .3, .5, .8}; - std::vector scale_factors = {2, 4, 8}; + std::vector modifiers = {0}; + std::vector scale_factors = {8, 8, 8, 8, 8}; size_t insert_threads = 1; size_t query_threads = 1; @@ -165,11 +165,19 @@ int main(int argc, char **argv) { extension->await_version(); + /* run some queries to "warm up" the cache */ + for (size_t i=0; iquery(std::move(q)).get(); + total_res.fetch_add(res.size()); + } + total_query_count.store(50000); TIMER_INIT(); TIMER_START(); for (size_t i=0; iquery(std::move(q)).get(); total_res.fetch_add(res.size()); @@ -187,6 +195,7 @@ int main(int argc, char **argv) { fprintf(stdout, "%ld\t%ld\t%ld\t%lf\t%ld\t%ld\t%ld\t%ld\n", internal_thread_cnt, pol, sf, mod, extension->get_height(), extension->get_shard_count(), insert_tput, query_lat); + extension->print_scheduler_statistics(); fflush(stdout); total_res.store(0); -- cgit v1.2.3