summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2024-01-22 10:53:56 -0500
committerDouglas Rumbaugh <dbr4@psu.edu>2024-01-22 10:53:56 -0500
commit49386f8cbfb2c2342df0d06b7345a35063f8d237 (patch)
tree77c4c4d238981f68b0c39b2f126c355b144f27d2
parent4d0d26bfef684566a371ca7c87ba84df52f25ccc (diff)
downloaddynamic-extension-49386f8cbfb2c2342df0d06b7345a35063f8d237.tar.gz
Benchmarking: updated insert_query_tput to use better rng
-rw-r--r--benchmarks/insert_query_tput.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/benchmarks/insert_query_tput.cpp b/benchmarks/insert_query_tput.cpp
index 3b63395..865e82c 100644
--- a/benchmarks/insert_query_tput.cpp
+++ b/benchmarks/insert_query_tput.cpp
@@ -11,6 +11,8 @@
#include "query/rangecount.h"
#include "framework/interface/Record.h"
+#include <gsl/gsl_rng.h>
+
#include "psu-util/timer.h"
@@ -40,18 +42,23 @@ void insert_thread(Ext *extension, size_t n, size_t k) {
inserts_done.store(true);
}
-void query_thread(Ext *extension, double selectivity, size_t k) {
+void query_thread(Ext *extension, double selectivity, size_t k, gsl_rng *rng) {
TIMER_INIT();
while (!inserts_done.load()) {
size_t reccnt = extension->get_record_count();
+ if (reccnt == 0) {
+ continue; // don't start querying until there is data
+ }
+
size_t range = reccnt * selectivity;
auto q = new de::rc::Parms<Rec>();
TIMER_START();
for (int64_t i=0; i<k; i++) {
- size_t start = rand() % (reccnt - range);
+ size_t start = gsl_rng_uniform_int(rng, reccnt - range);
+
q->lower_bound = start;
q->upper_bound = start + range;
auto res = extension->query(q);
@@ -72,11 +79,15 @@ int main(int argc, char **argv) {
size_t per_trial = 1000;
double selectivity = .001;
+ gsl_rng * rng = gsl_rng_alloc(gsl_rng_mt19937);
+
std::thread i_thrd(insert_thread, extension, n, per_trial);
- std::thread q_thrd(query_thread, extension, selectivity, 1);
+ std::thread q_thrd(query_thread, extension, selectivity, 1, rng);
q_thrd.join();
i_thrd.join();
+
+ gsl_rng_free(rng);
fflush(stderr);
}