From b2ef6a0f8871c92ad53600a20c35197c0158b7d9 Mon Sep 17 00:00:00 2001 From: Paulo Sousa Date: Sat, 11 Oct 2025 22:26:02 +0100 Subject: [PATCH 1/3] Add memtier benchmark for HyperLogLog PFCOUNT with multiple keys Pre-loads 3 HyperLogLog keys with 10K random elements each using PFADD (dense). Benchmarks PFCOUNT performance counting the pre-loaded HLLs. Useful for evaluating different HyperLogLog dense implementations (scalar, AVX, and NEON SIMD). --- ...hmark-multiple-hll-pfcount-100B-values.yml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfcount-100B-values.yml diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfcount-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfcount-100B-values.yml new file mode 100644 index 0000000..fd1ba44 --- /dev/null +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfcount-100B-values.yml @@ -0,0 +1,34 @@ +version: 0.4 +name: memtier_benchmark-multiple-hll-pfcount-100B-values +description: Runs memtier_benchmark, pre-loading multiple HyperLogLog keys with 100B sized random elements using PFADD, then testing PFCOUNT performance by counting these pre-loaded HLLs. +dbconfig: + configuration-parameters: + save: '""' + check: + keyspacelen: 3 + preload_tool: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: '"--data-size" "100" --random-data --command "PFADD __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 3 -n 30000 -c 1 -t 1 --hide-histogram' + resources: + requests: + memory: 2g +tested-groups: +- hyperloglog +tested-commands: +- pfcount +redis-topologies: +- oss-standalone +build-variants: +- gcc:15.2.0-amd64-debian-bookworm-default +- gcc:15.2.0-arm64-debian-bookworm-default +- dockerhub +clientconfig: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --test-time 180 --command "PFCOUNT memtier-1 memtier-2 memtier-3" -c 50 -t 4 --hide-histogram + resources: + requests: + cpus: '4' + memory: 2g +priority: 62 From e29f6723041f366a8dfbbebfe371f447233a8f44 Mon Sep 17 00:00:00 2001 From: Paulo Sousa Date: Sat, 11 Oct 2025 22:27:13 +0100 Subject: [PATCH 2/3] Add memtier benchmark for HyperLogLog PFMERGE Pre-loads 3 HyperLogLog keys with 10K random elements each using PFADD (dense). Benchmarks PFMERGE performance. Useful for evaluating different HyperLogLog dense implementations (scalar, AVX, and NEON SIMD). --- ...hmark-multiple-hll-pfmerge-100B-values.yml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfmerge-100B-values.yml diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfmerge-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfmerge-100B-values.yml new file mode 100644 index 0000000..153319d --- /dev/null +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfmerge-100B-values.yml @@ -0,0 +1,34 @@ +version: 0.4 +name: memtier_benchmark-multiple-hll-pfmerge-100B-values +description: Runs memtier_benchmark, pre-loading multiple HyperLogLog keys with 100B sized random elements using PFADD, then testing PFMERGE performance by merging these pre-loaded HLLs. +dbconfig: + configuration-parameters: + save: '""' + check: + keyspacelen: 3 + preload_tool: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: '"--data-size" "100" --random-data --command "PFADD __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 3 -n 30000 -c 1 -t 1 --hide-histogram' + resources: + requests: + memory: 2g +tested-groups: +- hyperloglog +tested-commands: +- pfmerge +redis-topologies: +- oss-standalone +build-variants: +- gcc:15.2.0-amd64-debian-bookworm-default +- gcc:15.2.0-arm64-debian-bookworm-default +- dockerhub +clientconfig: + run_image: redislabs/memtier_benchmark:edge + tool: memtier_benchmark + arguments: --test-time 180 --command "PFMERGE merged memtier-1 memtier-2 memtier-3" -c 50 -t 4 --hide-histogram + resources: + requests: + cpus: '4' + memory: 2g +priority: 62 From c3709867cd3b422021a85910b389c703520f9195 Mon Sep 17 00:00:00 2001 From: Paulo Sousa Date: Sun, 12 Oct 2025 09:19:59 +0100 Subject: [PATCH 3/3] Reduce test time for memtier benchmark in HyperLogLog PFCOUNT and PFMERGE tests The operations are stable, so long test durations are unnecessary --- .../memtier_benchmark-multiple-hll-pfcount-100B-values.yml | 2 +- .../memtier_benchmark-multiple-hll-pfmerge-100B-values.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfcount-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfcount-100B-values.yml index fd1ba44..9688bfc 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfcount-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfcount-100B-values.yml @@ -26,7 +26,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 --command "PFCOUNT memtier-1 memtier-2 memtier-3" -c 50 -t 4 --hide-histogram + arguments: --test-time 60 --command "PFCOUNT memtier-1 memtier-2 memtier-3" -c 50 -t 4 --hide-histogram resources: requests: cpus: '4' diff --git a/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfmerge-100B-values.yml b/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfmerge-100B-values.yml index 153319d..b95906c 100644 --- a/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfmerge-100B-values.yml +++ b/redis_benchmarks_specification/test-suites/memtier_benchmark-multiple-hll-pfmerge-100B-values.yml @@ -26,7 +26,7 @@ build-variants: clientconfig: run_image: redislabs/memtier_benchmark:edge tool: memtier_benchmark - arguments: --test-time 180 --command "PFMERGE merged memtier-1 memtier-2 memtier-3" -c 50 -t 4 --hide-histogram + arguments: --test-time 60 --command "PFMERGE merged memtier-1 memtier-2 memtier-3" -c 50 -t 4 --hide-histogram resources: requests: cpus: '4'