summaryrefslogtreecommitdiffstats
path: root/benchmarks/tail-latency/config_sweep.cpp
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2025-01-16 13:18:37 -0500
committerDouglas Rumbaugh <dbr4@psu.edu>2025-01-16 13:18:37 -0500
commit77589d4cc82b766d2cf16294fab98a57f6579cb4 (patch)
tree0cc136d13c20021e0278b8b2ededf2652c27a84e /benchmarks/tail-latency/config_sweep.cpp
parentbac86504220da4c169089a3a1803e0a21f5acbc2 (diff)
downloaddynamic-extension-77589d4cc82b766d2cf16294fab98a57f6579cb4.tar.gz
Additional layout policies + more flexibility in buffer flushing
Diffstat (limited to 'benchmarks/tail-latency/config_sweep.cpp')
-rw-r--r--benchmarks/tail-latency/config_sweep.cpp49
1 files changed, 21 insertions, 28 deletions
diff --git a/benchmarks/tail-latency/config_sweep.cpp b/benchmarks/tail-latency/config_sweep.cpp
index ef84aa7..d973ee5 100644
--- a/benchmarks/tail-latency/config_sweep.cpp
+++ b/benchmarks/tail-latency/config_sweep.cpp
@@ -2,6 +2,7 @@
*
*/
+#include "framework/scheduling/FIFOScheduler.h"
#define ENABLE_TIMER
#define TS_TEST
@@ -22,7 +23,7 @@
typedef de::Record<uint64_t, uint64_t> Rec;
typedef de::TrieSpline<Rec> Shard;
typedef de::rc::Query<Shard> Q;
-typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TOMBSTONE, de::FIFOScheduler> Ext;
typedef Q::Parameters QP;
void usage(char *progname) {
@@ -44,15 +45,15 @@ int main(int argc, char **argv) {
auto data = read_sosd_file<Rec>(d_fname, n);
auto queries = read_range_queries<QP>(q_fname, .0001);
- std::vector<int> policies = {0, 1};
- std::vector<size_t> buffers = {4000, 8000, 12000, 16000, 20000};
- std::vector<size_t> sfs = {2, 4, 6, 8, 12};
+ std::vector<int> policies = {3};
+ std::vector<size_t> buffers = {8000, 16000, 32000};
+ std::vector<size_t> sfs = {8};
for (size_t l=0; l<policies.size(); l++) {
for (size_t j=0; j<buffers.size(); j++) {
for (size_t k=0; k<sfs.size(); k++) {
auto policy = get_policy<Shard, Q>(sfs[k], buffers[j], policies[l]);
- auto extension = new Ext(policy, 8000);
+ auto extension = new Ext(policy, buffers[j]/4, buffers[j]);
/* warmup structure w/ 10% of records */
size_t warmup = .1 * n;
@@ -73,8 +74,23 @@ int main(int argc, char **argv) {
}
TIMER_STOP();
+ //fprintf(stdout, "%ld\t%ld\t%d\t%ld\n", sfs[k], buffers[j], policies[l], TIMER_RESULT());
+ }
+
+ extension->await_next_epoch();
+
+ /* repeat the queries a bunch of times */
+ for (size_t l=0; l<10; l++) {
+ for (size_t i=0; i<queries.size(); i++) {
+ TIMER_START();
+ auto q = queries[i];
+ auto res = extension->query(std::move(q));
+ res.get();
+ TIMER_STOP();
+
fprintf(stdout, "%ld\t%ld\t%d\t%ld\n", sfs[k], buffers[j], policies[l], TIMER_RESULT());
}
+ }
QP p = {0, 10000};
@@ -85,29 +101,6 @@ int main(int argc, char **argv) {
delete extension;
}}}
- /*
- std::vector<int64_t> query_latencies;
- query_latencies.reserve(queries.size());
- for (size_t i=warmup; i<data.size(); i++) {
- TIMER_START();
- auto q = queries[i];
- auto res = extension->query(std::move(q));
- res.get();
- TIMER_STOP();
-
- query_latencies.push_back(TIMER_RESULT());
- }
-
- printf("here\n");
-
- for (size_t i=0; i<insert_latencies.size(); i++) {
- fprintf(stdout, "I\t%ld\n", insert_latencies[i]);
- }
-
- for (size_t i=0; i<query_latencies.size(); i++) {
- fprintf(stdout, "Q\t%ld\n", query_latencies[i]);
- }
- */
fflush(stderr);
}