diff options
| author | Douglas Rumbaugh <dbr4@psu.edu> | 2024-02-05 15:17:25 -0500 |
|---|---|---|
| committer | Douglas Rumbaugh <dbr4@psu.edu> | 2024-02-05 15:17:25 -0500 |
| commit | db4806d9dd9757273a14e6c3ea92e5a087239145 (patch) | |
| tree | 3766b79180d9d3b2167b0ff8d74cd9e73bfc5298 /benchmarks | |
| parent | fca660859bd8133cff53592b17abf4c8a51fc2c0 (diff) | |
| download | dynamic-extension-db4806d9dd9757273a14e6c3ea92e5a087239145.tar.gz | |
Set up tombstone deletes properly
Diffstat (limited to 'benchmarks')
| -rw-r--r-- | benchmarks/irs_bench.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/benchmarks/irs_bench.cpp b/benchmarks/irs_bench.cpp index ffedcf2..6de8681 100644 --- a/benchmarks/irs_bench.cpp +++ b/benchmarks/irs_bench.cpp @@ -20,7 +20,7 @@ typedef de::Record<int64_t, int64_t> Rec; typedef de::ISAMTree<Rec> ISAM; typedef de::irs::Query<ISAM, Rec> Q; -typedef de::DynamicExtension<Rec, ISAM, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext; +typedef de::DynamicExtension<Rec, ISAM, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TOMBSTONE, de::SerialScheduler> Ext; typedef de::irs::Parms<Rec> QP; void run_queries(Ext *extension, std::vector<QP> &queries, gsl_rng *rng) { @@ -30,7 +30,7 @@ void run_queries(Ext *extension, std::vector<QP> &queries, gsl_rng *rng) { q->rng = rng; q->sample_size = 1000; - auto res = extension->query(&q); + auto res = extension->query(q); auto r = res.get(); total += r.size(); } @@ -39,14 +39,14 @@ void run_queries(Ext *extension, std::vector<QP> &queries, gsl_rng *rng) { } size_t g_deleted_records = 0; - -double delete_proportion = 0; +double delete_proportion = 0.05; void insert_records(Ext *extension, size_t start, size_t stop, std::vector<int64_t> &records, std::vector<size_t> &to_delete, size_t &delete_idx, + bool delete_records, gsl_rng *rng) { size_t reccnt = 0; Rec r; @@ -58,7 +58,7 @@ void insert_records(Ext *extension, size_t start, usleep(1); } - if (gsl_rng_uniform(rng) <= delete_proportion && to_delete[delete_idx] <= i) { + if (delete_records && gsl_rng_uniform(rng) <= delete_proportion && to_delete[delete_idx] <= i) { r.key = records[to_delete[delete_idx]]; r.value = (int64_t) (to_delete[delete_idx]); while (!extension->erase(r)) { @@ -95,16 +95,16 @@ int main(int argc, char **argv) { auto queries = read_range_queries<QP>(q_fname, .001); /* warmup structure w/ 10% of records */ - size_t warmup = .1 * n; + size_t warmup = .3 * n; size_t delete_idx = 0; - insert_records(extension, 0, warmup, data, to_delete, delete_idx, rng); + insert_records(extension, 0, warmup, data, to_delete, delete_idx, false, rng); extension->await_next_epoch(); TIMER_INIT(); TIMER_START(); - insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, rng); + insert_records(extension, warmup, data.size(), data, to_delete, delete_idx, true, rng); TIMER_STOP(); auto insert_latency = TIMER_RESULT(); @@ -116,7 +116,7 @@ int main(int argc, char **argv) { auto query_latency = TIMER_RESULT() / queries.size(); - fprintf(stdout, "T\t%ld\t%ld\n", insert_throughput, query_latency); + fprintf(stdout, "T\t%ld\t%ld\t%ld\n", insert_throughput, query_latency, g_deleted_records); gsl_rng_free(rng); delete extension; |