Skip to content

Adding an hmget test with more fields and smaller values (so that it becomes listpack) #358

Open
slice4e wants to merge 5 commits into
redis:mainfrom
slice4e:hmget
Open

Adding an hmget test with more fields and smaller values (so that it becomes listpack) #358
slice4e wants to merge 5 commits into
redis:mainfrom
slice4e:hmget

Conversation

@slice4e

@slice4e slice4e commented Mar 19, 2026

Copy link
Copy Markdown
Collaborator

Runs memtier_benchmark, for a keyspace length of 1M keys pre-loading
listpack-encoded HASHes with 100 fields and 32 Byte values. After
pre-loading, issues HMGET requesting all 100 fields. Tests HMGET
performance on listpack-encoded hashes where N == L.

Adding this test, in relation to this PR: redis/redis#14903


Note

Low Risk
Low risk: adds new benchmark suite YAMLs only, with no production code changes; main risk is increased benchmark runtime/resource usage or misconfigured workloads.

Overview
Adds a new memtier benchmark suite to measure HMGET on listpack-encoded hashes by preloading 1M keys with 100 fields of 32B values and reading all 100 fields with --pipeline 1.

Adds two session-caching playbook suites that preload 100k session:* hashes and apply hash-field expiration via HPEXPIRE, then benchmark read performance for HGETALL and a sibling HKEYS variant designed to highlight CPU-side optimizations under many expired fields.

Written by Cursor Bugbot for commit 8954c76. This will update automatically on new commits. Configure here.

Comment thread redis_benchmarks_specification/test-suites/mset_10B_unstable.txt Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

@@ -0,0 +1,94 @@
version: 0.4
name: memtier_benchmark-session-caching-hash-100k-sessions-with-hfe-expired-fields-hkeys

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test name missing "playbook-" prefix, mismatches filename

Medium Severity

The name field is memtier_benchmark-session-caching-hash-... but the filename includes playbook- (memtier_benchmark-playbook-session-caching-hash-...). Every other playbook file in the repo has the name field match the filename exactly (minus .yml), including the playbook- segment. Since name is used as the test_name identifier in stats, comparisons, and Parca agent labels, this mismatch breaks the established naming convention and could cause confusion in benchmark reporting and cross-referencing.

Additional Locations (1)
Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant