summaryrefslogtreecommitdiffstats
path: root/benchmarks/tail-latency/knn_query_parm_sweep.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/tail-latency/knn_query_parm_sweep.cpp')
-rw-r--r--benchmarks/tail-latency/knn_query_parm_sweep.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/benchmarks/tail-latency/knn_query_parm_sweep.cpp b/benchmarks/tail-latency/knn_query_parm_sweep.cpp
index dfd713d..dcbe7cf 100644
--- a/benchmarks/tail-latency/knn_query_parm_sweep.cpp
+++ b/benchmarks/tail-latency/knn_query_parm_sweep.cpp
@@ -105,28 +105,30 @@ int main(int argc, char **argv) {
//auto queries =read_sosd_point_lookups<QP>(q_fname, 1);
auto data = read_vector_file<Rec, W2V_SIZE>(d_fname, n);
- auto queries = read_knn_queries<QP>(q_fname, 15, 1);
+ auto queries = read_knn_queries<QP>(q_fname, 100, 1);
- size_t buffer_size = 8000;
- std::vector<size_t> policies = {0};
+ std::vector<size_t> buffer_sizes = {100, 500, 1000, 10000};
+ std::vector<size_t> policies = {0, 1, 2};
std::vector<size_t> thread_counts = {8};
std::vector<double> modifiers = {0};
- std::vector<size_t> scale_factors = {2, 4, 6, 8, 10};
+ std::vector<size_t> scale_factors = {2, 8};
size_t insert_threads = 1;
size_t query_threads = 1;
reccnt = n;
+ for (auto bs : buffer_sizes) {
for (auto pol : policies) {
for (auto internal_thread_cnt : thread_counts) {
for (auto mod : modifiers) {
for (auto sf : scale_factors) {
- auto policy = get_policy<Shard, Q>(sf, buffer_size, pol, n, mod);
+ auto policy = get_policy<Shard, Q>(sf, bs, pol, n, mod);
auto config = Conf(std::move(policy));
config.recon_enable_maint_on_flush = true;
config.recon_maint_disabled = false;
+ config.buffer_size = bs;
config.buffer_flush_trigger = config.buffer_size;
config.maximum_threads = internal_thread_cnt;
@@ -171,14 +173,14 @@ int main(int argc, char **argv) {
extension->await_version();
/* run some queries to "warm up" the cache */
- for (size_t i=0; i<queries.size()*2; i++) {
+ for (size_t i=0; i<queries.size()*5; i++) {
auto q_idx = i % queries.size();
auto q = queries[q_idx];
auto res = extension->query(std::move(q)).get();
total_res.fetch_add(res.size());
}
- total_query_count.store(100000);
+ total_query_count.store(5000);
TIMER_INIT();
TIMER_START();
for (size_t i=0; i<total_query_count; i++) {
@@ -200,7 +202,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();
+ //extension->print_scheduler_statistics();
//extension->print_scheduler_query_data();
//extension->print_structure();
fflush(stdout);
@@ -212,6 +214,7 @@ int main(int argc, char **argv) {
}
}
}
+ }
fflush(stderr);
}