summaryrefslogtreecommitdiffstats
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
parent2724b98da8699af150e850e66e92e0a832cd2e29 (diff)
downloaddynamic-extension-f57aa6aee34c5eccd296fbe6b655075c682e97ca.tar.gz
Began migrating benchmarks over to new interface
-rw-r--r--CMakeLists.txt38
-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
-rw-r--r--include/shard/FSTrie.h4
16 files changed, 82 insertions, 51 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e35ae19..b947860 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.22)
-set(CMAKE_C_COMPILER gcc)
-set(CMAKE_CXX_COMPILER g++)
+set(CMAKE_C_COMPILER clang)
+set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)
@@ -12,7 +12,7 @@ project("Practical Dynamic Extension" VERSION 0.1.0)
set(debug true)
set(tests True)
set(bench false)
-set(vldb_bench false)
+set(vldb_bench true)
# ALEX doesn't build under C++20
set(build_alex false)
@@ -22,7 +22,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")
set(CMAKE_CXX_FLAGS=-latomic -mcx16)
-add_compile_options(-Iinclude -Iexternal/PLEX/include -Iexternal -mcx16 -march=native -Werror) # -fconcepts-diagnostics-depth=3)
+add_compile_options(-Iinclude -Iexternal/PLEX/include -Iexternal -mcx16 -march=native -Werror -Wno-attributes) # -fconcepts-diagnostics-depth=3)
find_package(OpenMP REQUIRED)
add_compile_options(${OpenMP_CXX_FLAGS})
@@ -177,11 +177,11 @@ if (vldb_bench)
target_compile_options(vptree_bench_alt PUBLIC)
- add_executable(vptree_parmsweep ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/vptree_parmsweep.cpp)
- target_link_libraries(vptree_parmsweep PUBLIC gsl pthread atomic)
- target_include_directories(vptree_parmsweep PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include)
- target_link_options(vptree_parmsweep PUBLIC -mcx16)
- target_compile_options(vptree_parmsweep PUBLIC)
+ # add_executable(vptree_parmsweep ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/vptree_parmsweep.cpp)
+ # target_link_libraries(vptree_parmsweep PUBLIC gsl pthread atomic)
+ # target_include_directories(vptree_parmsweep PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include)
+ # target_link_options(vptree_parmsweep PUBLIC -mcx16)
+ # target_compile_options(vptree_parmsweep PUBLIC)
add_executable(vptree_bsm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/vptree_bsm_bench.cpp)
target_link_libraries(vptree_bsm_bench PUBLIC gsl pthread atomic)
@@ -213,11 +213,11 @@ if (vldb_bench)
target_link_options(ts_bench PUBLIC -mcx16)
target_compile_options(ts_bench PUBLIC)
- add_executable(ts_parmsweep ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_parmsweep.cpp)
- target_link_libraries(ts_parmsweep PUBLIC gsl pthread atomic)
- target_include_directories(ts_parmsweep PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include)
- target_link_options(ts_parmsweep PUBLIC -mcx16)
- target_compile_options(ts_parmsweep PUBLIC)
+ # add_executable(ts_parmsweep ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_parmsweep.cpp)
+ # target_link_libraries(ts_parmsweep PUBLIC gsl pthread atomic)
+ # target_include_directories(ts_parmsweep PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include)
+ # target_link_options(ts_parmsweep PUBLIC -mcx16)
+ # target_compile_options(ts_parmsweep PUBLIC)
add_executable(ts_bsm_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/ts_bsm_bench.cpp)
target_link_libraries(ts_bsm_bench PUBLIC gsl pthread atomic)
@@ -269,11 +269,11 @@ if (vldb_bench)
target_link_options(mtree_bench PUBLIC -mcx16)
target_compile_options(mtree_bench PUBLIC)
- add_executable(thread_scaling_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/thread_scaling_bench.cpp)
- target_link_libraries(thread_scaling_bench PUBLIC gsl pthread atomic)
- target_include_directories(thread_scaling_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include)
- target_link_options(thread_scaling_bench PUBLIC -mcx16)
- target_compile_options(thread_scaling_bench PUBLIC)
+ # add_executable(thread_scaling_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/thread_scaling_bench.cpp)
+ # target_link_libraries(thread_scaling_bench PUBLIC gsl pthread atomic)
+ # target_include_directories(thread_scaling_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include benchmarks/include external/psudb-common/cpp/include)
+ # target_link_options(thread_scaling_bench PUBLIC -mcx16)
+ # target_compile_options(thread_scaling_bench PUBLIC)
add_executable(btree_thread_scaling_bench
${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vldb/btree_thread_scaling_bench.cpp)
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) {
diff --git a/include/shard/FSTrie.h b/include/shard/FSTrie.h
index d720aad..59ff116 100644
--- a/include/shard/FSTrie.h
+++ b/include/shard/FSTrie.h
@@ -63,7 +63,7 @@ public:
std::sort(base, stop, std::less<Wrapped<R>>());
for (size_t i=0; i<buffer.get_record_count(); i++) {
- if (temp_buffer[i].is_deleted() || !temp_buffer[i].is_visible() || temp_buffer[i].rec.key == "") {
+ if (temp_buffer[i].is_deleted() || !temp_buffer[i].is_visible() || temp_buffer[i].rec.key[0] != '\0') {
continue;
}
@@ -124,7 +124,7 @@ public:
} else {
auto& cursor = cursors[now.version];
/* skip over records that have been deleted via tagging */
- if (!cursor.ptr->is_deleted() && cursor.ptr->rec.key != "") {
+ if (!cursor.ptr->is_deleted() && cursor.ptr->rec.key[0] != '\0') {
m_data[m_reccnt] = *cursor.ptr;
keys.push_back(std::string(m_data[m_reccnt].rec.key));