summaryrefslogtreecommitdiffstats
path: root/benchmarks
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/include/file_util.h2
-rw-r--r--benchmarks/include/standard_benchmarks.h100
-rw-r--r--benchmarks/vldb/alex_bench.cpp1
-rw-r--r--benchmarks/vldb/btree_bench.cpp6
-rw-r--r--benchmarks/vldb/btree_thread_scaling_bench.cpp7
-rw-r--r--benchmarks/vldb/dynamic_pgm_bench.cpp8
-rw-r--r--benchmarks/vldb/fst_bench.cpp10
-rw-r--r--benchmarks/vldb/fst_bsm_bench.cpp10
-rw-r--r--benchmarks/vldb/irs_bench.cpp10
-rw-r--r--benchmarks/vldb/mtree_bench.cpp7
-rw-r--r--benchmarks/vldb/mtree_bench_alt.cpp7
-rw-r--r--benchmarks/vldb/pgm_bench.cpp10
-rw-r--r--benchmarks/vldb/thread_scaling_bench.cpp8
-rw-r--r--benchmarks/vldb/ts_bench.cpp10
-rw-r--r--benchmarks/vldb/ts_bsm_bench.cpp10
-rw-r--r--benchmarks/vldb/ts_mdsp_bench.cpp70
-rw-r--r--benchmarks/vldb/ts_parmsweep.cpp12
-rw-r--r--benchmarks/vldb/vptree_bench.cpp10
-rw-r--r--benchmarks/vldb/vptree_bench_alt.cpp10
-rw-r--r--benchmarks/vldb/vptree_bsm_bench.cpp11
-rw-r--r--benchmarks/vldb/vptree_bsm_bench_alt.cpp8
-rw-r--r--benchmarks/vldb/vptree_parmsweep.cpp12
22 files changed, 113 insertions, 226 deletions
diff --git a/benchmarks/include/file_util.h b/benchmarks/include/file_util.h
index 41eb18c..1a40a78 100644
--- a/benchmarks/include/file_util.h
+++ b/benchmarks/include/file_util.h
@@ -269,7 +269,7 @@ static std::vector<R> read_binary_vector_file(std::string &fname, size_t n) {
return records;
}
-static std::vector<std::unique_ptr<char[]>>read_string_file(std::string fname, size_t n=10000000) {
+[[maybe_unused]] static std::vector<std::unique_ptr<char[]>>read_string_file(std::string fname, size_t n=10000000) {
std::fstream file;
file.open(fname, std::ios::in);
diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h
index b805c08..797b0c5 100644
--- a/benchmarks/include/standard_benchmarks.h
+++ b/benchmarks/include/standard_benchmarks.h
@@ -18,25 +18,15 @@
#include "psu-util/progress.h"
#include "benchmark_types.h"
#include "psu-util/bentley-saxe.h"
+#include "shard/ISAMTree.h"
static size_t g_deleted_records = 0;
-static double delete_proportion = 0.05;
+static double delete_proportion = 0.5;
static volatile size_t total = 0;
-template<typename DE, typename QP, typename R>
-static void run_queries(DE *extension, DE *ghost, std::vector<QP> &queries) {
- for (size_t i=0; i<queries.size(); i++) {
- std::vector<R> res = extension->query(&queries[i]);
- std::vector<R> negres = ghost->query(&queries[i]);
- auto result = res[0].first - negres[0].first;
- total = result;
- }
-}
-
-
-template<typename DE, typename QP, bool BSM=false>
-static void run_queries(DE *extension, std::vector<QP> &queries) {
+template<typename DE, typename Q, bool BSM=false>
+static void run_queries(DE *extension, std::vector<typename Q::Parameters> &queries) {
for (size_t i=0; i<queries.size(); i++) {
if constexpr (std::is_same_v<MTree, DE>) {
std::vector<Word2VecRec> result;
@@ -72,7 +62,8 @@ static void run_queries(DE *extension, std::vector<QP> &queries) {
++ptr;
}
} else {
- auto res = extension->query(&queries[i]);
+ auto q = queries[i];
+ auto res = extension->query(std::move(q));
if constexpr (!BSM) {
auto result = res.get();
#ifdef BENCH_PRINT_RESULTS
@@ -100,8 +91,8 @@ static void run_queries(DE *extension, std::vector<QP> &queries) {
}
}
-template <typename R>
-static void run_btree_queries(BenchBTree *btree, std::vector<de::irs::Parms<R>> &queries) {
+template <typename R, typename Q>
+static void run_btree_queries(BenchBTree *btree, std::vector<typename Q::Parameters> &queries) {
std::vector<int64_t> sample_set;
sample_set.reserve(queries[0].sample_size);
@@ -111,18 +102,16 @@ static void run_btree_queries(BenchBTree *btree, std::vector<de::irs::Parms<R>>
}
-template<typename S, typename QP, typename Q>
-static void run_static_queries(S *shard, std::vector<QP> &queries) {
+template<typename S, typename Q>
+static void run_static_queries(S *shard, std::vector<typename Q::Parameters> &queries) {
for (size_t i=0; i<queries.size(); i++) {
auto q = &queries[i];
- auto state = Q::get_query_state(shard, q);
-
- std::vector<void*> shards = {shard};
- std::vector<void*> states = {state};
+ std::vector<S *> shards = {shard};
+ std::vector<typename Q::LocalQuery*> local_queries = {Q::local_preproc(shard, q)};
- Q::process_query_states(q, states, nullptr);
- auto res = Q::query(shard, state, q);
+ Q::distribute_query(q, local_queries, nullptr);
+ auto res = Q::local_query(shard, local_queries[0]);
#ifdef BENCH_PRINT_RESULTS
fprintf(stdout, "\n\n");
@@ -136,55 +125,12 @@ static void run_static_queries(S *shard, std::vector<QP> &queries) {
}
}
-
-/*
- * Insert records into a standard Bentley-Saxe extension. Deletes are not
- * supported.
- */
-template<typename DS, typename R, bool MDSP=false>
-static void insert_records(psudb::bsm::BentleySaxe<R, DS, MDSP> *extension,
- size_t start, size_t stop, std::vector<R> &records) {
-
- psudb::progress_update(0, "Insert Progress");
- for (size_t i=start; i<stop; i++) {
- extension->insert(records[i]);
- }
-
- psudb::progress_update(1, "Insert Progress");
-}
-
-
-template<typename DS, typename R, bool MDSP=false>
-static void insert_records(psudb::bsm::BentleySaxe<R, DS, MDSP> *extension,
- psudb::bsm::BentleySaxe<R, DS, MDSP> *ghost,
- size_t start, size_t stop, std::vector<R> &records,
- std::vector<size_t> &to_delete, size_t &delete_idx,
- gsl_rng *rng) {
-
- psudb::progress_update(0, "Insert Progress");
- size_t reccnt = 0;
- for (size_t i=start; i<stop; i++) {
-
- extension->insert(records[i]);
-
- if (gsl_rng_uniform(rng) <= delete_proportion && to_delete[delete_idx] <= i) {
- ghost->insert(records[to_delete[delete_idx]]);
- delete_idx++;
- g_deleted_records++;
- }
-
- }
-
-}
-
-
template<typename DE, typename R>
static void insert_records(DE *structure, size_t start, size_t stop,
std::vector<R> &records, std::vector<size_t> &to_delete,
size_t &delete_idx, bool delete_records, gsl_rng *rng) {
psudb::progress_update(0, "Insert Progress");
- size_t reccnt = 0;
for (size_t i=start; i<stop; i++) {
if constexpr (std::is_same_v<BenchBTree, DE>) {
@@ -302,8 +248,8 @@ static bool insert_tput_bench(DE &de_index, std::fstream &file, size_t insert_cn
return continue_benchmark;
}
-template <typename DE, de::RecordInterface R, typename QP, bool PROGRESS=true>
-static bool query_latency_bench(DE &de_index, std::vector<QP> queries, size_t trial_cnt=1) {
+template <typename DE, typename Q, bool PROGRESS=true>
+static bool query_latency_bench(DE &de_index, std::vector<typename Q::Parameters> queries, size_t trial_cnt=1) {
char progbuf[25];
if constexpr (PROGRESS) {
sprintf(progbuf, "querying:");
@@ -339,8 +285,8 @@ static bool query_latency_bench(DE &de_index, std::vector<QP> queries, size_t tr
}
-template <typename Shard, de::RecordInterface R, typename QP, de::QueryInterface<R, Shard> Q, bool PROGRESS=true>
-static bool static_latency_bench(Shard *shard, std::vector<QP> queries, size_t trial_cnt=100) {
+template <typename Shard, typename Q, bool PROGRESS=true>
+static bool static_latency_bench(Shard *shard, std::vector<typename Q::Parameters> queries, size_t trial_cnt=100) {
char progbuf[25];
if constexpr (PROGRESS) {
sprintf(progbuf, "querying:");
@@ -354,15 +300,15 @@ static bool static_latency_bench(Shard *shard, std::vector<QP> queries, size_t t
psudb::progress_update((double) (i) / (double) trial_cnt, progbuf);
}
- std::vector<void *> states(1);
+ std::vector<typename Q::LocalQuery*> local_queries(1);
auto start = std::chrono::high_resolution_clock::now();
for (size_t j=0; j<queries.size(); j++) {
- states[0] = Q::get_query_state(shard, &queries[j]);
- Q::process_query_states(&queries[j], states, nullptr);
- auto res = Q::query(shard, states[0], &queries[j]);
+ local_queries[0] = Q::local_preproc(shard, &queries[j]);
+ Q::distribute_query(&queries[j], local_queries, nullptr);
+ auto res = Q::local_query(shard, local_queries[0]);
total_results += res.size();
- Q::delete_query_state(states[0]);
+ delete local_queries[0];
}
auto stop = std::chrono::high_resolution_clock::now();
diff --git a/benchmarks/vldb/alex_bench.cpp b/benchmarks/vldb/alex_bench.cpp
index ba687f3..636f576 100644
--- a/benchmarks/vldb/alex_bench.cpp
+++ b/benchmarks/vldb/alex_bench.cpp
@@ -33,7 +33,6 @@ static void insert_records(Alex *structure, size_t start, size_t stop,
size_t &delete_idx, bool delete_records, gsl_rng *rng) {
psudb::progress_update(0, "Insert Progress");
- size_t reccnt = 0;
for (size_t i=start; i<stop; i++) {
structure->insert(records[i].key, records[i].value);
diff --git a/benchmarks/vldb/btree_bench.cpp b/benchmarks/vldb/btree_bench.cpp
index fa72831..dc5142a 100644
--- a/benchmarks/vldb/btree_bench.cpp
+++ b/benchmarks/vldb/btree_bench.cpp
@@ -19,8 +19,8 @@
typedef btree_record<int64_t, int64_t> Rec;
typedef de::ISAMTree<Rec> Shard;
-typedef de::irs::Query<Rec, Shard> Q;
-typedef de::irs::Parms<Rec> QP;
+typedef de::irs::Query<Shard> Q;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -71,7 +71,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_btree_queries<Rec>(&btree, queries);
+ run_btree_queries<Rec, Q>(&btree, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/btree_thread_scaling_bench.cpp b/benchmarks/vldb/btree_thread_scaling_bench.cpp
index 557e966..d33a1f8 100644
--- a/benchmarks/vldb/btree_thread_scaling_bench.cpp
+++ b/benchmarks/vldb/btree_thread_scaling_bench.cpp
@@ -7,6 +7,7 @@
#include <thread>
#include "query/irs.h"
+#include "shard/ISAMTree.h"
#include "benchmark_types.h"
#include "file_util.h"
#include <mutex>
@@ -17,7 +18,10 @@
typedef btree_record<int64_t, int64_t> Rec;
-typedef de::irs::Parms<Rec> QP;
+
+typedef de::ISAMTree<Rec> Shard;
+typedef de::irs::Query<Shard> Q;
+typedef Q::Parameters QP;
std::atomic<bool> inserts_done = false;
@@ -47,7 +51,6 @@ void query_thread(BenchBTree *tree, std::vector<QP> *queries) {
}
void insert_thread(BenchBTree *tree, size_t start, std::vector<Rec> *records) {
- size_t reccnt = 0;
for (size_t i=start; i<records->size(); i++) {
btree_record<int64_t, int64_t> r;
r.key = (*records)[i].key;
diff --git a/benchmarks/vldb/dynamic_pgm_bench.cpp b/benchmarks/vldb/dynamic_pgm_bench.cpp
index 15b130f..9206e40 100644
--- a/benchmarks/vldb/dynamic_pgm_bench.cpp
+++ b/benchmarks/vldb/dynamic_pgm_bench.cpp
@@ -14,9 +14,11 @@
#include "psu-util/timer.h"
-
typedef de::Record<uint64_t, uint64_t> Rec;
-typedef de::rc::Parms<Rec> QP;
+
+typedef de::ISAMTree<Rec> Shard;
+typedef de::rc::Query<Shard> Q;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -62,7 +64,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_queries<PGM, QP>(&pgm, queries);
+ run_queries<PGM, Q>(&pgm, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/fst_bench.cpp b/benchmarks/vldb/fst_bench.cpp
index 276a922..e4b5bf6 100644
--- a/benchmarks/vldb/fst_bench.cpp
+++ b/benchmarks/vldb/fst_bench.cpp
@@ -21,9 +21,9 @@
typedef de::Record<const char *, uint64_t> Rec;
typedef de::FSTrie<Rec> Shard;
-typedef de::pl::Query<Rec, Shard> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
-typedef de::pl::Parms<Rec> QP;
+typedef de::pl::Query<Shard> Q;
+typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile\n", progname);
@@ -75,7 +75,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
@@ -83,7 +83,7 @@ int main(int argc, char **argv) {
auto shard = extension->create_static_structure();
TIMER_START();
- run_static_queries<Shard, QP, Q>(shard, queries);
+ run_static_queries<Shard, Q>(shard, queries);
TIMER_STOP();
auto static_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/fst_bsm_bench.cpp b/benchmarks/vldb/fst_bsm_bench.cpp
index 15a441a..b0be115 100644
--- a/benchmarks/vldb/fst_bsm_bench.cpp
+++ b/benchmarks/vldb/fst_bsm_bench.cpp
@@ -21,9 +21,9 @@
typedef de::Record<const char *, uint64_t> Rec;
typedef de::FSTrie<Rec> Shard;
-typedef de::pl::Query<Rec, Shard> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::BSM, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
-typedef de::pl::Parms<Rec> QP;
+typedef de::pl::Query<Shard> Q;
+typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::BSM, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile\n", progname);
@@ -75,7 +75,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
@@ -83,7 +83,7 @@ int main(int argc, char **argv) {
auto shard = extension->create_static_structure();
TIMER_START();
- run_static_queries<Shard, QP, Q>(shard, queries);
+ run_static_queries<Shard, Q>(shard, queries);
TIMER_STOP();
auto static_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/irs_bench.cpp b/benchmarks/vldb/irs_bench.cpp
index e062e80..a772326 100644
--- a/benchmarks/vldb/irs_bench.cpp
+++ b/benchmarks/vldb/irs_bench.cpp
@@ -18,9 +18,9 @@
typedef de::Record<uint64_t, uint64_t> Rec;
typedef de::ISAMTree<Rec> Shard;
-typedef de::irs::Query<Rec, Shard> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
-typedef de::irs::Parms<Rec> QP;
+typedef de::irs::Query<Shard> Q;
+typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -72,7 +72,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
@@ -80,7 +80,7 @@ int main(int argc, char **argv) {
auto shard = extension->create_static_structure();
TIMER_START();
- run_static_queries<Shard, QP, Q>(shard, queries);
+ run_static_queries<Shard, Q>(shard, queries);
TIMER_STOP();
auto static_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/mtree_bench.cpp b/benchmarks/vldb/mtree_bench.cpp
index cc2f41f..ed107b5 100644
--- a/benchmarks/vldb/mtree_bench.cpp
+++ b/benchmarks/vldb/mtree_bench.cpp
@@ -5,6 +5,7 @@
#define ENABLE_TIMER
#include "query/knn.h"
+#include "shard/VPTree.h"
#include "file_util.h"
#include "standard_benchmarks.h"
@@ -14,7 +15,9 @@
typedef Word2VecRec Rec;
-typedef de::knn::Parms<Rec> QP;
+typedef de::VPTree<Rec, 100, true> Shard;
+typedef de::knn::Query<Shard> Q;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -66,7 +69,7 @@ int main(int argc, char **argv) {
fprintf(stderr, "[I] Running Query Benchmark\n");
TIMER_START();
- run_queries<MTree, QP>(mtree, queries);
+ run_queries<MTree, Q>(mtree, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/mtree_bench_alt.cpp b/benchmarks/vldb/mtree_bench_alt.cpp
index 50c6117..c5ab283 100644
--- a/benchmarks/vldb/mtree_bench_alt.cpp
+++ b/benchmarks/vldb/mtree_bench_alt.cpp
@@ -5,6 +5,7 @@
#define ENABLE_TIMER
#include "query/knn.h"
+#include "shard/VPTree.h"
#include "file_util.h"
#include "standard_benchmarks.h"
@@ -14,7 +15,9 @@
typedef ANNRec Rec;
-typedef de::knn::Parms<Rec> QP;
+typedef de::VPTree<Rec, 100, true> Shard;
+typedef de::knn::Query<Shard> Q;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -66,7 +69,7 @@ int main(int argc, char **argv) {
fprintf(stderr, "[I] Running Query Benchmark\n");
TIMER_START();
- run_queries<MTree_alt, QP>(mtree, queries);
+ run_queries<MTree_alt, Q>(mtree, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/pgm_bench.cpp b/benchmarks/vldb/pgm_bench.cpp
index cec95df..3b4340b 100644
--- a/benchmarks/vldb/pgm_bench.cpp
+++ b/benchmarks/vldb/pgm_bench.cpp
@@ -20,9 +20,9 @@
typedef de::Record<uint64_t, uint64_t> Rec;
typedef de::PGM<Rec> Shard;
-typedef de::rc::Query<Rec, Shard> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
-typedef de::rc::Parms<Rec> QP;
+typedef de::rc::Query<Shard> Q;
+typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -69,7 +69,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
@@ -77,7 +77,7 @@ int main(int argc, char **argv) {
auto shard = extension->create_static_structure();
TIMER_START();
- run_static_queries<Shard, QP, Q>(shard, queries);
+ run_static_queries<Shard, Q>(shard, queries);
TIMER_STOP();
auto static_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/thread_scaling_bench.cpp b/benchmarks/vldb/thread_scaling_bench.cpp
index b679e92..3b9311b 100644
--- a/benchmarks/vldb/thread_scaling_bench.cpp
+++ b/benchmarks/vldb/thread_scaling_bench.cpp
@@ -20,9 +20,9 @@
typedef de::Record<int64_t, int64_t> Rec;
typedef de::ISAMTree<Rec> ISAM;
-typedef de::irs::Query<Rec, ISAM> Q;
-typedef de::DynamicExtension<Rec, ISAM, Q> Ext;
-typedef de::irs::Parms<Rec> QP;
+typedef de::irs::Query<ISAM> Q;
+typedef de::DynamicExtension<ISAM, Q> Ext;
+typedef Q::Parameters QP;
std::atomic<bool> inserts_done = false;
@@ -39,7 +39,7 @@ void query_thread(Ext *extension, std::vector<QP> *queries) {
q.rng = rng;
q.sample_size = 1000;
- auto res = extension->query(&q);
+ auto res = extension->query(std::move(q));
auto r = res.get();
total += r.size();
nanosleep(&delay, nullptr);
diff --git a/benchmarks/vldb/ts_bench.cpp b/benchmarks/vldb/ts_bench.cpp
index 81a430a..1bc75b6 100644
--- a/benchmarks/vldb/ts_bench.cpp
+++ b/benchmarks/vldb/ts_bench.cpp
@@ -21,9 +21,9 @@
typedef de::Record<uint64_t, uint64_t> Rec;
typedef de::TrieSpline<Rec> Shard;
-typedef de::rc::Query<Rec, Shard> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
-typedef de::rc::Parms<Rec> QP;
+typedef de::rc::Query<Shard> Q;
+typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -70,7 +70,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
@@ -78,7 +78,7 @@ int main(int argc, char **argv) {
auto shard = extension->create_static_structure();
TIMER_START();
- run_static_queries<Shard, QP, Q>(shard, queries);
+ run_static_queries<Shard, Q>(shard, queries);
TIMER_STOP();
auto static_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/ts_bsm_bench.cpp b/benchmarks/vldb/ts_bsm_bench.cpp
index 4511350..5bcfb5d 100644
--- a/benchmarks/vldb/ts_bsm_bench.cpp
+++ b/benchmarks/vldb/ts_bsm_bench.cpp
@@ -21,9 +21,9 @@
typedef de::Record<uint64_t, uint64_t> Rec;
typedef de::TrieSpline<Rec> Shard;
-typedef de::rc::Query<Rec, Shard> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::BSM, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
-typedef de::rc::Parms<Rec> QP;
+typedef de::rc::Query<Shard> Q;
+typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::BSM, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -70,7 +70,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
@@ -78,7 +78,7 @@ int main(int argc, char **argv) {
auto shard = extension->create_static_structure();
TIMER_START();
- run_static_queries<Shard, QP, Q>(shard, queries);
+ run_static_queries<Shard, Q>(shard, queries);
TIMER_STOP();
auto static_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/ts_mdsp_bench.cpp b/benchmarks/vldb/ts_mdsp_bench.cpp
deleted file mode 100644
index cc0cd99..0000000
--- a/benchmarks/vldb/ts_mdsp_bench.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- *
- */
-
-#define ENABLE_TIMER
-
-#include <thread>
-
-#include "triespline_bsm.h"
-#include "psu-util/bentley-saxe.h"
-#include "framework/interface/Record.h"
-#include "file_util.h"
-#include "query/rangecount.h"
-#include "psu-util/timer.h"
-#include "standard_benchmarks.h"
-
-typedef std::pair<uint64_t, uint64_t> Rec;
-typedef de::Record<uint64_t, uint64_t> FRec;
-
-typedef BSMTrieSpline<uint64_t, uint64_t> Shard;
-typedef de::rc::Parms<FRec> QP;
-typedef psudb::bsm::BentleySaxe<Rec, Shard, true> Ext;
-
-void usage(char *progname) {
- fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
-}
-
-int main(int argc, char **argv) {
-
- if (argc < 4) {
- usage(argv[0]);
- exit(EXIT_FAILURE);
- }
-
- size_t n = atol(argv[1]);
- std::string d_fname = std::string(argv[2]);
- std::string q_fname = std::string(argv[3]);
-
- auto extension = new psudb::bsm::BentleySaxe<Rec, Shard, true>();
- gsl_rng *rng = gsl_rng_alloc(gsl_rng_mt19937);
-
- auto data = read_sosd_file_pair<uint64_t, uint64_t>(d_fname, n);
- auto queries = read_range_queries<QP>(q_fname, .0001);
-
- /* warmup structure w/ 10% of records */
- size_t warmup = .1 * n;
- insert_records<Shard, Rec, true>(extension, 0, warmup, data);
-
- TIMER_INIT();
-
- TIMER_START();
- insert_records<Shard, Rec, true>(extension, warmup, data.size(), data);
- TIMER_STOP();
-
- auto insert_latency = TIMER_RESULT();
- size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
-
- TIMER_START();
- run_queries<Ext, QP, true>(extension, queries);
- TIMER_STOP();
-
- auto query_latency = TIMER_RESULT() / queries.size();
-
- fprintf(stdout, "%ld\t%ld\n", insert_throughput, query_latency);
-
- gsl_rng_free(rng);
- delete extension;
- fflush(stderr);
-}
-
diff --git a/benchmarks/vldb/ts_parmsweep.cpp b/benchmarks/vldb/ts_parmsweep.cpp
index 2c9412a..a9203ab 100644
--- a/benchmarks/vldb/ts_parmsweep.cpp
+++ b/benchmarks/vldb/ts_parmsweep.cpp
@@ -18,10 +18,10 @@
typedef de::Record<uint64_t, uint64_t> Rec;
typedef de::TrieSpline<Rec> Shard;
-typedef de::rc::Query<Rec, Shard, true> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::LEVELING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext2;
-typedef de::rc::Parms<Rec> QP;
+typedef de::rc::Query<Shard, true> 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 Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -74,7 +74,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
@@ -106,7 +106,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_queries<Ext2, QP>(extension, queries);
+ run_queries<Ext2, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/vptree_bench.cpp b/benchmarks/vldb/vptree_bench.cpp
index 0b98a52..417e3af 100644
--- a/benchmarks/vldb/vptree_bench.cpp
+++ b/benchmarks/vldb/vptree_bench.cpp
@@ -19,9 +19,9 @@
typedef Word2VecRec Rec;
typedef de::VPTree<Rec, 100, true> Shard;
-typedef de::knn::Query<Rec, Shard> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
-typedef de::knn::Parms<Rec> QP;
+typedef de::knn::Query<Shard> Q;
+typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -75,7 +75,7 @@ int main(int argc, char **argv) {
fprintf(stderr, "[I] Running Query Benchmark\n");
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
fprintf(stderr, "Running Static query tests\n\n");
TIMER_START();
- run_static_queries<Shard, QP, Q>(shard, queries);
+ run_static_queries<Shard, Q>(shard, queries);
TIMER_STOP();
auto static_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/vptree_bench_alt.cpp b/benchmarks/vldb/vptree_bench_alt.cpp
index b09ee7d..5279f68 100644
--- a/benchmarks/vldb/vptree_bench_alt.cpp
+++ b/benchmarks/vldb/vptree_bench_alt.cpp
@@ -19,9 +19,9 @@
typedef ANNRec Rec;
typedef de::VPTree<Rec, 100, true> Shard;
-typedef de::knn::Query<Rec, Shard> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
-typedef de::knn::Parms<Rec> QP;
+typedef de::knn::Query<Shard> Q;
+typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -75,7 +75,7 @@ int main(int argc, char **argv) {
fprintf(stderr, "[I] Running Query Benchmark\n");
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
fprintf(stderr, "Running Static query tests\n\n");
TIMER_START();
- run_static_queries<Shard, QP, Q>(shard, queries);
+ run_static_queries<Shard, Q>(shard, queries);
TIMER_STOP();
auto static_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/vptree_bsm_bench.cpp b/benchmarks/vldb/vptree_bsm_bench.cpp
index 4a7fcb6..d0d963c 100644
--- a/benchmarks/vldb/vptree_bsm_bench.cpp
+++ b/benchmarks/vldb/vptree_bsm_bench.cpp
@@ -18,10 +18,11 @@
typedef Word2VecRec Rec;
+
typedef de::VPTree<Rec, 100, true> Shard;
-typedef de::knn::Query<Rec, Shard> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::BSM, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
-typedef de::knn::Parms<Rec> QP;
+typedef de::knn::Query<Shard> Q;
+typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::BSM, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -75,7 +76,7 @@ int main(int argc, char **argv) {
fprintf(stderr, "[I] Running Query Benchmark\n");
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
@@ -84,7 +85,7 @@ int main(int argc, char **argv) {
fprintf(stderr, "Running Static query tests\n\n");
TIMER_START();
- run_static_queries<Shard, QP, Q>(shard, queries);
+ run_static_queries<Shard,Q>(shard, queries);
TIMER_STOP();
auto static_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/vptree_bsm_bench_alt.cpp b/benchmarks/vldb/vptree_bsm_bench_alt.cpp
index 63baf8b..b4956a2 100644
--- a/benchmarks/vldb/vptree_bsm_bench_alt.cpp
+++ b/benchmarks/vldb/vptree_bsm_bench_alt.cpp
@@ -19,9 +19,9 @@
typedef ANNRec Rec;
typedef de::VPTree<Rec, 100, true> Shard;
-typedef de::knn::Query<Rec, Shard> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::BSM, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
-typedef de::knn::Parms<Rec> QP;
+typedef de::knn::Query<Shard> Q;
+typedef de::DynamicExtension<Shard, Q, de::LayoutPolicy::BSM, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
+typedef Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -75,7 +75,7 @@ int main(int argc, char **argv) {
fprintf(stderr, "[I] Running Query Benchmark\n");
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
diff --git a/benchmarks/vldb/vptree_parmsweep.cpp b/benchmarks/vldb/vptree_parmsweep.cpp
index 2cbd521..5e496d4 100644
--- a/benchmarks/vldb/vptree_parmsweep.cpp
+++ b/benchmarks/vldb/vptree_parmsweep.cpp
@@ -19,10 +19,10 @@
typedef Word2VecRec Rec;
typedef de::VPTree<Rec, 100, true> Shard;
-typedef de::knn::Query<Rec, Shard> Q;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
-typedef de::DynamicExtension<Rec, Shard, Q, de::LayoutPolicy::LEVELING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext2;
-typedef de::knn::Parms<Rec> QP;
+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 Q::Parameters QP;
void usage(char *progname) {
fprintf(stderr, "%s reccnt datafile queryfile\n", progname);
@@ -78,7 +78,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_queries<Ext, QP>(extension, queries);
+ run_queries<Ext, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();
@@ -111,7 +111,7 @@ int main(int argc, char **argv) {
size_t insert_throughput = (size_t) ((double) (n - warmup) / (double) insert_latency * 1e9);
TIMER_START();
- run_queries<Ext2, QP>(extension, queries);
+ run_queries<Ext2, Q>(extension, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();