summaryrefslogtreecommitdiffstats
path: root/benchmarks
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2024-12-23 11:59:52 -0500
committerDouglas Rumbaugh <dbr4@psu.edu>2024-12-23 11:59:52 -0500
commitf57aa6aee34c5eccd296fbe6b655075c682e97ca (patch)
tree24a33e247bb7786fbc6685e2bace84124e0d2d09 /benchmarks
parent2724b98da8699af150e850e66e92e0a832cd2e29 (diff)
downloaddynamic-extension-f57aa6aee34c5eccd296fbe6b655075c682e97ca.tar.gz
Began migrating benchmarks over to new interface
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/include/standard_benchmarks.h22
-rw-r--r--benchmarks/vldb/fst_bench.cpp5
-rw-r--r--benchmarks/vldb/fst_bsm_bench.cpp5
-rw-r--r--benchmarks/vldb/irs_bench.cpp5
-rw-r--r--benchmarks/vldb/pgm_bench.cpp5
-rw-r--r--benchmarks/vldb/thread_scaling_bench.cpp9
-rw-r--r--benchmarks/vldb/ts_bench.cpp5
-rw-r--r--benchmarks/vldb/ts_bsm_bench.cpp6
-rw-r--r--benchmarks/vldb/ts_parmsweep.cpp4
-rw-r--r--benchmarks/vldb/vptree_bench.cpp5
-rw-r--r--benchmarks/vldb/vptree_bench_alt.cpp6
-rw-r--r--benchmarks/vldb/vptree_bsm_bench.cpp5
-rw-r--r--benchmarks/vldb/vptree_bsm_bench_alt.cpp5
-rw-r--r--benchmarks/vldb/vptree_parmsweep.cpp4
14 files changed, 61 insertions, 30 deletions
diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h
index d3408c1..dfa6513 100644
--- a/benchmarks/include/standard_benchmarks.h
+++ b/benchmarks/include/standard_benchmarks.h
@@ -19,11 +19,29 @@
#include "benchmark_types.h"
#include "psu-util/bentley-saxe.h"
#include "shard/ISAMTree.h"
+#include "framework/reconstruction/LevelingPolicy.h"
+#include "framework/reconstruction/TieringPolicy.h"
+#include "framework/reconstruction/BSMPolicy.h"
+constexpr double delete_proportion = 0.05;
static size_t g_deleted_records = 0;
-static double delete_proportion = 0.5;
+static size_t total = 0;
+
+template<de::ShardInterface S, de::QueryInterface<S> Q>
+de::ReconstructionPolicy<S, Q> *get_policy(size_t scale_factor, size_t buffer_size, int policy=0) {
+
+ de::ReconstructionPolicy<S, Q> *recon = nullptr;
+
+ if (policy == 0) {
+ recon = new de::TieringPolicy<S,Q>(scale_factor, buffer_size);
+ } else if (policy == 1) {
+ recon = new de::LevelingPolicy<S, Q>(scale_factor, buffer_size);
+ } else if (policy == 2) {
+ recon = new de::BSMPolicy<S, Q>(buffer_size);
+ }
-static volatile size_t total = 0;
+ return recon;
+}
template<typename DE, typename Q, bool BSM=false>
static void run_queries(DE *extension, std::vector<typename Q::Parameters> &queries) {
diff --git a/benchmarks/vldb/fst_bench.cpp b/benchmarks/vldb/fst_bench.cpp
index fb5ed59..9e3a62e 100644
--- a/benchmarks/vldb/fst_bench.cpp
+++ b/benchmarks/vldb/fst_bench.cpp
@@ -20,7 +20,7 @@
typedef de::Record<const char *, uint64_t> Rec;
typedef de::FSTrie<Rec> Shard;
typedef de::pl::Query<Shard> Q;
-typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
typedef Q::Parameters QP;
void usage(char *progname) {
@@ -37,7 +37,8 @@ int main(int argc, char **argv) {
size_t n = atol(argv[1]);
std::string d_fname = std::string(argv[2]);
- auto extension = new Ext(12000, 12001, 8, 0, 64);
+ auto policy = get_policy<Shard, Q>(8, 12000);
+ auto extension = new Ext(policy, 12000);
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
auto strings = read_string_file(d_fname, n);
diff --git a/benchmarks/vldb/fst_bsm_bench.cpp b/benchmarks/vldb/fst_bsm_bench.cpp
index c1e6d17..47b3ed9 100644
--- a/benchmarks/vldb/fst_bsm_bench.cpp
+++ b/benchmarks/vldb/fst_bsm_bench.cpp
@@ -20,7 +20,7 @@
typedef de::Record<const char *, uint64_t> Rec;
typedef de::FSTrie<Rec> Shard;
typedef de::pl::Query<Shard> Q;
-typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::BSM, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
typedef Q::Parameters QP;
void usage(char *progname) {
@@ -37,7 +37,8 @@ int main(int argc, char **argv) {
size_t n = atol(argv[1]);
std::string d_fname = std::string(argv[2]);
- auto extension = new Ext(1, 12001, 2, 0, 64);
+ auto policy = get_policy<Shard, Q>(2, 1, 3);
+ auto extension = new Ext(policy, 1);
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
auto strings = read_string_file(d_fname, n);
diff --git a/benchmarks/vldb/irs_bench.cpp b/benchmarks/vldb/irs_bench.cpp
index a772326..7cbccd1 100644
--- a/benchmarks/vldb/irs_bench.cpp
+++ b/benchmarks/vldb/irs_bench.cpp
@@ -19,7 +19,7 @@
typedef de::Record<uint64_t, uint64_t> Rec;
typedef de::ISAMTree<Rec> Shard;
typedef de::irs::Query<Shard> Q;
-typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
typedef Q::Parameters QP;
void usage(char *progname) {
@@ -37,7 +37,8 @@ int main(int argc, char **argv) {
std::string d_fname = std::string(argv[2]);
std::string q_fname = std::string(argv[3]);
- auto extension = new Ext(12000, 12001, 8, 0, 64);
+ auto policy = get_policy<Shard, Q>(12000, 8);
+ auto extension = new Ext(policy, 12000);
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
auto data = read_sosd_file<Rec>(d_fname, n);
diff --git a/benchmarks/vldb/pgm_bench.cpp b/benchmarks/vldb/pgm_bench.cpp
index 3b4340b..b5f9206 100644
--- a/benchmarks/vldb/pgm_bench.cpp
+++ b/benchmarks/vldb/pgm_bench.cpp
@@ -21,7 +21,7 @@
typedef de::Record<uint64_t, uint64_t> Rec;
typedef de::PGM<Rec> Shard;
typedef de::rc::Query<Shard> Q;
-typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
typedef Q::Parameters QP;
void usage(char *progname) {
@@ -39,7 +39,8 @@ int main(int argc, char **argv) {
std::string d_fname = std::string(argv[2]);
std::string q_fname = std::string(argv[3]);
- auto extension = new Ext(12000, 12001, 8, 0, 64);
+ auto policy = get_policy<Shard, Q>(12000, 8);
+ auto extension = new Ext(policy, 12000);
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
auto data = read_sosd_file<Rec>(d_fname, n);
diff --git a/benchmarks/vldb/thread_scaling_bench.cpp b/benchmarks/vldb/thread_scaling_bench.cpp
index 3b9311b..315ad41 100644
--- a/benchmarks/vldb/thread_scaling_bench.cpp
+++ b/benchmarks/vldb/thread_scaling_bench.cpp
@@ -19,9 +19,9 @@
typedef de::Record<int64_t, int64_t> Rec;
-typedef de::ISAMTree<Rec> ISAM;
-typedef de::irs::Query<ISAM> Q;
-typedef de::DynamicExtension<ISAM, Q> Ext;
+typedef de::ISAMTree<Rec> Shard;
+typedef de::irs::Query<Shard> Q;
+typedef de::DynamicExtension<Shard, Q> Ext;
typedef Q::Parameters QP;
std::atomic<bool> inserts_done = false;
@@ -73,7 +73,8 @@ int main(int argc, char **argv) {
std::string d_fname = std::string(argv[4]);
std::string q_fname = std::string(argv[5]);
- auto extension = new Ext(1000, 12000, 8, 0, 64);
+ auto policy = get_policy<Shard, Q>(12000, 8);
+ auto extension = new Ext(policy, 1000, 12000, 8, 0, 64);
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
auto data = read_sosd_file<Rec>(d_fname, n);
diff --git a/benchmarks/vldb/ts_bench.cpp b/benchmarks/vldb/ts_bench.cpp
index 1bc75b6..61d813c 100644
--- a/benchmarks/vldb/ts_bench.cpp
+++ b/benchmarks/vldb/ts_bench.cpp
@@ -22,7 +22,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::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
typedef Q::Parameters QP;
void usage(char *progname) {
@@ -40,7 +40,8 @@ int main(int argc, char **argv) {
std::string d_fname = std::string(argv[2]);
std::string q_fname = std::string(argv[3]);
- auto extension = new Ext(8000, 12001, 8, 0, 64);
+ auto policy = get_policy<Shard, Q>(8000, 8);
+ auto extension = new Ext(policy, 8000);
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
auto data = read_sosd_file<Rec>(d_fname, n);
diff --git a/benchmarks/vldb/ts_bsm_bench.cpp b/benchmarks/vldb/ts_bsm_bench.cpp
index 5bcfb5d..f5ad931 100644
--- a/benchmarks/vldb/ts_bsm_bench.cpp
+++ b/benchmarks/vldb/ts_bsm_bench.cpp
@@ -22,7 +22,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::LayoutPolicy::BSM, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
typedef Q::Parameters QP;
void usage(char *progname) {
@@ -40,7 +40,9 @@ int main(int argc, char **argv) {
std::string d_fname = std::string(argv[2]);
std::string q_fname = std::string(argv[3]);
- auto extension = new Ext(1, 12001, 2, 0, 64);
+ auto policy = get_policy<Shard, Q>(1, 2, 3);
+ auto extension = new Ext(policy, 1);
+
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
auto data = read_sosd_file<Rec>(d_fname, n);
diff --git a/benchmarks/vldb/ts_parmsweep.cpp b/benchmarks/vldb/ts_parmsweep.cpp
index 0141c53..10a9f14 100644
--- a/benchmarks/vldb/ts_parmsweep.cpp
+++ b/benchmarks/vldb/ts_parmsweep.cpp
@@ -19,8 +19,8 @@
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::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
-typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::LEVELING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext2;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext2;
typedef Q::Parameters QP;
void usage(char *progname) {
diff --git a/benchmarks/vldb/vptree_bench.cpp b/benchmarks/vldb/vptree_bench.cpp
index 417e3af..b75b5c2 100644
--- a/benchmarks/vldb/vptree_bench.cpp
+++ b/benchmarks/vldb/vptree_bench.cpp
@@ -20,7 +20,7 @@ typedef Word2VecRec Rec;
typedef de::VPTree<Rec, 100, true> Shard;
typedef de::knn::Query<Shard> Q;
-typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
typedef Q::Parameters QP;
void usage(char *progname) {
@@ -38,7 +38,8 @@ int main(int argc, char **argv) {
std::string d_fname = std::string(argv[2]);
std::string q_fname = std::string(argv[3]);
- auto extension = new Ext(1400, 1400, 8, 0, 64);
+ auto policy = get_policy<Shard, Q>(1400, 8);
+ auto extension = new Ext(policy, 1400);
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
fprintf(stderr, "[I] Reading data file...\n");
diff --git a/benchmarks/vldb/vptree_bench_alt.cpp b/benchmarks/vldb/vptree_bench_alt.cpp
index 5279f68..05c9720 100644
--- a/benchmarks/vldb/vptree_bench_alt.cpp
+++ b/benchmarks/vldb/vptree_bench_alt.cpp
@@ -20,7 +20,7 @@ typedef ANNRec Rec;
typedef de::VPTree<Rec, 100, true> Shard;
typedef de::knn::Query<Shard> Q;
-typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
typedef Q::Parameters QP;
void usage(char *progname) {
@@ -38,7 +38,9 @@ int main(int argc, char **argv) {
std::string d_fname = std::string(argv[2]);
std::string q_fname = std::string(argv[3]);
- auto extension = new Ext(1400, 1400, 8, 0, 64);
+ auto policy = get_policy<Shard, Q>(1400, 8);
+ auto extension = new Ext(policy, 1400);
+
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
fprintf(stderr, "[I] Reading data file...\n");
diff --git a/benchmarks/vldb/vptree_bsm_bench.cpp b/benchmarks/vldb/vptree_bsm_bench.cpp
index d0d963c..d366c46 100644
--- a/benchmarks/vldb/vptree_bsm_bench.cpp
+++ b/benchmarks/vldb/vptree_bsm_bench.cpp
@@ -21,7 +21,7 @@ typedef Word2VecRec Rec;
typedef de::VPTree<Rec, 100, true> Shard;
typedef de::knn::Query<Shard> Q;
-typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::BSM, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
typedef Q::Parameters QP;
void usage(char *progname) {
@@ -39,7 +39,8 @@ int main(int argc, char **argv) {
std::string d_fname = std::string(argv[2]);
std::string q_fname = std::string(argv[3]);
- auto extension = new Ext(1, 1400, 2, 0, 64);
+ auto policy = get_policy<Shard, Q>(1, 2, 3);
+ auto extension = new Ext(policy, 1, 0, 64);
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
fprintf(stderr, "[I] Reading data file...\n");
diff --git a/benchmarks/vldb/vptree_bsm_bench_alt.cpp b/benchmarks/vldb/vptree_bsm_bench_alt.cpp
index b4956a2..cf79447 100644
--- a/benchmarks/vldb/vptree_bsm_bench_alt.cpp
+++ b/benchmarks/vldb/vptree_bsm_bench_alt.cpp
@@ -20,7 +20,7 @@ typedef ANNRec Rec;
typedef de::VPTree<Rec, 100, true> Shard;
typedef de::knn::Query<Shard> Q;
-typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::BSM, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
typedef Q::Parameters QP;
void usage(char *progname) {
@@ -38,7 +38,8 @@ int main(int argc, char **argv) {
std::string d_fname = std::string(argv[2]);
std::string q_fname = std::string(argv[3]);
- auto extension = new Ext(1, 1400, 2, 0, 64);
+ auto policy = get_policy<Shard, Q>(1, 2, 3);
+ auto extension = new Ext(policy, 1);
gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
fprintf(stderr, "[I] Reading data file...\n");
diff --git a/benchmarks/vldb/vptree_parmsweep.cpp b/benchmarks/vldb/vptree_parmsweep.cpp
index 5e496d4..9072463 100644
--- a/benchmarks/vldb/vptree_parmsweep.cpp
+++ b/benchmarks/vldb/vptree_parmsweep.cpp
@@ -20,8 +20,8 @@ typedef Word2VecRec Rec;
typedef de::VPTree<Rec, 100, true> Shard;
typedef de::knn::Query<Shard> Q;
-typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
-typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::LEVELING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext2;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
+typedef de::DynamicExtension<Shard, Q, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext2;
typedef Q::Parameters QP;
void usage(char *progname) {