From 3ec8eaf8709a49f4d0222db207bc4f1341e2ea6f Mon Sep 17 00:00:00 2001 From: Martin Dimitrov Date: Fri, 16 Dec 2022 09:46:05 -0700 Subject: [PATCH 1/5] added support for zrevrank --- ...k-1key-zrevrank-1M-elements-pipeline-1.yml | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml new file mode 100644 index 00000000..4264d369 --- /dev/null +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml @@ -0,0 +1,37 @@ +version: 0.4 +name: memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1 +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements and we query it using ZREVRANK.' +dbconfig: + configuration-parameters: + save: '""' + preload_tool: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 +tested-groups: +- sorted-set +tested-commands: +- zrevrank +redis-topologies: +- oss-standalone +build-variants: +- gcc:8.5.0-amd64-debian-buster-default +clientconfig: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --command="ZREVRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --hide-histogram --test-time 180 --pipeline 1 + resources: + requests: + cpus: '4' + memory: 2g +exporter: + redistimeseries: + break_by: + - version + - commit + timemetric: $."ALL STATS".Runtime."Start time" + metrics: + - $."ALL STATS".Totals."Ops/sec" + - $."ALL STATS".Totals."Latency" + - $."ALL STATS".Totals."Misses/sec" + - $."ALL STATS".Totals."Percentile Latencies"."p50.00" From a2a7284f5dac57a0c3d0c7fc181afcfbaba8943c Mon Sep 17 00:00:00 2001 From: Martin Dimitrov Date: Fri, 16 Dec 2022 10:05:14 -0700 Subject: [PATCH 2/5] added support for zrank. --- ...mark-1key-zrank-1M-elements-pipeline-1.yml | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml new file mode 100644 index 00000000..94cdacfb --- /dev/null +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml @@ -0,0 +1,37 @@ +version: 0.4 +name: memtier_benchmark-1key-zrank-1M-elements-pipeline-1 +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements and we query it using ZRANK.' +dbconfig: + configuration-parameters: + save: '""' + preload_tool: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 +tested-groups: +- sorted-set +tested-commands: +- zrank +redis-topologies: +- oss-standalone +build-variants: +- gcc:8.5.0-amd64-debian-buster-default +clientconfig: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --command="ZRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --hide-histogram --test-time 180 --pipeline 1 + resources: + requests: + cpus: '4' + memory: 2g +exporter: + redistimeseries: + break_by: + - version + - commit + timemetric: $."ALL STATS".Runtime."Start time" + metrics: + - $."ALL STATS".Totals."Ops/sec" + - $."ALL STATS".Totals."Latency" + - $."ALL STATS".Totals."Misses/sec" + - $."ALL STATS".Totals."Percentile Latencies"."p50.00" From 4fbf950b89cb00c42799d90b0bbc8665fe2a80d7 Mon Sep 17 00:00:00 2001 From: Martin Dimitrov Date: Fri, 16 Dec 2022 10:09:00 -0700 Subject: [PATCH 3/5] added support for zincrby --- ...rk-1key-zincrby-1M-elements-pipeline-1.yml | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml new file mode 100644 index 00000000..49373313 --- /dev/null +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml @@ -0,0 +1,37 @@ +version: 0.4 +name: memtier_benchmark-1key-zincrby-1M-elements-pipeline-1 +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements and we query it using ZINCRBY.' +dbconfig: + configuration-parameters: + save: '""' + preload_tool: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum 1000000 --key-prefix "" -n 1000000 --hide-histogram -t 1 -c 1 +tested-groups: +- sorted-set +tested-commands: +- zincrby +redis-topologies: +- oss-standalone +build-variants: +- gcc:8.5.0-amd64-debian-buster-default +clientconfig: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --command="ZINCRBY key1 1 __key__" --key-maximum 1000000 --command-key-pattern=R --hide-histogram --test-time 180 --pipeline 1 + resources: + requests: + cpus: '4' + memory: 2g +exporter: + redistimeseries: + break_by: + - version + - commit + timemetric: $."ALL STATS".Runtime."Start time" + metrics: + - $."ALL STATS".Totals."Ops/sec" + - $."ALL STATS".Totals."Latency" + - $."ALL STATS".Totals."Misses/sec" + - $."ALL STATS".Totals."Percentile Latencies"."p50.00" From fb5840cc814c9aafcc513e79f04fc16e77f9b8e6 Mon Sep 17 00:00:00 2001 From: Martin Dimitrov Date: Fri, 16 Dec 2022 11:10:28 -0700 Subject: [PATCH 4/5] added support for zrem, zincrby zrank and zrevrank --- ...rk-1key-zincrby-1M-elements-pipeline-1.yml | 4 +- ...mark-1key-zrank-1M-elements-pipeline-1.yml | 2 +- ...hmark-1key-zrem-5M-elements-pipeline-1.yml | 37 +++++++++++++++++++ ...k-1key-zrevrank-1M-elements-pipeline-1.yml | 2 +- 4 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml index 49373313..3c1e26ec 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml @@ -1,6 +1,6 @@ version: 0.4 name: memtier_benchmark-1key-zincrby-1M-elements-pipeline-1 -description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements and we query it using ZINCRBY.' +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 1M elements and we increment the score of memebers using ZINCRBY.' dbconfig: configuration-parameters: save: '""' @@ -19,7 +19,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZINCRBY key1 1 __key__" --key-maximum 1000000 --command-key-pattern=R --hide-histogram --test-time 180 --pipeline 1 + arguments: --command="ZINCRBY key1 1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml index 94cdacfb..01322782 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml @@ -19,7 +19,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --hide-histogram --test-time 180 --pipeline 1 + arguments: --command="ZRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml new file mode 100644 index 00000000..43fc3d09 --- /dev/null +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrem-5M-elements-pipeline-1.yml @@ -0,0 +1,37 @@ +version: 0.4 +name: memtier_benchmark-1key-zrem-5M-elements-pipeline-1 +description: 'Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key. The SORTED SET contains 5M elements and we remove members using ZREM. Throughout the course of the benchmark,the sorted set contains fewer members as we continuously remove them. The chance that we ask for a member to be removed, which was already removed, also increases. Starting with a large number of members helps us to have suffienct number of members for the duration of the benchmark, however the preload stage takes longer to complete. NOTE: using the --randomize flag ensures that we continue to remove elements the longer we run the test. Without the flag, we stop removing elements after some time, possibly we keep generating the same random numbers. ' +dbconfig: + configuration-parameters: + save: '""' + preload_tool: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --command="ZADD key1 __key__ __key__" --command-key-pattern=P --key-maximum 5000000 --key-prefix "" -n 5000000 --hide-histogram -t 1 -c 1 +tested-groups: +- sorted-set +tested-commands: +- zrem +redis-topologies: +- oss-standalone +build-variants: +- gcc:8.5.0-amd64-debian-buster-default +clientconfig: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --command="ZREM key1 __key__" --key-maximum 5000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 --randomize + resources: + requests: + cpus: '4' + memory: 2g +exporter: + redistimeseries: + break_by: + - version + - commit + timemetric: $."ALL STATS".Runtime."Start time" + metrics: + - $."ALL STATS".Totals."Ops/sec" + - $."ALL STATS".Totals."Latency" + - $."ALL STATS".Totals."Misses/sec" + - $."ALL STATS".Totals."Percentile Latencies"."p50.00" diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml index 4264d369..139c0ca1 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml @@ -19,7 +19,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZREVRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --hide-histogram --test-time 180 --pipeline 1 + arguments: --command="ZREVRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 resources: requests: cpus: '4' From a0ec519f523690c352271402f80972ff407fbf81 Mon Sep 17 00:00:00 2001 From: Martin Dimitrov Date: Fri, 16 Dec 2022 11:13:13 -0700 Subject: [PATCH 5/5] adding -c 1 and -t 1 since we are operating on a single key. more clients only create contention. --- .../memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml | 2 +- .../memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml | 2 +- .../memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml index 3c1e26ec..22f96ed5 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zincrby-1M-elements-pipeline-1.yml @@ -19,7 +19,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZINCRBY key1 1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 + arguments: --command="ZINCRBY key1 1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml index 01322782..dbef327b 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrank-1M-elements-pipeline-1.yml @@ -19,7 +19,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 + arguments: --command="ZRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml index 139c0ca1..36acc49d 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1.yml @@ -19,7 +19,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --command="ZREVRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 + arguments: --command="ZREVRANK key1 __key__" --key-maximum 1000000 --command-key-pattern=R --key-prefix "" --hide-histogram --test-time 180 --pipeline 1 -c 1 -t 1 resources: requests: cpus: '4'