This is a WIP to provide a basic set of tools for benchmarking jdbc-mget and more specifically the poky database configuration & tuning and the mget stored procedure.
The clojure code then reads in one or more files of this form and hashes the $COUNT(key, timestamp) tuples by the bucket. These tuples are then partitioned by a given request size during the simulation. This is to simulate production mget set sizes.
Once the tuples have been imported from the data files they are then organized int (bucket {:key :modified_at} ...) lists that can then be easily used as parameters to jdbc-mget. Before running the benchmarks, the set of lists is randomized to simulate more real-world access patterns.
Here is a sample benchmark run from within clojure:
This is a WIP to provide a basic set of tools for benchmarking
jdbc-mget
and more specifically the poky database configuration & tuning and themget
stored procedure.To run, create some test data:
This creates a CSV file of the form:
The clojure code then reads in one or more files of this form and hashes the
$COUNT
(key, timestamp)
tuples by the bucket. These tuples are then partitioned by a given request size during the simulation. This is to simulate productionmget
set sizes.Once the tuples have been imported from the data files they are then organized int
(bucket {:key :modified_at} ...)
lists that can then be easily used as parameters tojdbc-mget
. Before running the benchmarks, the set of lists is randomized to simulate more real-world access patterns.Here is a sample benchmark run from within clojure: