summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt161
-rw-r--r--benchmarks/include/benchmark_types.h4
-rw-r--r--benchmarks/include/standard_benchmarks.h7
-rw-r--r--benchmarks/watermark_testing.cpp6
-rw-r--r--include/framework/DynamicExtension.h6
-rw-r--r--include/framework/structure/BufferView.h2
-rw-r--r--include/query/rangequery.h2
-rw-r--r--include/util/SortedMerge.h2
8 files changed, 78 insertions, 112 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f4c90dd..4d449dd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,14 +9,22 @@ project("Practical Dynamic Extension" VERSION 0.1.0)
set(debug false)
set(tests True)
set(bench true)
-set(old_bench False)
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 -fconcepts-diagnostics-depth=3)
+add_compile_options(-Iinclude -Iexternal/PLEX/include -Iexternal -mcx16) # -fconcepts-diagnostics-depth=3)
+
+if (BSD)
+ add_link_options(-L/usr/local/lib)
+ add_compile_options(-I/usr/local/include)
+ set(CMAKE_CXX_EXTENSIONS)
+else()
+target_link_libraries()
+endif()
+
if (debug)
add_compile_options(-g -O0)
@@ -34,98 +42,106 @@ if (tests)
file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests/data")
add_executable(augbtree_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/augbtree_tests.cpp)
- target_link_libraries(augbtree_tests PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(augbtree_tests PUBLIC gsl cblas check pthread atomic)
target_link_options(augbtree_tests PUBLIC -mcx16)
target_include_directories(augbtree_tests PRIVATE include external/psudb-common/cpp/include external/ctpl)
add_executable(internal_level_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/internal_level_tests.cpp)
- target_link_libraries(internal_level_tests PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(internal_level_tests PUBLIC gsl cblas check pthread atomic)
target_link_options(internal_level_tests PUBLIC -mcx16)
target_include_directories(internal_level_tests PRIVATE include external/psudb-common/cpp/include)
add_executable(mutable_buffer_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/mutable_buffer_tests.cpp)
- target_link_libraries(mutable_buffer_tests PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(mutable_buffer_tests PUBLIC gsl cblas check pthread atomic)
target_link_options(mutable_buffer_tests PUBLIC -mcx16)
target_include_directories(mutable_buffer_tests PRIVATE include external/psudb-common/cpp/include)
add_executable(rangequery_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/rangequery_tests.cpp)
- target_link_libraries(rangequery_tests PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(rangequery_tests PUBLIC gsl cblas check pthread atomic)
target_link_options(rangequery_tests PUBLIC -mcx16)
target_include_directories(rangequery_tests PRIVATE include external/psudb-common/cpp/include)
add_executable(rangecount_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/rangecount_tests.cpp)
- target_link_libraries(rangecount_tests PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(rangecount_tests PUBLIC gsl cblas check pthread atomic)
target_link_options(rangecount_tests PUBLIC -mcx16)
target_include_directories(rangecount_tests PRIVATE include external/psudb-common/cpp/include)
add_executable(vptree_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/vptree_tests.cpp)
- target_link_libraries(vptree_tests PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(vptree_tests PUBLIC gsl cblas check pthread atomic)
target_link_options(vptree_tests PUBLIC -mcx16)
target_include_directories(vptree_tests PRIVATE include external/vptree external/psudb-common/cpp/include)
add_executable(de_tier_tag ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_tier_tag.cpp)
- target_link_libraries(de_tier_tag PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(de_tier_tag PUBLIC gsl cblas check pthread atomic)
target_link_options(de_tier_tag PUBLIC -mcx16)
target_include_directories(de_tier_tag PRIVATE include external/psudb-common/cpp/include external)
add_executable(de_tier_tomb ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_tier_tomb.cpp)
- target_link_libraries(de_tier_tomb PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(de_tier_tomb PUBLIC gsl cblas check pthread atomic)
target_link_options(de_tier_tomb PUBLIC -mcx16)
target_include_directories(de_tier_tomb PRIVATE include external/PLEX/include external/psudb-common/cpp/include external)
add_executable(de_level_tag ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_level_tag.cpp)
- target_link_libraries(de_level_tag PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(de_level_tag PUBLIC gsl cblas check pthread atomic)
target_link_options(de_level_tag PUBLIC -mcx16)
target_include_directories(de_level_tag PRIVATE include external/psudb-common/cpp/include external)
add_executable(de_level_tomb ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_level_tomb.cpp)
- target_link_libraries(de_level_tomb PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(de_level_tomb PUBLIC gsl cblas check pthread atomic)
target_link_options(de_level_tomb PUBLIC -mcx16)
target_include_directories(de_level_tomb PRIVATE include external/ctpl external/PLEX/include external/psudb-common/cpp/include external)
add_executable(de_level_concurrent ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_level_concurrent.cpp)
- target_link_libraries(de_level_concurrent PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(de_level_concurrent PUBLIC gsl cblas check pthread atomic)
target_link_options(de_level_concurrent PUBLIC -mcx16)
target_include_directories(de_level_concurrent PRIVATE include external/ctpl external/PLEX/include external/psudb-common/cpp/include external)
add_executable(de_tier_concurrent ${CMAKE_CURRENT_SOURCE_DIR}/tests/de_tier_concurrent.cpp)
- target_link_libraries(de_tier_concurrent PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(de_tier_concurrent PUBLIC gsl cblas check pthread atomic)
target_link_options(de_tier_concurrent PUBLIC -mcx16)
target_include_directories(de_tier_concurrent PRIVATE include external/ctpl external/PLEX/include external/psudb-common/cpp/include external)
add_executable(memisam_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/memisam_tests.cpp)
- target_link_libraries(memisam_tests PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(memisam_tests PUBLIC gsl cblas check pthread atomic)
target_link_options(memisam_tests PUBLIC -mcx16)
target_include_directories(memisam_tests PRIVATE include external/psudb-common/cpp/include)
add_executable(triespline_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/triespline_tests.cpp)
- target_link_libraries(triespline_tests PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(triespline_tests PUBLIC gsl cblas check pthread atomic)
target_link_options(triespline_tests PUBLIC -mcx16)
target_include_directories(triespline_tests PRIVATE include external/psudb-common/cpp/include external/PLEX/include)
add_executable(alias_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/alias_tests.cpp)
- target_link_libraries(alias_tests PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(alias_tests PUBLIC gsl cblas check pthread atomic)
target_link_options(alias_tests PUBLIC -mcx16)
target_include_directories(alias_tests PRIVATE include external/psudb-common/cpp/include)
- add_executable(pgm_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/pgm_tests.cpp)
- target_link_libraries(pgm_tests PUBLIC gsl check subunit pthread gomp atomic)
- target_include_directories(pgm_tests PRIVATE include external/PGM-index/include external/psudb-common/cpp/include)
- target_link_options(pgm_tests PUBLIC -mcx16)
- target_compile_options(pgm_tests PUBLIC -fopenmp)
+ # OpenBSD doesn't have OpenMP support, so don't build the PGM code on that
+ # platform.
+ if (!BSD)
+ add_executable(pgm_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/pgm_tests.cpp)
+ target_link_libraries(pgm_tests PUBLIC gsl cblas check pthread gomp atomic)
+ target_include_directories(pgm_tests PRIVATE include external/PGM-index/include external/psudb-common/cpp/include)
+ target_link_options(pgm_tests PUBLIC -mcx16)
+ target_compile_options(pgm_tests PUBLIC -fopenmp)
+ endif()
+ # Triespline code doesn't build under OpenBSD either due to ambiguous function call;
+ # this is likely a difference between gcc and clang, rather than an OS thing
+if (!BSD)
add_executable(triespline_debug ${CMAKE_CURRENT_SOURCE_DIR}/tests/triespline_debug.cpp)
- target_link_libraries(triespline_debug PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(triespline_debug PUBLIC gsl cblas check pthread atomic)
target_link_options(triespline_debug PUBLIC -mcx16)
target_include_directories(triespline_debug PRIVATE include external/psudb-common/cpp/include external/PLEX/include)
+endif()
add_executable(fst_tests ${CMAKE_CURRENT_SOURCE_DIR}/tests/fst_tests.cpp)
- target_link_libraries(fst_tests PUBLIC gsl check subunit pthread atomic)
+ target_link_libraries(fst_tests PUBLIC gsl cblas check pthread atomic)
target_link_options(fst_tests PUBLIC -mcx16)
target_include_directories(fst_tests PRIVATE include
external/psudb-common/cpp/include external/PLEX/include external/fast_succinct_trie/include)
@@ -135,137 +151,68 @@ if (bench)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/benchmarks")
add_executable(reconstruction_interference ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/reconstruction_interference.cpp)
- target_link_libraries(reconstruction_interference PUBLIC gsl pthread gomp atomic)
+ target_link_libraries(reconstruction_interference PUBLIC gsl cblas pthread atomic)
target_link_options(reconstruction_interference PUBLIC -mcx16)
target_include_directories(reconstruction_interference PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
add_executable(insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insertion_tput.cpp)
- target_link_libraries(insertion_tput PUBLIC gsl pthread gomp atomic)
+ target_link_libraries(insertion_tput PUBLIC gsl cblas pthread atomic)
target_include_directories(insertion_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
target_link_options(insertion_tput PUBLIC -mcx16)
add_executable(string_insertion_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/string_insertion_tput.cpp)
- target_link_libraries(string_insertion_tput PUBLIC gsl pthread gomp atomic)
+ target_link_libraries(string_insertion_tput PUBLIC gsl cblas pthread atomic)
target_include_directories(string_insertion_tput PRIVATE include external external/fast_succinct_trie/include external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
target_link_options(string_insertion_tput PUBLIC -mcx16)
add_executable(query_workload_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/query_workload_bench.cpp)
- target_link_libraries(query_workload_bench PUBLIC gsl pthread gomp atomic)
+ target_link_libraries(query_workload_bench PUBLIC gsl cblas pthread atomic)
target_include_directories(query_workload_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
target_link_options(query_workload_bench PUBLIC -mcx16)
add_executable(insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_query_tput.cpp)
- target_link_libraries(insert_query_tput PUBLIC gsl pthread gomp atomic)
+ target_link_libraries(insert_query_tput PUBLIC gsl cblas pthread atomic)
target_include_directories(insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
target_link_options(insert_query_tput PUBLIC -mcx16)
#add_executable(btree_insert_query_tput ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_insert_query_tput.cpp)
- #target_link_libraries(btree_insert_query_tput PUBLIC gsl pthread gomp atomic)
+ #target_link_libraries(btree_insert_query_tput PUBLIC gsl cblas pthread atomic)
#target_include_directories(btree_insert_query_tput PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
#target_link_options(btree_insert_query_tput PUBLIC -mcx16)
add_executable(watermark_testing ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/watermark_testing.cpp)
- target_link_libraries(watermark_testing PUBLIC gsl pthread gomp atomic)
+ target_link_libraries(watermark_testing PUBLIC gsl cblas pthread atomic)
target_include_directories(watermark_testing PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
target_link_options(watermark_testing PUBLIC -mcx16)
add_executable(irs_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/irs_bench.cpp)
- target_link_libraries(irs_bench PUBLIC gsl pthread gomp atomic)
+ target_link_libraries(irs_bench PUBLIC gsl cblas pthread atomic)
target_include_directories(irs_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
target_link_options(irs_bench PUBLIC -mcx16)
add_executable(vptree_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vptree_bench.cpp)
- target_link_libraries(vptree_bench PUBLIC gsl pthread gomp atomic)
+ target_link_libraries(vptree_bench PUBLIC gsl cblas pthread atomic)
target_include_directories(vptree_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
target_link_options(vptree_bench PUBLIC -mcx16)
+if(!BSD)
add_executable(ts_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/ts_bench.cpp)
- target_link_libraries(ts_bench PUBLIC gsl pthread gomp atomic)
+ target_link_libraries(ts_bench PUBLIC gsl cblas pthread atomic)
target_include_directories(ts_bench PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
target_link_options(ts_bench PUBLIC -mcx16)
+endif()
#add_executable(static_dynamic_comp ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/static_dynamic_comp.cpp)
- #target_link_libraries(static_dynamic_comp PUBLIC gsl pthread gomp atomic)
+ #target_link_libraries(static_dynamic_comp PUBLIC gsl cblas pthread atomic)
#target_include_directories(static_dynamic_comp PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
#target_link_options(static_dynamic_comp PUBLIC -mcx16)
add_executable(insert_tail_latency ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/insert_tail_latency.cpp)
- target_link_libraries(insert_tail_latency PUBLIC gsl pthread gomp atomic)
+ target_link_libraries(insert_tail_latency PUBLIC gsl cblas pthread atomic)
target_include_directories(insert_tail_latency PRIVATE include external external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include external/psudb-common/cpp/include)
target_link_options(insert_tail_latency PUBLIC -mcx16)
endif()
-
-if (old_bench)
- add_executable(alias_wss_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/alias_wss_bench.cpp)
- target_link_libraries(alias_wss_bench PUBLIC gsl pthread gomp)
- target_include_directories(alias_wss_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(alias_wss_bench PUBLIC -fopenmp)
-
- add_executable(triespline_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/triespline_rq_bench.cpp)
- target_link_libraries(triespline_rq_bench PUBLIC gsl pthread gomp)
- target_include_directories(triespline_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(triespline_rq_bench PUBLIC -fopenmp)
-
- add_executable(pgm_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/pgm_rq_bench.cpp)
- target_link_libraries(pgm_rq_bench PUBLIC gsl pthread gomp)
- target_include_directories(pgm_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(pgm_rq_bench PUBLIC -fopenmp)
-
- add_executable(pgm_pl_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/pgm_pl_bench.cpp)
- target_link_libraries(pgm_pl_bench PUBLIC gsl pthread gomp)
- target_include_directories(pgm_pl_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(pgm_pl_bench PUBLIC -fopenmp)
-
- add_executable(upgm_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/upgm_rq_bench.cpp)
- target_link_libraries(upgm_rq_bench PUBLIC gsl pthread gomp)
- target_include_directories(upgm_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(upgm_rq_bench PUBLIC -fopenmp)
- set_property(TARGET upgm_rq_bench PROPERTY CXX_STANDARD 17)
-
- add_executable(upgm_pl_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/upgm_pl_bench.cpp)
- target_link_libraries(upgm_pl_bench PUBLIC gsl pthread gomp)
- target_include_directories(upgm_pl_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(upgm_pl_bench PUBLIC -fopenmp)
- set_property(TARGET upgm_pl_bench PROPERTY CXX_STANDARD 17)
-
- add_executable(isam_irs_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/isam_irs_bench.cpp)
- target_link_libraries(isam_irs_bench PUBLIC gsl pthread gomp)
- target_include_directories(isam_irs_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(isam_irs_bench PUBLIC -fopenmp)
-
- add_executable(isam_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/isam_rq_bench.cpp)
- target_link_libraries(isam_rq_bench PUBLIC gsl pthread gomp)
- target_include_directories(isam_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(isam_rq_bench PUBLIC -fopenmp)
-
- add_executable(btree_irs_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_irs_bench.cpp)
- target_link_libraries(btree_irs_bench PUBLIC gsl pthread gomp)
- target_include_directories(btree_irs_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(btree_irs_bench PUBLIC -fopenmp)
-
- add_executable(btree_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/btree_rq_bench.cpp)
- target_link_libraries(btree_rq_bench PUBLIC gsl pthread gomp)
- target_include_directories(btree_rq_bench PRIVATE include external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(btree_rq_bench PUBLIC -fopenmp)
-
- add_executable(alex_rq_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/alex_rq_bench.cpp)
- target_link_libraries(alex_rq_bench PUBLIC gsl pthread gomp)
- target_include_directories(alex_rq_bench PRIVATE include external/alex/src/core external/m-tree/cpp external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(alex_rq_bench PUBLIC -fopenmp -march=native)
- set_property(TARGET alex_rq_bench PROPERTY CXX_STANDARD 14)
-
- add_executable(vptree_knn_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/vptree_knn_bench.cpp)
- target_link_libraries(vptree_knn_bench PUBLIC gsl pthread gomp)
- target_include_directories(vptree_knn_bench PRIVATE include external/m-tree/cpp external/vptree external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(vptree_knn_bench PUBLIC -fopenmp)
-
- add_executable(mtree_knn_bench ${CMAKE_CURRENT_SOURCE_DIR}/benchmarks/mtree_knn_bench.cpp)
- target_link_libraries(mtree_knn_bench PUBLIC gsl pthread gomp)
- target_include_directories(mtree_knn_bench PRIVATE include external/m-tree/cpp external/vptree external/PGM-index/include external/PLEX/include bench/include)
- target_compile_options(mtree_knn_bench PUBLIC -fopenmp -fpermissive)
-
-endif()
diff --git a/benchmarks/include/benchmark_types.h b/benchmarks/include/benchmark_types.h
index 85e9565..fcdeac6 100644
--- a/benchmarks/include/benchmark_types.h
+++ b/benchmarks/include/benchmark_types.h
@@ -2,7 +2,6 @@
#include <cstdlib>
#include "psu-ds/BTree.h"
-#include "mtree.h"
#include "framework/interface/Record.h"
/* TLX BTree definitions*/
@@ -46,5 +45,8 @@ struct euclidean_distance {
}
};
+#ifdef _GNU_SOURCE
+#include "mtree.h"
typedef mt::mtree<Word2VecRec, euclidean_distance> MTree;
+#endif
diff --git a/benchmarks/include/standard_benchmarks.h b/benchmarks/include/standard_benchmarks.h
index a42cdd6..5fc549d 100644
--- a/benchmarks/include/standard_benchmarks.h
+++ b/benchmarks/include/standard_benchmarks.h
@@ -102,8 +102,10 @@ static bool insert_tput_bench(DE &de_index, std::fstream &file, size_t insert_cn
if (applied_deletes < delete_cnt && delete_idx < delete_vec.size() && gsl_rng_uniform(rng) < delete_prop) {
if constexpr (std::is_same_v<BenchBTree, DE>) {
de_index.erase_one(delete_vec[delete_idx++].key);
+ #ifdef _GNU_SOURCE
} else if constexpr (std::is_same_v<MTree, DE>) {
de_index.remove(delete_vec[delete_idx++]);
+ #endif
} else {
de_index.erase(delete_vec[delete_idx++]);
}
@@ -111,11 +113,16 @@ static bool insert_tput_bench(DE &de_index, std::fstream &file, size_t insert_cn
}
// insert the record;
+ #ifdef _GNU_SOURCE
if constexpr (std::is_same_v<MTree, DE>) {
de_index.add(insert_vec[i]);
} else {
de_index.insert(insert_vec[i]);
}
+ #else
+ de_index.insert(insert_vec[i]);
+ #endif
+
applied_inserts++;
}
auto insert_stop = std::chrono::high_resolution_clock::now();
diff --git a/benchmarks/watermark_testing.cpp b/benchmarks/watermark_testing.cpp
index 5fa0c0d..c56fc63 100644
--- a/benchmarks/watermark_testing.cpp
+++ b/benchmarks/watermark_testing.cpp
@@ -12,6 +12,7 @@
#include "psu-util/timer.h"
#include <algorithm>
+#include <random>
typedef uint64_t K;
typedef de::Record<K, K> Rec;
@@ -32,7 +33,10 @@ int main(int argc, char **argv) {
keys[i] = i;
}
- std::random_shuffle(keys.begin(), keys.end());
+ std::random_device rd;
+ std::mt19937 g(rd());
+
+ std::shuffle(keys.begin(), keys.end(), g);
TIMER_INIT();
diff --git a/include/framework/DynamicExtension.h b/include/framework/DynamicExtension.h
index 3e1ce50..44ad454 100644
--- a/include/framework/DynamicExtension.h
+++ b/include/framework/DynamicExtension.h
@@ -685,6 +685,7 @@ private:
return processed_records;
}
+#ifdef _GNU_SOURCE
void SetThreadAffinity() {
int core = m_next_core.fetch_add(1) % m_core_cnt;
cpu_set_t mask;
@@ -707,6 +708,11 @@ private:
CPU_SET(core, &mask);
::sched_setaffinity(0, sizeof(mask), &mask);
}
+#else
+ void SetThreadAffinity() {
+
+ }
+#endif
void end_job(_Epoch *epoch) {
diff --git a/include/framework/structure/BufferView.h b/include/framework/structure/BufferView.h
index 9e0872b..44a2044 100644
--- a/include/framework/structure/BufferView.h
+++ b/include/framework/structure/BufferView.h
@@ -20,7 +20,7 @@
namespace de {
-typedef std::_Bind<void (*(void*, long unsigned int))(void*, long unsigned int)> ReleaseFunction;
+typedef std::function<void(void)> ReleaseFunction;
template <RecordInterface R>
class BufferView {
diff --git a/include/query/rangequery.h b/include/query/rangequery.h
index 24b38ec..e6ab581 100644
--- a/include/query/rangequery.h
+++ b/include/query/rangequery.h
@@ -121,7 +121,7 @@ public:
for (size_t i = 0; i < tmp_n; ++i)
if (results[i].size() > 0){
auto base = results[i].data();
- cursors.emplace_back(Cursor{base, base + results[i].size(), 0, results[i].size()});
+ cursors.emplace_back(Cursor<Wrapped<R>>{base, base + results[i].size(), 0, results[i].size()});
assert(i == cursors.size() - 1);
total += results[i].size();
pq.push(cursors[i].ptr, tmp_n - i - 1);
diff --git a/include/util/SortedMerge.h b/include/util/SortedMerge.h
index 8a1e782..c149189 100644
--- a/include/util/SortedMerge.h
+++ b/include/util/SortedMerge.h
@@ -58,7 +58,7 @@ static std::vector<Cursor<Wrapped<R>>> build_cursor_vec(std::vector<S*> &shards,
for (size_t i = 0; i < shards.size(); ++i) {
if (shards[i]) {
auto base = shards[i]->get_data();
- cursors.emplace_back(Cursor{base, base + shards[i]->get_record_count(), 0, shards[i]->get_record_count()});
+ cursors.emplace_back(Cursor<Wrapped<R>>{base, base + shards[i]->get_record_count(), 0, shards[i]->get_record_count()});
*reccnt += shards[i]->get_record_count();
*tscnt += shards[i]->get_tombstone_count();
} else {