summaryrefslogtreecommitdiffstats
path: root/benchmarks/vldb/ts_bsm_bench.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/vldb/ts_bsm_bench.cpp')
-rw-r--r--benchmarks/vldb/ts_bsm_bench.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/benchmarks/vldb/ts_bsm_bench.cpp b/benchmarks/vldb/ts_bsm_bench.cpp
index 941e3da..049fd35 100644
--- a/benchmarks/vldb/ts_bsm_bench.cpp
+++ b/benchmarks/vldb/ts_bsm_bench.cpp
@@ -37,26 +37,37 @@ int main(int argc, char **argv) {
std::string q_fname = std::string(argv[3]);
auto extension = new psudb::bsm::BentleySaxe<Rec, Shard>();
+ auto ghost = new psudb::bsm::BentleySaxe<Rec, Shard>();
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, .001);
+ std::vector<size_t> to_delete(n * delete_proportion);
+ size_t j=0;
+ for (size_t i=0; i<data.size() && j<to_delete.size(); i++) {
+ if (gsl_rng_uniform(rng) <= delete_proportion) {
+ to_delete[j++] = i;
+ }
+ }
+ auto queries = read_range_queries<QP>(q_fname, .0001);
/* warmup structure w/ 10% of records */
size_t warmup = .1 * n;
- insert_records<Shard, Rec>(extension, 0, warmup, data);
+ size_t delete_idx = 0;
+ insert_records<Shard, Rec>(extension, ghost, 0, warmup, data, to_delete,
+ delete_idx, rng);
TIMER_INIT();
TIMER_START();
- insert_records<Shard, Rec>(extension, warmup, data.size(), data);
+ insert_records<Shard, Rec>(extension, ghost, warmup, data.size(), data,
+ to_delete, delete_idx, rng);
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);
+ run_queries<Ext, QP, Rec>(extension, ghost, queries);
TIMER_STOP();
auto query_latency = TIMER_RESULT() / queries.size();