Skip to content

Conversation

@fcostaoliveira
Copy link
Collaborator

@fcostaoliveira fcostaoliveira commented Jun 4, 2025

Summary

Adds a software prefetch with a 2K stride to the scalar popcount loop in redisPopcount().
Prefetching improved BITCOUNT throughput by up to 41.6%, reduced p50 latency by up to 43.9%, and significantly lowered L3 memory stalls, confirming effective mitigation of memory-bound bottlenecks, with no negative impact on L1/L2 usage or cache pollution (confirmed with HW counters).

Note: The 2K stride was the best starting from 128,256,512,1024,2048,4096.
4K gave the same outcome so it's best to avoid larger strides without reason.

Performance gains on client side

  • +25.6% throughput gain: +6,789 ops/sec with prefetching
  • -20.1% latency reduction: Avg latency dropped from 7.53 ms to 6.01 ms
Configuration Avg Ops/sec Avg Latency (ms) p50 Latency p99 Latency p99.9 Latency Avg KB/sec
Baseline b7c6755 (no prefetch) 26,550.91 7.531 7.839 12.863 14.527 2,881.61
With 2K Prefetch 33,339.50 6.014 6.239 10.239 11.583 3,618.39

Performance gains on HW

  • L3 stalls decreased, confirmed via Topdown metrics
Metric Baseline (%) Prefetch (%) Notes
Backend_Bound 55.5 43.9 🟢 Reduced overall backend stalls — shows better pipeline throughput
└── Memory_Bound 23.0 11.4 🟢 Major drop in memory stalls — prefetching mitigated memory latency
├── L1_Bound 1.6 3.1 🔺 Slightly increased — prefetch might hit L1, but not harmful
├── L2_Bound 0.3 2.1 🔺 Higher, likely due to deeper prefetch coverage
├── L3_Bound 20.5 6.1 🟢 Huge reduction — prefetch hides L3 latency well
└── DRAM_Bound 0.0 0.0 No significant DRAM pressure in either case
Core_Bound 32.4 32.5 ⚪️ No change — compute capacity utilization unchanged
└── Ports_Utilization 23.9 21.8 🟢 Slight improvement in execution port efficiency
Frontend_Bound 3.1 2.7 🟢 Minor improvement — better i-cache behavior
Retiring 41.0 52.9 🟢 More uops completed — clearer sign of improved efficiency

Replicate the results

Benchmark

preload

 memtier_benchmark --hide-histogram --command "SETBIT users __key__ 1" --key-maximum 100000000 --key-minimum 1 -n 10000 --key-prefix "" --command-key-pattern R --distinct-client-seed --pipeline 10

benchmark

memtier_benchmark --command "BITCOUNT users __key__ -1" --key-maximum 100000000 --key-minimum 1 --key-prefix "" --command-key-pattern R --distinct-client-seed --test-time 60  --hide-histogram -x 3

HW counters

you can replicate the hw collection with the following command on the server side while benchmarking (you need a metal VM of physical HW access)

 sudo ./toplev.py --pid $(pgrep redis-server) --level 3   --nodes '+Backend_Bound.Memory_Bound,+Backend_Bound.Memory_Bound.L1_Bound,+Backend_Bound.Memory_Bound.L2_Bound,+Backend_Bound.Memory_Bound.L3_Bound'  --verbose -- sleep 30

Full benchmark suite

pip3 install redis-benchmarks-specification==0.1.260
redis-benchmarks-spec-client-runner --tests-regexp ".*-bitcount" --flushall_on_every_test_start --flushall_on_every_test_end  --cpuset_start_pos 2 --override-memtier-test-time 30 --benchmark_local_install --override-test-runs 3 --db_server_port <...port...> --db_server_password <...password...> --db_server_host <...host...>
Test Name Metric JSON Path baseline comparison %c change
memtier_benchmark-1key-100M-bits-bitmap-bitcount BEST RUN RESULTS.Totals."Ops/sec" 26594.85 33214.18 24.9%
memtier_benchmark-1key-1Billion-bits-bitmap-bitcount BEST RUN RESULTS.Totals."Ops/sec" 2090.65 2960.12 41.6%
memtier_benchmark-1key-100M-bits-bitmap-bitcount BEST RUN RESULTS.Totals."Percentile Latencies"."p50.00" 7.647 6.143 24.5%
memtier_benchmark-1key-1Billion-bits-bitmap-bitcount BEST RUN RESULTS.Totals."Percentile Latencies"."p50.00" 97.279 67.583 43.9%
memtier_benchmark-1key-100M-bits-bitmap-bitcount BEST RUN RESULTS.Totals."Percentile Latencies"."p99.00" 12.031 9.855 22.1%
memtier_benchmark-1key-1Billion-bits-bitmap-bitcount BEST RUN RESULTS.Totals."Percentile Latencies"."p99.00" 162.815 116.735 39.5%

@fcostaoliveira fcostaoliveira requested a review from sundb June 4, 2025 20:31
@fcostaoliveira fcostaoliveira added the action:run-benchmark Triggers the benchmark suite for this Pull Request label Jun 4, 2025
@fcostaoliveira
Copy link
Collaborator Author

fcostaoliveira commented Jun 4, 2025

CE Performance Automation : step 1 of 2 (build) DONE.

This comment was automatically generated given a benchmark was triggered.
Started building at 2025-06-10 16:31:19.217457 and took 65 seconds.
You can check each build/benchmark progress in grafana:

  • git hash: 4be5cca
  • git branch: filipecosta90:prefetch.popcount
  • commit date and time: n/a
  • commit summary: n/a
  • test filters:
    • command priority lower limit: 0
    • command priority upper limit: 10000
    • test name regex: .*
    • command group regex: .*

You can check a comparison in detail via the grafana link

@fcostaoliveira
Copy link
Collaborator Author

fcostaoliveira commented Jun 4, 2025

CE Performance Automation : step 2 of 2 (benchmark) FINISHED.

This comment was automatically generated given a benchmark was triggered.

Started benchmark suite at 2025-06-21 21:46:11.741325 and took 11296.191358 seconds to finish.
Status: [################################################################################] 100.0% completed.

In total will run 176 benchmarks.
- 0 pending.
- 176 completed:
- 0 successful.
- 176 failed.
You can check a the status in detail via the grafana link

@snyk-io
Copy link

snyk-io bot commented Jun 4, 2025

🎉 Snyk checks have passed. No issues have been found so far.

security/snyk check is complete. No issues have been found. (View Details)

license/snyk check is complete. No issues have been found. (View Details)

@sundb sundb requested review from ShooterIT and Copilot June 5, 2025 01:48
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR introduces a 2 KiB software prefetch into the scalar loop of redisPopcount to hide memory latency and boost BITCOUNT throughput by up to 41.6%.

  • Inserted redis_prefetch_read(p + 2048); in the popcount loop
  • Added a comment explaining the 2 KiB stride rationale
Comments suppressed due to low confidence (1)

src/bitops.c:72

  • [nitpick] Clarify the comment by using "2 KiB" (instead of "2K") and specify "L3 cache miss latency" for precision.
/* Prefetch with 2K stride is just enough to overlap L3 miss latency effectively

@fcostaoliveira
Copy link
Collaborator Author

fcostaoliveira commented Jun 5, 2025

Automated performance analysis summary

This comment was automatically generated given there is performance data available.

Using platform named: intel64-ubuntu22.04-redis-clx1 to do the comparison.

In summary:

  • Detected a total of 22 stable tests between versions.
  • Detected a total of 89 highly unstable benchmarks.
  • Detected a total of 45 improvements above the improvement water line.
  • Detected a total of 20 regressions bellow the regression water line 10.0.
    • Median/Common-Case regression was -27.4% and ranged from [-39.2%,-14.3%].

You can check a comparison in detail via the grafana link

Comparison between unstable and filipecosta90:prefetch.popcount.

Time Period from 5 months ago. (environment used: oss-standalone)

Unstable Table

Test Case Baseline redis/redis unstable (median obs. +- std.dev) Comparison redis/redis filipecosta90:prefetch.popcount (median obs. +- std.dev) % change (higher-better) Note
memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values 94897 89470 +- 16.7% UNSTABLE (2 datapoints) -5.7% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values 30905 31965 +- 27.6% UNSTABLE (2 datapoints) 3.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values 1363 1870 +- 23.9% UNSTABLE (3 datapoints) 37.2% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values 56359 69237 +- 19.8% UNSTABLE (2 datapoints) 22.8% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10 189996 241920 +- 27.1% UNSTABLE (2 datapoints) 27.3% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-100B-expire-use-case 70430 95275 +- 22.7% UNSTABLE (2 datapoints) 35.3% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-10B-expire-use-case 82010 90550 +- 33.1% UNSTABLE (2 datapoints) 10.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-1KiB-expire-use-case 105937 100396 +- 10.6% UNSTABLE (2 datapoints) -5.2% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-4KiB-expire-use-case 81188 87268 +- 18.2% UNSTABLE (2 datapoints) 7.5% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10 583168 600581 +- 10.7% UNSTABLE (2 datapoints) 3.0% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-generic-expire-pipeline-10 652716 554939 +- 30.7% UNSTABLE (2 datapoints) -15.0% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-generic-expireat-pipeline-10 484677 547854 +- 28.7% UNSTABLE (2 datapoints) 13.0% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10 459250 515769 +- 34.7% UNSTABLE (2 datapoints) 12.3% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-generic-scan-pipeline-10 252856 253290 +- 23.1% UNSTABLE (3 datapoints) 0.2% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-generic-touch-pipeline-10 538011 627325 +- 12.3% UNSTABLE (2 datapoints) 16.6% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-generic-ttl-pipeline-10 647632 665328 +- 13.9% UNSTABLE (2 datapoints) 2.7% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-hash-hexists 74733 86457 +- 20.3% UNSTABLE (2 datapoints) 15.7% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values 75707 91644 +- 23.3% UNSTABLE (2 datapoints) 21.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values 100900 90587 +- 12.9% UNSTABLE (2 datapoints) -10.2% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10 330329 448541 +- 19.4% UNSTABLE (2 datapoints) 35.8% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values 73900 84712 +- 44.1% UNSTABLE (2 datapoints) 14.6% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values 94876 98190 +- 39.2% UNSTABLE (2 datapoints) 3.5% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10 70033 90123 +- 36.4% UNSTABLE (2 datapoints) 28.7% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values 68680 52171 +- 39.5% UNSTABLE (2 datapoints) -24.0% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-load-list-with-100B-values 94178 73696 +- 12.7% UNSTABLE (2 datapoints) -21.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1Mkeys-load-list-with-1KiB-values 49371 61320 +- 19.5% UNSTABLE (2 datapoints) 24.2% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10 51171 63001 +- 24.8% UNSTABLE (2 datapoints) 23.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values 59804 70813 +- 11.2% UNSTABLE (2 datapoints) 18.4% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10 174859 198832 +- 14.7% UNSTABLE (2 datapoints) 13.7% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-string-with-100B-values 92635 86327 +- 16.1% UNSTABLE (2 datapoints) -6.8% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-load-string-with-10B-values 71780 91954 +- 29.2% UNSTABLE (2 datapoints) 28.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10 498616 465158 +- 14.0% UNSTABLE (2 datapoints) -6.7% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-load-string-with-1KiB-values 68734 77767 +- 40.3% UNSTABLE (2 datapoints) 13.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-string-with-20KiB-values 24748 24832 +- 10.7% UNSTABLE (2 datapoints) 0.3% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score 68354 64677 +- 15.8% UNSTABLE (2 datapoints) -5.4% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score 77584 79543 +- 12.8% UNSTABLE (2 datapoints) 2.5% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-string-append-1-100B 87074 81415 +- 21.7% UNSTABLE (2 datapoints) -6.5% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-string-get-100B 77382 77198 +- 24.4% UNSTABLE (2 datapoints) -0.2% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-string-get-100B-pipeline-10 498985 593703 +- 21.3% UNSTABLE (2 datapoints) 19.0% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-string-get-10B 81657 92573 +- 38.4% UNSTABLE (2 datapoints) 13.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-string-get-10B-pipeline-10 497965 470029 +- 23.7% UNSTABLE (2 datapoints) -5.6% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-string-get-1KiB 81459 98515 +- 18.7% UNSTABLE (2 datapoints) 20.9% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-string-incrby-pipeline-10 517667 446511 +- 16.2% UNSTABLE (2 datapoints) -13.7% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-string-incrbyfloat 74711 87208 +- 16.3% UNSTABLE (2 datapoints) 16.7% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10 250193 294254 +- 44.7% UNSTABLE (2 datapoints) 17.6% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10 255186 444078 +- 22.3% UNSTABLE (2 datapoints) 74.0% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10 493585 504198 +- 26.9% UNSTABLE (2 datapoints) 2.2% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-100M-bits-bitmap-bitcount 12915 16627 +- 19.6% UNSTABLE (2 datapoints) 28.7% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-1Billion-bits-bitmap-bitcount 857 935 +- 25.7% UNSTABLE (2 datapoints) 9.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-geo-2-elements-geopos 74898 89426 +- 47.0% UNSTABLE (2 datapoints) 19.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-geo-60M-elements-geodist 77279 88498 +- 43.9% UNSTABLE (2 datapoints) 14.5% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10 693265 679912 +- 11.0% UNSTABLE (2 datapoints) -1.9% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-geo-60M-elements-geohash 113590 96509 +- 37.9% UNSTABLE (2 datapoints) -15.0% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10 772648 478203 +- 15.9% UNSTABLE (2 datapoints) -38.1% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-geo-60M-elements-geopos 76248 107157 +- 12.1% UNSTABLE (2 datapoints) 40.5% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10 589276 606036 +- 42.8% UNSTABLE (2 datapoints) 2.8% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat 74404 71564 +- 32.2% UNSTABLE (2 datapoints) -3.8% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10 326199 343022 +- 17.3% UNSTABLE (2 datapoints) 5.2% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-hash-hscan-50-fields-10B-values 37792 58038 +- 25.5% UNSTABLE (2 datapoints) 53.6% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-list-10-elements-lrange-all-elements 103400 89098 +- 28.7% UNSTABLE (2 datapoints) -13.8% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-list-100-elements-lrange-all-elements 51678 58969 +- 28.7% UNSTABLE (2 datapoints) 14.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-list-10K-elements-lindex-integer 51375 72967 +- 31.6% UNSTABLE (2 datapoints) 42.0% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-list-10K-elements-lindex-string 46497 73512 +- 15.1% UNSTABLE (2 datapoints) 58.1% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer 3859 2698 +- 11.2% UNSTABLE (2 datapoints) -30.1% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-list-10K-elements-lpos-integer 2251 3398 +- 38.3% UNSTABLE (2 datapoints) 51.0% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-set-10-elements-smembers 100854 91382 +- 12.3% UNSTABLE (2 datapoints) -9.4% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-set-10-elements-smismember 111799 95665 +- 10.2% UNSTABLE (2 datapoints) -14.4% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-set-100-elements-sismember-not-a-member 95476 72871 +- 12.4% UNSTABLE (2 datapoints) -23.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-set-1K-elements-smembers 8584 10242 +- 23.7% UNSTABLE (2 datapoints) 19.3% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-set-200K-elements-sadd-constant 99466 86940 +- 15.0% UNSTABLE (2 datapoints) -12.6% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-set-2M-elements-sadd-increasing 67185 84732 +- 23.4% UNSTABLE (2 datapoints) 26.1% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1 58454 44574 +- 12.3% UNSTABLE (2 datapoints) -23.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-10-elements-zrange-all-elements 43454 41808 +- 12.6% UNSTABLE (2 datapoints) -3.8% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores 84066 51147 +- 13.8% UNSTABLE (2 datapoints) -39.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-100-elements-zrange-all-elements 16755 14069 +- 22.8% UNSTABLE (2 datapoints) -16.0% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements 10075 12641 +- 10.1% UNSTABLE (2 datapoints) 25.5% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-zset-100-elements-zscan 26950 32668 +- 26.1% UNSTABLE (2 datapoints) 21.2% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10 802014 742180 +- 12.2% UNSTABLE (2 datapoints) -7.5% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements 66376 94626 +- 15.5% UNSTABLE (2 datapoints) 42.6% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10 551215 634786 +- 17.8% UNSTABLE (3 datapoints) 15.2% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-2keys-lua-eval-hset-expire 61096 52170 +- 24.7% UNSTABLE (2 datapoints) -14.6% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-2keys-lua-evalsha-hset-expire 71624 61138 +- 22.7% UNSTABLE (2 datapoints) -14.6% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-2keys-set-10-100-elements-sdiff 13176 15210 +- 35.9% UNSTABLE (2 datapoints) 15.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-2keys-set-10-100-elements-sinter 32704 51600 +- 22.3% UNSTABLE (2 datapoints) 57.8% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-2keys-set-10-100-elements-sunion 17180 19114 +- 11.1% UNSTABLE (2 datapoints) 11.3% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-2keys-stream-5-entries-xread-all-entries 45384 35445 +- 14.6% UNSTABLE (2 datapoints) -21.9% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10 57738 81336 +- 19.4% UNSTABLE (2 datapoints) 40.9% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore 2383 2144 +- 14.6% UNSTABLE (2 datapoints) -10.0% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-connection-hello 98946 87744 +- 21.2% UNSTABLE (2 datapoints) -11.3% UNSTABLE (very high variance) potential REGRESSION

Unstable test regexp names: memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values|memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values|memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values|memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values|memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10|memtier_benchmark-1Mkeys-100B-expire-use-case|memtier_benchmark-1Mkeys-10B-expire-use-case|memtier_benchmark-1Mkeys-1KiB-expire-use-case|memtier_benchmark-1Mkeys-4KiB-expire-use-case|memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10|memtier_benchmark-1Mkeys-generic-expire-pipeline-10|memtier_benchmark-1Mkeys-generic-expireat-pipeline-10|memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10|memtier_benchmark-1Mkeys-generic-scan-pipeline-10|memtier_benchmark-1Mkeys-generic-touch-pipeline-10|memtier_benchmark-1Mkeys-generic-ttl-pipeline-10|memtier_benchmark-1Mkeys-hash-hexists|memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values|memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values|memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10|memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values|memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values|memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10|memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values|memtier_benchmark-1Mkeys-load-list-with-100B-values|memtier_benchmark-1Mkeys-load-list-with-1KiB-values|memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10|memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values|memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10|memtier_benchmark-1Mkeys-load-string-with-100B-values|memtier_benchmark-1Mkeys-load-string-with-10B-values|memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10|memtier_benchmark-1Mkeys-load-string-with-1KiB-values|memtier_benchmark-1Mkeys-load-string-with-20KiB-values|memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score|memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score|memtier_benchmark-1Mkeys-string-append-1-100B|memtier_benchmark-1Mkeys-string-get-100B|memtier_benchmark-1Mkeys-string-get-100B-pipeline-10|memtier_benchmark-1Mkeys-string-get-10B|memtier_benchmark-1Mkeys-string-get-10B-pipeline-10|memtier_benchmark-1Mkeys-string-get-1KiB|memtier_benchmark-1Mkeys-string-incrby-pipeline-10|memtier_benchmark-1Mkeys-string-incrbyfloat|memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10|memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10|memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10|memtier_benchmark-1key-100M-bits-bitmap-bitcount|memtier_benchmark-1key-1Billion-bits-bitmap-bitcount|memtier_benchmark-1key-geo-2-elements-geopos|memtier_benchmark-1key-geo-60M-elements-geodist|memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10|memtier_benchmark-1key-geo-60M-elements-geohash|memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10|memtier_benchmark-1key-geo-60M-elements-geopos|memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10|memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat|memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10|memtier_benchmark-1key-hash-hscan-50-fields-10B-values|memtier_benchmark-1key-list-10-elements-lrange-all-elements|memtier_benchmark-1key-list-100-elements-lrange-all-elements|memtier_benchmark-1key-list-10K-elements-lindex-integer|memtier_benchmark-1key-list-10K-elements-lindex-string|memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer|memtier_benchmark-1key-list-10K-elements-lpos-integer|memtier_benchmark-1key-set-10-elements-smembers|memtier_benchmark-1key-set-10-elements-smismember|memtier_benchmark-1key-set-100-elements-sismember-not-a-member|memtier_benchmark-1key-set-1K-elements-smembers|memtier_benchmark-1key-set-200K-elements-sadd-constant|memtier_benchmark-1key-set-2M-elements-sadd-increasing|memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1|memtier_benchmark-1key-zset-10-elements-zrange-all-elements|memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores|memtier_benchmark-1key-zset-100-elements-zrange-all-elements|memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements|memtier_benchmark-1key-zset-100-elements-zscan|memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10|memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements|memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10|memtier_benchmark-2keys-lua-eval-hset-expire|memtier_benchmark-2keys-lua-evalsha-hset-expire|memtier_benchmark-2keys-set-10-100-elements-sdiff|memtier_benchmark-2keys-set-10-100-elements-sinter|memtier_benchmark-2keys-set-10-100-elements-sunion|memtier_benchmark-2keys-stream-5-entries-xread-all-entries|memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10|memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore|memtier_benchmark-connection-hello

Regressions Table

Test Case Baseline redis/redis unstable (median obs. +- std.dev) Comparison redis/redis filipecosta90:prefetch.popcount (median obs. +- std.dev) % change (higher-better) Note
memtier_benchmark-1Mkeys-load-list-with-100B-values 94178 73696 +- 12.7% UNSTABLE (2 datapoints) -21.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1Mkeys-load-set-intset-with-100-elements 45743 30666 +- 1.2% (2 datapoints) -33.0% REGRESSION
memtier_benchmark-1Mkeys-string-mget-1KiB 49573 41558 +- 2.8% (2 datapoints) -16.2% REGRESSION
memtier_benchmark-1Mkeys-string-setrange-100B 109773 69727 +- 7.3% (2 datapoints) -36.5% REGRESSION
memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10 772648 478203 +- 15.9% UNSTABLE (2 datapoints) -38.1% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox 87841 66203 +- 3.5% (3 datapoints) -24.6% REGRESSION
memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer 3859 2698 +- 11.2% UNSTABLE (2 datapoints) -30.1% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-list-10K-elements-linsert-lrem-string 4467 3570 +- 5.0% (2 datapoints) -20.1% REGRESSION
memtier_benchmark-1key-list-10K-elements-lpos-string 5090 4363 +- 3.9% (2 datapoints) -14.3% REGRESSION
memtier_benchmark-1key-list-1K-elements-lrange-all-elements 10580 8456 +- 5.5% (2 datapoints) -20.1% REGRESSION
memtier_benchmark-1key-set-10-elements-smismember 111799 95665 +- 10.2% UNSTABLE (2 datapoints) -14.4% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-set-100-elements-sismember-is-a-member 106828 70786 +- 9.4% (2 datapoints) -33.7% REGRESSION
memtier_benchmark-1key-set-100-elements-sismember-not-a-member 95476 72871 +- 12.4% UNSTABLE (2 datapoints) -23.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-set-100-elements-smembers 69250 47458 +- 2.8% (2 datapoints) -31.5% REGRESSION
memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance 112265 74905 +- 7.8% (2 datapoints) -33.3% REGRESSION
memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1 58454 44574 +- 12.3% UNSTABLE (2 datapoints) -23.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores 84066 51147 +- 13.8% UNSTABLE (2 datapoints) -39.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores 35855 23248 +- 9.2% (2 datapoints) -35.2% REGRESSION
memtier_benchmark-2keys-stream-5-entries-xread-all-entries 45384 35445 +- 14.6% UNSTABLE (2 datapoints) -21.9% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-3Mkeys-load-string-with-512B-values 107082 73478 +- 4.6% (2 datapoints) -31.4% REGRESSION

Regressions test regexp names: memtier_benchmark-1Mkeys-load-list-with-100B-values|memtier_benchmark-1Mkeys-load-set-intset-with-100-elements|memtier_benchmark-1Mkeys-string-mget-1KiB|memtier_benchmark-1Mkeys-string-setrange-100B|memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10|memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox|memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer|memtier_benchmark-1key-list-10K-elements-linsert-lrem-string|memtier_benchmark-1key-list-10K-elements-lpos-string|memtier_benchmark-1key-list-1K-elements-lrange-all-elements|memtier_benchmark-1key-set-10-elements-smismember|memtier_benchmark-1key-set-100-elements-sismember-is-a-member|memtier_benchmark-1key-set-100-elements-sismember-not-a-member|memtier_benchmark-1key-set-100-elements-smembers|memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance|memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1|memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores|memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores|memtier_benchmark-2keys-stream-5-entries-xread-all-entries|memtier_benchmark-3Mkeys-load-string-with-512B-values

Improvements Table

Test Case Baseline redis/redis unstable (median obs. +- std.dev) Comparison redis/redis filipecosta90:prefetch.popcount (median obs. +- std.dev) % change (higher-better) Note
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-1K-elements-smembers 7012 9063 29.2% IMPROVEMENT
memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values 18524 25892 +- 0.9% (2 datapoints) 39.8% IMPROVEMENT
memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values 1363 1870 +- 23.9% UNSTABLE (3 datapoints) 37.2% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values 56359 69237 +- 19.8% UNSTABLE (2 datapoints) 22.8% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10 109855 153383 +- 3.5% (2 datapoints) 39.6% IMPROVEMENT
memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values 58266 73981 +- 5.8% (2 datapoints) 27.0% IMPROVEMENT
memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10 189996 241920 +- 27.1% UNSTABLE (2 datapoints) 27.3% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-100B-expire-use-case 70430 95275 +- 22.7% UNSTABLE (2 datapoints) 35.3% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-generic-touch-pipeline-10 538011 627325 +- 12.3% UNSTABLE (2 datapoints) 16.6% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-hash-hincrby 63373 107686 +- 1.2% (2 datapoints) 69.9% IMPROVEMENT
memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10 330329 448541 +- 19.4% UNSTABLE (2 datapoints) 35.8% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20 652645 730258 +- 5.4% (2 datapoints) 11.9% IMPROVEMENT
memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values 83230 110025 +- 1.4% (2 datapoints) 32.2% IMPROVEMENT
memtier_benchmark-1Mkeys-load-list-with-1KiB-values 49371 61320 +- 19.5% UNSTABLE (2 datapoints) 24.2% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values 59804 70813 +- 11.2% UNSTABLE (2 datapoints) 18.4% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10 110941 140183 +- 6.8% (3 datapoints) 26.4% IMPROVEMENT
memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10 338006 501665 +- 3.2% (2 datapoints) 48.4% IMPROVEMENT
memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score 1406 2629 +- 4.6% (2 datapoints) 86.9% IMPROVEMENT
memtier_benchmark-1Mkeys-string-decr 69461 102568 +- 1.9% (2 datapoints) 47.7% IMPROVEMENT
memtier_benchmark-1Mkeys-string-get-1KiB 81459 98515 +- 18.7% UNSTABLE (2 datapoints) 20.9% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-string-incrby 84944 100109 +- 8.6% (3 datapoints) 17.9% IMPROVEMENT
memtier_benchmark-1Mkeys-string-incrbyfloat 74711 87208 +- 16.3% UNSTABLE (2 datapoints) 16.7% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10 255186 444078 +- 22.3% UNSTABLE (2 datapoints) 74.0% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-100M-bits-bitmap-bitcount 12915 16627 +- 19.6% UNSTABLE (2 datapoints) 28.7% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord 46516 52053 +- 1.3% (2 datapoints) 11.9% IMPROVEMENT
memtier_benchmark-1key-geo-60M-elements-geopos 76248 107157 +- 12.1% UNSTABLE (2 datapoints) 40.5% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-hash-hscan-50-fields-10B-values 37792 58038 +- 25.5% UNSTABLE (2 datapoints) 53.6% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10 74148 87363 +- 0.2% (2 datapoints) 17.8% IMPROVEMENT
memtier_benchmark-1key-list-10K-elements-lindex-integer 51375 72967 +- 31.6% UNSTABLE (2 datapoints) 42.0% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-list-10K-elements-lindex-string 46497 73512 +- 15.1% UNSTABLE (2 datapoints) 58.1% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-list-10K-elements-lpos-integer 2251 3398 +- 38.3% UNSTABLE (2 datapoints) 51.0% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10 8708 11752 +- 1.3% (2 datapoints) 34.9% IMPROVEMENT
memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs 3910 4644 +- 3.4% (2 datapoints) 18.8% IMPROVEMENT
memtier_benchmark-1key-pfadd-4KB-values-pipeline-10 106605 137189 +- 3.1% (2 datapoints) 28.7% IMPROVEMENT
memtier_benchmark-1key-set-10-elements-smembers-pipeline-10 361992 487230 +- 1.9% (2 datapoints) 34.6% IMPROVEMENT
memtier_benchmark-1key-set-100-elements-sscan 50535 64149 +- 2.1% (2 datapoints) 26.9% IMPROVEMENT
memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance 94896 108806 +- 2.1% (2 datapoints) 14.7% IMPROVEMENT
memtier_benchmark-1key-set-2M-elements-sadd-increasing 67185 84732 +- 23.4% UNSTABLE (2 datapoints) 26.1% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-zrem-5M-elements-pipeline-1 23113 27382 +- 4.2% (2 datapoints) 18.5% IMPROVEMENT
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements 10075 12641 +- 10.1% UNSTABLE (2 datapoints) 25.5% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-zset-1K-elements-zrange-all-elements 1731 2295 +- 2.2% (2 datapoints) 32.6% IMPROVEMENT
memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements 66376 94626 +- 15.5% UNSTABLE (2 datapoints) 42.6% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-2keys-set-10-100-elements-sinter 32704 51600 +- 22.3% UNSTABLE (2 datapoints) 57.8% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-2keys-set-10-100-elements-sunion 17180 19114 +- 11.1% UNSTABLE (2 datapoints) 11.3% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10 57738 81336 +- 19.4% UNSTABLE (2 datapoints) 40.9% UNSTABLE (very high variance) IMPROVEMENT

Improvements test regexp names: latency-rate-limited-10000_qps-memtier_benchmark-1key-set-1K-elements-smembers|memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values|memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values|memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values|memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10|memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values|memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10|memtier_benchmark-1Mkeys-100B-expire-use-case|memtier_benchmark-1Mkeys-generic-touch-pipeline-10|memtier_benchmark-1Mkeys-hash-hincrby|memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10|memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20|memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values|memtier_benchmark-1Mkeys-load-list-with-1KiB-values|memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values|memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10|memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10|memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score|memtier_benchmark-1Mkeys-string-decr|memtier_benchmark-1Mkeys-string-get-1KiB|memtier_benchmark-1Mkeys-string-incrby|memtier_benchmark-1Mkeys-string-incrbyfloat|memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10|memtier_benchmark-1key-100M-bits-bitmap-bitcount|memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord|memtier_benchmark-1key-geo-60M-elements-geopos|memtier_benchmark-1key-hash-hscan-50-fields-10B-values|memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10|memtier_benchmark-1key-list-10K-elements-lindex-integer|memtier_benchmark-1key-list-10K-elements-lindex-string|memtier_benchmark-1key-list-10K-elements-lpos-integer|memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10|memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs|memtier_benchmark-1key-pfadd-4KB-values-pipeline-10|memtier_benchmark-1key-set-10-elements-smembers-pipeline-10|memtier_benchmark-1key-set-100-elements-sscan|memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance|memtier_benchmark-1key-set-2M-elements-sadd-increasing|memtier_benchmark-1key-zrem-5M-elements-pipeline-1|memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements|memtier_benchmark-1key-zset-1K-elements-zrange-all-elements|memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements|memtier_benchmark-2keys-set-10-100-elements-sinter|memtier_benchmark-2keys-set-10-100-elements-sunion|memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10

Full Results table:
Test Case Baseline redis/redis unstable (median obs. +- std.dev) Comparison redis/redis filipecosta90:prefetch.popcount (median obs. +- std.dev) % change (higher-better) Note
latency-rate-limited-10000_qps-memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10 9995 10000 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-expire-pipeline-10 10000 9998 -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10 9994 9990 -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-list-100-elements-lrange-all-elements 9992 9978 -0.1% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-sismember-not-a-member 9977 9988 0.1% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-1K-elements-smembers 7012 9063 29.2% IMPROVEMENT
latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zscan 9968 9908 -0.6% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10 9988 9992 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-3Mkeys-load-string-with-512B-values 9752 9808 0.6% No Change
latency-rate-limited-1000_qps-memtier_benchmark-1key-zset-1K-elements-zrange-all-elements 1001 1001 -0.0% No Change
memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values 94897 89470 +- 16.7% UNSTABLE (2 datapoints) -5.7% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values 6063 6448 +- 0.8% (2 datapoints) 6.4% potential IMPROVEMENT
memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values 30905 31965 +- 27.6% UNSTABLE (2 datapoints) 3.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values 18524 25892 +- 0.9% (2 datapoints) 39.8% IMPROVEMENT
memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values 1363 1870 +- 23.9% UNSTABLE (3 datapoints) 37.2% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values 56359 69237 +- 19.8% UNSTABLE (2 datapoints) 22.8% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10 109855 153383 +- 3.5% (2 datapoints) 39.6% IMPROVEMENT
memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values 58266 73981 +- 5.8% (2 datapoints) 27.0% IMPROVEMENT
memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10 189996 241920 +- 27.1% UNSTABLE (2 datapoints) 27.3% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-100B-expire-use-case 70430 95275 +- 22.7% UNSTABLE (2 datapoints) 35.3% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-10B-expire-use-case 82010 90550 +- 33.1% UNSTABLE (2 datapoints) 10.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-1KiB-expire-use-case 105937 100396 +- 10.6% UNSTABLE (2 datapoints) -5.2% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-4KiB-expire-use-case 81188 87268 +- 18.2% UNSTABLE (2 datapoints) 7.5% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10 583168 600581 +- 10.7% UNSTABLE (2 datapoints) 3.0% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-generic-exists-pipeline-10 682083 693134 +- 2.5% (2 datapoints) 1.6% No Change
memtier_benchmark-1Mkeys-generic-expire-pipeline-10 652716 554939 +- 30.7% UNSTABLE (2 datapoints) -15.0% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-generic-expireat-pipeline-10 484677 547854 +- 28.7% UNSTABLE (2 datapoints) 13.0% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10 459250 515769 +- 34.7% UNSTABLE (2 datapoints) 12.3% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-generic-scan-pipeline-10 252856 253290 +- 23.1% UNSTABLE (3 datapoints) 0.2% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-generic-touch-pipeline-10 538011 627325 +- 12.3% UNSTABLE (2 datapoints) 16.6% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-generic-ttl-pipeline-10 647632 665328 +- 13.9% UNSTABLE (2 datapoints) 2.7% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-hash-hexists 74733 86457 +- 20.3% UNSTABLE (2 datapoints) 15.7% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values 75707 91644 +- 23.3% UNSTABLE (2 datapoints) 21.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values 100900 90587 +- 12.9% UNSTABLE (2 datapoints) -10.2% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-hash-hincrby 63373 107686 +- 1.2% (2 datapoints) 69.9% IMPROVEMENT
memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10 330329 448541 +- 19.4% UNSTABLE (2 datapoints) 35.8% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20 652645 730258 +- 5.4% (2 datapoints) 11.9% IMPROVEMENT
memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values 73900 84712 +- 44.1% UNSTABLE (2 datapoints) 14.6% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values 94876 98190 +- 39.2% UNSTABLE (2 datapoints) 3.5% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values 83230 110025 +- 1.4% (2 datapoints) 32.2% IMPROVEMENT
memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values 69709 63252 +- 7.0% (2 datapoints) -9.3% potential REGRESSION
memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10 70033 90123 +- 36.4% UNSTABLE (2 datapoints) 28.7% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values 68680 52171 +- 39.5% UNSTABLE (2 datapoints) -24.0% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-load-list-with-100B-values 94178 73696 +- 12.7% UNSTABLE (2 datapoints) -21.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1Mkeys-load-list-with-10B-values 99142 90036 +- 9.7% (2 datapoints) -9.2% potential REGRESSION
memtier_benchmark-1Mkeys-load-list-with-1KiB-values 49371 61320 +- 19.5% UNSTABLE (2 datapoints) 24.2% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-load-set-intset-with-100-elements 45743 30666 +- 1.2% (2 datapoints) -33.0% REGRESSION
memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10 51171 63001 +- 24.8% UNSTABLE (2 datapoints) 23.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values 59804 70813 +- 11.2% UNSTABLE (2 datapoints) 18.4% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10 174859 198832 +- 14.7% UNSTABLE (2 datapoints) 13.7% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values 63297 65303 +- 0.0% (2 datapoints) 3.2% potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10 110941 140183 +- 6.8% (3 datapoints) 26.4% IMPROVEMENT
memtier_benchmark-1Mkeys-load-string-with-100B-values 92635 86327 +- 16.1% UNSTABLE (2 datapoints) -6.8% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10 338006 501665 +- 3.2% (2 datapoints) 48.4% IMPROVEMENT
memtier_benchmark-1Mkeys-load-string-with-10B-values 71780 91954 +- 29.2% UNSTABLE (2 datapoints) 28.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10 498616 465158 +- 14.0% UNSTABLE (2 datapoints) -6.7% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-load-string-with-1KiB-values 68734 77767 +- 40.3% UNSTABLE (2 datapoints) 13.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-string-with-20KiB-values 24748 24832 +- 10.7% UNSTABLE (2 datapoints) 0.3% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score 1406 2629 +- 4.6% (2 datapoints) 86.9% IMPROVEMENT
memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score 68354 64677 +- 15.8% UNSTABLE (2 datapoints) -5.4% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score 77584 79543 +- 12.8% UNSTABLE (2 datapoints) 2.5% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-string-append-1-100B 87074 81415 +- 21.7% UNSTABLE (2 datapoints) -6.5% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10 604135 620878 +- 2.8% (2 datapoints) 2.8% No Change
memtier_benchmark-1Mkeys-string-decr 69461 102568 +- 1.9% (2 datapoints) 47.7% IMPROVEMENT
memtier_benchmark-1Mkeys-string-get-100B 77382 77198 +- 24.4% UNSTABLE (2 datapoints) -0.2% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-string-get-100B-pipeline-10 498985 593703 +- 21.3% UNSTABLE (2 datapoints) 19.0% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-string-get-10B 81657 92573 +- 38.4% UNSTABLE (2 datapoints) 13.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-string-get-10B-pipeline-10 497965 470029 +- 23.7% UNSTABLE (2 datapoints) -5.6% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-string-get-1KiB 81459 98515 +- 18.7% UNSTABLE (2 datapoints) 20.9% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10 469425 477182 +- 0.7% (2 datapoints) 1.7% No Change
memtier_benchmark-1Mkeys-string-incrby 84944 100109 +- 8.6% (3 datapoints) 17.9% IMPROVEMENT
memtier_benchmark-1Mkeys-string-incrby-pipeline-10 517667 446511 +- 16.2% UNSTABLE (2 datapoints) -13.7% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-string-incrbyfloat 74711 87208 +- 16.3% UNSTABLE (2 datapoints) 16.7% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10 250193 294254 +- 44.7% UNSTABLE (2 datapoints) 17.6% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-string-mget-1KiB 49573 41558 +- 2.8% (2 datapoints) -16.2% REGRESSION
memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10 255186 444078 +- 22.3% UNSTABLE (2 datapoints) 74.0% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1Mkeys-string-setrange-100B 109773 69727 +- 7.3% (2 datapoints) -36.5% REGRESSION
memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10 493585 504198 +- 26.9% UNSTABLE (2 datapoints) 2.2% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-100M-bits-bitmap-bitcount 12915 16627 +- 19.6% UNSTABLE (2 datapoints) 28.7% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-1Billion-bits-bitmap-bitcount 857 935 +- 25.7% UNSTABLE (2 datapoints) 9.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-geo-2-elements-geopos 74898 89426 +- 47.0% UNSTABLE (2 datapoints) 19.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord 46516 52053 +- 1.3% (2 datapoints) 11.9% IMPROVEMENT
memtier_benchmark-1key-geo-60M-elements-geodist 77279 88498 +- 43.9% UNSTABLE (2 datapoints) 14.5% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10 693265 679912 +- 11.0% UNSTABLE (2 datapoints) -1.9% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-geo-60M-elements-geohash 113590 96509 +- 37.9% UNSTABLE (2 datapoints) -15.0% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10 772648 478203 +- 15.9% UNSTABLE (2 datapoints) -38.1% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-geo-60M-elements-geopos 76248 107157 +- 12.1% UNSTABLE (2 datapoints) 40.5% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10 589276 606036 +- 42.8% UNSTABLE (2 datapoints) 2.8% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat 74404 71564 +- 32.2% UNSTABLE (2 datapoints) -3.8% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox 87841 66203 +- 3.5% (3 datapoints) -24.6% REGRESSION
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10 326199 343022 +- 17.3% UNSTABLE (2 datapoints) 5.2% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-hash-hscan-50-fields-10B-values 37792 58038 +- 25.5% UNSTABLE (2 datapoints) 53.6% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-list-10-elements-lrange-all-elements 103400 89098 +- 28.7% UNSTABLE (2 datapoints) -13.8% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10 468838 467707 +- 5.3% (2 datapoints) -0.2% No Change
memtier_benchmark-1key-list-100-elements-lrange-all-elements 51678 58969 +- 28.7% UNSTABLE (2 datapoints) 14.1% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10 74148 87363 +- 0.2% (2 datapoints) 17.8% IMPROVEMENT
memtier_benchmark-1key-list-10K-elements-lindex-integer 51375 72967 +- 31.6% UNSTABLE (2 datapoints) 42.0% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-list-10K-elements-lindex-string 46497 73512 +- 15.1% UNSTABLE (2 datapoints) 58.1% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer 3859 2698 +- 11.2% UNSTABLE (2 datapoints) -30.1% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-list-10K-elements-linsert-lrem-string 4467 3570 +- 5.0% (2 datapoints) -20.1% REGRESSION
memtier_benchmark-1key-list-10K-elements-lpos-integer 2251 3398 +- 38.3% UNSTABLE (2 datapoints) 51.0% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-list-10K-elements-lpos-string 5090 4363 +- 3.9% (2 datapoints) -14.3% REGRESSION
memtier_benchmark-1key-list-1K-elements-lrange-all-elements 10580 8456 +- 5.5% (2 datapoints) -20.1% REGRESSION
memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10 8708 11752 +- 1.3% (2 datapoints) 34.9% IMPROVEMENT
memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs 3910 4644 +- 3.4% (2 datapoints) 18.8% IMPROVEMENT
memtier_benchmark-1key-pfadd-4KB-values-pipeline-10 106605 137189 +- 3.1% (2 datapoints) 28.7% IMPROVEMENT
memtier_benchmark-1key-set-10-elements-smembers 100854 91382 +- 12.3% UNSTABLE (2 datapoints) -9.4% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-set-10-elements-smembers-pipeline-10 361992 487230 +- 1.9% (2 datapoints) 34.6% IMPROVEMENT
memtier_benchmark-1key-set-10-elements-smismember 111799 95665 +- 10.2% UNSTABLE (2 datapoints) -14.4% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-set-100-elements-sismember-is-a-member 106828 70786 +- 9.4% (2 datapoints) -33.7% REGRESSION
memtier_benchmark-1key-set-100-elements-sismember-not-a-member 95476 72871 +- 12.4% UNSTABLE (2 datapoints) -23.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-set-100-elements-smembers 69250 47458 +- 2.8% (2 datapoints) -31.5% REGRESSION
memtier_benchmark-1key-set-100-elements-smismember 105760 97937 +- 0.4% (2 datapoints) -7.4% potential REGRESSION
memtier_benchmark-1key-set-100-elements-sscan 50535 64149 +- 2.1% (2 datapoints) 26.9% IMPROVEMENT
memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance 94896 108806 +- 2.1% (2 datapoints) 14.7% IMPROVEMENT
memtier_benchmark-1key-set-1K-elements-smembers 8584 10242 +- 23.7% UNSTABLE (2 datapoints) 19.3% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance 112265 74905 +- 7.8% (2 datapoints) -33.3% REGRESSION
memtier_benchmark-1key-set-200K-elements-sadd-constant 99466 86940 +- 15.0% UNSTABLE (2 datapoints) -12.6% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-set-2M-elements-sadd-increasing 67185 84732 +- 23.4% UNSTABLE (2 datapoints) 26.1% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-zincrby-1M-elements-pipeline-1 22764 23603 +- 8.7% (2 datapoints) 3.7% potential IMPROVEMENT
memtier_benchmark-1key-zrank-1M-elements-pipeline-1 26696 27440 +- 0.2% (2 datapoints) 2.8% No Change
memtier_benchmark-1key-zrem-5M-elements-pipeline-1 23113 27382 +- 4.2% (2 datapoints) 18.5% IMPROVEMENT
memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1 58454 44574 +- 12.3% UNSTABLE (2 datapoints) -23.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1 26418 25215 +- 5.3% (2 datapoints) -4.6% potential REGRESSION
memtier_benchmark-1key-zset-10-elements-zrange-all-elements 43454 41808 +- 12.6% UNSTABLE (2 datapoints) -3.8% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores 84066 51147 +- 13.8% UNSTABLE (2 datapoints) -39.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-100-elements-zrange-all-elements 16755 14069 +- 22.8% UNSTABLE (2 datapoints) -16.0% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements 10075 12641 +- 10.1% UNSTABLE (2 datapoints) 25.5% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores 35855 23248 +- 9.2% (2 datapoints) -35.2% REGRESSION
memtier_benchmark-1key-zset-100-elements-zscan 26950 32668 +- 26.1% UNSTABLE (2 datapoints) 21.2% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-zset-1K-elements-zrange-all-elements 1731 2295 +- 2.2% (2 datapoints) 32.6% IMPROVEMENT
memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10 802014 742180 +- 12.2% UNSTABLE (2 datapoints) -7.5% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements 66376 94626 +- 15.5% UNSTABLE (2 datapoints) 42.6% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10 551215 634786 +- 17.8% UNSTABLE (3 datapoints) 15.2% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-2keys-lua-eval-hset-expire 61096 52170 +- 24.7% UNSTABLE (2 datapoints) -14.6% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-2keys-lua-evalsha-hset-expire 71624 61138 +- 22.7% UNSTABLE (2 datapoints) -14.6% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-2keys-set-10-100-elements-sdiff 13176 15210 +- 35.9% UNSTABLE (2 datapoints) 15.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-2keys-set-10-100-elements-sinter 32704 51600 +- 22.3% UNSTABLE (2 datapoints) 57.8% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-2keys-set-10-100-elements-sunion 17180 19114 +- 11.1% UNSTABLE (2 datapoints) 11.3% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-2keys-stream-5-entries-xread-all-entries 45384 35445 +- 14.6% UNSTABLE (2 datapoints) -21.9% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10 57738 81336 +- 19.4% UNSTABLE (2 datapoints) 40.9% UNSTABLE (very high variance) IMPROVEMENT
memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion 2148 1993 +- 3.6% (3 datapoints) -7.2% potential REGRESSION
memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore 2383 2144 +- 14.6% UNSTABLE (2 datapoints) -10.0% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-3Mkeys-load-string-with-512B-values 107082 73478 +- 4.6% (2 datapoints) -31.4% REGRESSION
memtier_benchmark-connection-hello 98946 87744 +- 21.2% UNSTABLE (2 datapoints) -11.3% UNSTABLE (very high variance) potential REGRESSION

@ShooterIT ShooterIT merged commit 66b3d2d into redis:unstable Jun 13, 2025
18 checks passed
sundb added a commit that referenced this pull request Oct 14, 2025
…14309)

This PR introduces **vectorized implementations of `BITCOUNT`** for
x86_64 targets with AVX2 and AVX512 support.

- **AVX2 path**: processes 32B at a time, using unrolled POPCNT on
64-bit lanes with independent accumulators to reduce data dependencies.
- **AVX512 path**: leverages `VPOPCNTDQ` on 64B chunks with
`_mm512_reduce_add_epi64` to efficiently aggregate results across
512-bit vectors.
- Both paths include cache prefetching hints to better overlap memory
fetches with computation. This was proved to matter in
#14103.
- Fallbacks to the scalar implementation if hardware support is
unavailable.

---------

Co-authored-by: debing.sun <debing.sun@redis.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action:run-benchmark Triggers the benchmark suite for this Pull Request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants