Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize client type check on reply hot code paths #13516

Merged
merged 4 commits into from
Sep 6, 2024

Conversation

fcostaoliveira
Copy link
Collaborator

@fcostaoliveira fcostaoliveira commented Sep 5, 2024

Proposed improvement

This PR introduces the static inlined function clientTypeIsSlave which is doing only 1 condition check vs 3 checks of getClientType, and also uses the unlikely to tell the compiler that the most common outcome is for the client not to be a slave.
Preliminary data show 3% improvement on the achievable ops/sec on the specific LRANGE benchmark. After running the entire suite we see up to 5% improvement in 2 tests. #13516 (comment)

Context

This optimization efforts comes from analyzing the profile info from the memtier_benchmark-1key-list-1K-elements-lrange-all-elements benchmark.

By going over it, we can see that getClientType consumes 2% of the cpu time, strictly to check if the client is a slave ( https://github.com/redis/redis/blob/unstable/src/networking.c#L397 , and https://github.com/redis/redis/blob/unstable/src/networking.c#L1254 )

Function CPU Time: Total CPU Time: Self Module Function (Full)
_addReplyToBufferOrList->getClientType 1.20% 0.728s redis-server getClientType
clientHasPendingReplies->getClientType 0.80% 0.482s redis-server getClientType

TODO:

Manuel preliminary results

unstable branch ea3e8b7

Test Name Metric JSON Path Metric Value
memtier_benchmark-1key-list-1K-elements-lrange-all-elements "ALL STATS".Totals."Ops/sec" 16646.530
memtier_benchmark-1key-list-1K-elements-lrange-all-elements "ALL STATS".Totals."Latency" 12.008
memtier_benchmark-1key-list-1K-elements-lrange-all-elements "ALL STATS".Totals."Misses/sec" 0.000
memtier_benchmark-1key-list-1K-elements-lrange-all-elements "ALL STATS".Totals."Percentile Latencies"."p50.00" 11.903

This PR 4263c2f

Test Name Metric JSON Path Metric Value
memtier_benchmark-1key-list-1K-elements-lrange-all-elements "ALL STATS".Totals."Ops/sec" 17158.680
memtier_benchmark-1key-list-1K-elements-lrange-all-elements "ALL STATS".Totals."Latency" 11.649
memtier_benchmark-1key-list-1K-elements-lrange-all-elements "ALL STATS".Totals."Misses/sec" 0.000
memtier_benchmark-1key-list-1K-elements-lrange-all-elements "ALL STATS".Totals."Percentile Latencies"."p50.00" 11.583

@sundb
Copy link
Collaborator

sundb commented Sep 5, 2024

if ((c->reply_bytes == 0 && getClientType(c) != CLIENT_TYPE_SLAVE) ||

missing this line?

@fcostaoliveira
Copy link
Collaborator Author

Automated performance analysis summary

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

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

In summary:

  • Detected a total of 116 stable tests between versions.
  • Detected a total of 3 highly unstable benchmarks.
  • Detected a total of 2 improvements above the improvement water line.
    • Median/Common-Case improvement was 5.3% and ranged from [5.2%,5.4%].

You can check a comparison in detail via the grafana link

Comparison between unstable and client.type.perf.

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

Improvements Table

Test Case Baseline redis/redis unstable (median obs. +- std.dev) Comparison /redis client.type.perf (median obs. +- std.dev) % change (higher-better) Note
memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10 400930 +- 3.7% (2 datapoints) 422494 5.4% IMPROVEMENT
memtier_benchmark-2keys-set-10-100-elements-sunion 15805 +- 0.8% (2 datapoints) 16624 5.2% IMPROVEMENT

Improvements test regexp names: memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10|memtier_benchmark-2keys-set-10-100-elements-sunion

Full Results table:
Test Case Baseline redis/redis unstable (median obs. +- std.dev) Comparison /redis client.type.perf (median obs. +- std.dev) % change (higher-better) Note
memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values 73882 +- 32.8% UNSTABLE (2 datapoints) 90844 23.0% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10 123484 +- 0.9% (2 datapoints) 125455 1.6% No Change
memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values 124185 +- 1.6% (2 datapoints) 123815 +- 1.1% (2 datapoints) -0.3% No Change
memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10 324930 +- 0.6% (2 datapoints) 327539 0.8% No Change
memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values 142054 +- 1.9% (2 datapoints) 143689 1.2% No Change
memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10 400930 +- 3.7% (2 datapoints) 422494 5.4% IMPROVEMENT
memtier_benchmark-1Mkeys-100B-expire-use-case 180119 +- 0.8% (2 datapoints) 180352 0.1% No Change
memtier_benchmark-1Mkeys-10B-expire-use-case 181821 +- 0.6% (2 datapoints) 181391 +- 0.0% (2 datapoints) -0.2% No Change
memtier_benchmark-1Mkeys-1KiB-expire-use-case 177047 +- 0.5% (2 datapoints) 177525 +- 0.4% (2 datapoints) 0.3% No Change
memtier_benchmark-1Mkeys-4KiB-expire-use-case 169735 +- 0.6% (2 datapoints) 169825 +- 0.9% (2 datapoints) 0.1% No Change
memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10 924337 +- 3.7% (2 datapoints) 929613 +- 1.6% (2 datapoints) 0.6% No Change
memtier_benchmark-1Mkeys-generic-exists-pipeline-10 995728 +- 0.2% (2 datapoints) 1003364 +- 0.0% (2 datapoints) 0.8% No Change
memtier_benchmark-1Mkeys-generic-expire-pipeline-10 915936 +- 1.1% (2 datapoints) 914353 -0.2% No Change
memtier_benchmark-1Mkeys-generic-expireat-pipeline-10 888604 +- 0.0% (2 datapoints) 895484 +- 0.7% (2 datapoints) 0.8% No Change
memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10 886057 +- 0.1% (2 datapoints) 909677 +- 2.1% (2 datapoints) 2.7% No Change
memtier_benchmark-1Mkeys-generic-scan-pipeline-10 503523 +- 1.4% (2 datapoints) 493515 +- 2.5% (2 datapoints) -2.0% No Change
memtier_benchmark-1Mkeys-generic-touch-pipeline-10 985904 +- 0.4% (2 datapoints) 987556 +- 1.7% (2 datapoints) 0.2% No Change
memtier_benchmark-1Mkeys-generic-ttl-pipeline-10 989744 +- 1.2% (2 datapoints) 966922 +- 1.9% (2 datapoints) -2.3% No Change
memtier_benchmark-1Mkeys-hash-hexists 164025 +- 1.4% (2 datapoints) 167323 2.0% No Change
memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values 185608 +- 1.5% (2 datapoints) 186010 +- 1.7% (2 datapoints) 0.2% No Change
memtier_benchmark-1Mkeys-hash-hincrby 178709 +- 1.1% (2 datapoints) 173822 -2.7% No Change
memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10 730559 +- 0.7% (2 datapoints) 742924 1.7% No Change
memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20 1055255 +- 0.0% (2 datapoints) 1048010 +- 0.6% (2 datapoints) -0.7% No Change
memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values 187778 +- 1.5% (2 datapoints) 188614 0.4% No Change
memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values 187307 +- 0.9% (2 datapoints) 186321 -0.5% No Change
memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values 183917 +- 1.3% (2 datapoints) 186040 +- 0.3% (2 datapoints) 1.2% No Change
memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values 108537 +- 1.2% (2 datapoints) 111380 2.6% No Change
memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10 152111 +- 0.7% (2 datapoints) 155070 1.9% No Change
memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values 109307 +- 2.3% (2 datapoints) 109490 +- 0.6% (2 datapoints) 0.2% No Change
memtier_benchmark-1Mkeys-load-list-with-100B-values 154955 +- 0.6% (2 datapoints) 155091 +- 0.1% (2 datapoints) 0.1% No Change
memtier_benchmark-1Mkeys-load-list-with-10B-values 168088 +- 1.2% (2 datapoints) 169579 +- 0.0% (2 datapoints) 0.9% No Change
memtier_benchmark-1Mkeys-load-list-with-1KiB-values 116308 +- 1.1% (2 datapoints) 116501 0.2% No Change
memtier_benchmark-1Mkeys-load-set-intset-with-100-elements 71993 +- 0.8% (2 datapoints) 72277 +- 0.6% (2 datapoints) 0.4% No Change
memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10 109516 +- 0.5% (2 datapoints) 109844 +- 0.5% (2 datapoints) 0.3% No Change
memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values 131715 +- 1.2% (2 datapoints) 132593 0.7% No Change
memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10 349024 +- 1.8% (2 datapoints) 352626 +- 0.5% (2 datapoints) 1.0% No Change
memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values 107036 +- 1.7% (2 datapoints) 107235 0.2% No Change
memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10 218654 +- 1.0% (2 datapoints) 217941 +- 1.7% (2 datapoints) -0.3% No Change
memtier_benchmark-1Mkeys-load-string-with-100B-values 170362 +- 1.7% (2 datapoints) 173601 +- 0.9% (2 datapoints) 1.9% No Change
memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10 658179 +- 2.6% (2 datapoints) 660411 +- 1.4% (2 datapoints) 0.3% No Change
memtier_benchmark-1Mkeys-load-string-with-10B-values 178486 +- 1.7% (2 datapoints) 178171 +- 0.5% (2 datapoints) -0.2% No Change
memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10 755415 +- 8.0% (2 datapoints) 806500 6.8% waterline=8.0%. potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-string-with-1KiB-values 161814 +- 0.6% (2 datapoints) 163700 1.2% No Change
memtier_benchmark-1Mkeys-load-string-with-200KiB-values 4992 +- 0.3% (2 datapoints) 5044 1.0% No Change
memtier_benchmark-1Mkeys-load-string-with-20KiB-values 67555 +- 2.8% (2 datapoints) 67852 +- 2.0% (2 datapoints) 0.4% No Change
memtier_benchmark-1Mkeys-load-string-with-2MB-values 520 +- 1.0% (2 datapoints) 521 0.2% No Change
memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score 1562 +- 25.4% UNSTABLE (2 datapoints) 1834 +- 0.3% (2 datapoints) 17.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score 93620 +- 2.8% (2 datapoints) 93926 +- 1.3% (2 datapoints) 0.3% No Change
memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score 118347 +- 2.0% (2 datapoints) 119118 0.7% No Change
memtier_benchmark-1Mkeys-string-append-1-100B 182581 +- 2.1% (2 datapoints) 181905 -0.4% No Change
memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10 792180 +- 0.0% (2 datapoints) 792048 -0.0% No Change
memtier_benchmark-1Mkeys-string-decr 164408 +- 1.1% (2 datapoints) 167698 2.0% No Change
memtier_benchmark-1Mkeys-string-get-100B 183829 +- 0.3% (2 datapoints) 182569 -0.7% No Change
memtier_benchmark-1Mkeys-string-get-100B-pipeline-10 1009410 +- 3.3% (2 datapoints) 1015338 +- 4.2% (2 datapoints) 0.6% No Change
memtier_benchmark-1Mkeys-string-get-10B 182310 +- 1.4% (2 datapoints) 184009 0.9% No Change
memtier_benchmark-1Mkeys-string-get-10B-pipeline-10 1026312 +- 1.2% (2 datapoints) 1024845 +- 1.9% (2 datapoints) -0.1% No Change
memtier_benchmark-1Mkeys-string-get-1KiB 184653 +- 0.2% (2 datapoints) 184010 +- 0.6% (2 datapoints) -0.3% No Change
memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10 991270 +- 1.7% (2 datapoints) 992538 +- 0.8% (2 datapoints) 0.1% No Change
memtier_benchmark-1Mkeys-string-get-200KiB 97702 +- 3.7% (2 datapoints) 99626 +- 2.0% (2 datapoints) 2.0% No Change
memtier_benchmark-1Mkeys-string-get-20KiB 173330 +- 1.2% (2 datapoints) 173482 +- 1.5% (2 datapoints) 0.1% No Change
memtier_benchmark-1Mkeys-string-get-2MB N/A N/A 0.0%
memtier_benchmark-1Mkeys-string-incrby 188069 +- 1.7% (2 datapoints) 180599 +- 2.8% (2 datapoints) -4.0% potential REGRESSION
memtier_benchmark-1Mkeys-string-incrby-pipeline-10 911700 +- 0.6% (2 datapoints) 920544 1.0% No Change
memtier_benchmark-1Mkeys-string-incrbyfloat 157836 +- 0.4% (2 datapoints) 157788 +- 1.0% (2 datapoints) -0.0% No Change
memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10 458184 +- 0.5% (2 datapoints) 456922 -0.3% No Change
memtier_benchmark-1Mkeys-string-mget-1KiB 121840 +- 1.2% (2 datapoints) 123103 1.0% No Change
memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10 697205 +- 0.5% (2 datapoints) 690091 -1.0% No Change
memtier_benchmark-1Mkeys-string-setrange-100B 182292 +- 2.2% (2 datapoints) 183182 +- 1.0% (2 datapoints) 0.5% No Change
memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10 830658 +- 1.2% (2 datapoints) 832525 +- 1.4% (2 datapoints) 0.2% No Change
memtier_benchmark-1key-geo-2-elements-geopos 160721 +- 1.1% (2 datapoints) 163641 1.8% No Change
memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord 97152 +- 1.0% (2 datapoints) 98479 1.4% No Change
memtier_benchmark-1key-geo-60M-elements-geodist 186932 +- 3.9% (2 datapoints) 185874 -0.6% No Change
memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10 1028950 +- 1.3% (2 datapoints) 1025451 +- 2.1% (2 datapoints) -0.3% No Change
memtier_benchmark-1key-geo-60M-elements-geohash 187590 +- 1.0% (2 datapoints) 183559 +- 0.3% (2 datapoints) -2.1% No Change
memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10 1046420 +- 1.2% (2 datapoints) 1087901 +- 0.8% (2 datapoints) 4.0% potential IMPROVEMENT
memtier_benchmark-1key-geo-60M-elements-geopos 191170 +- 1.7% (2 datapoints) 184395 -3.5% potential REGRESSION
memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10 1052947 +- 2.9% (2 datapoints) 1068456 1.5% No Change
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat 143642 +- 0.1% (2 datapoints) 146404 1.9% No Change
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox 141442 +- 1.8% (2 datapoints) 140938 +- 1.6% (2 datapoints) -0.4% No Change
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10 517070 +- 10.3% UNSTABLE (2 datapoints) 539963 +- 1.4% (2 datapoints) 4.4% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1key-list-10-elements-lrange-all-elements 171991 +- 1.1% (2 datapoints) 173215 +- 2.0% (2 datapoints) 0.7% No Change
memtier_benchmark-1key-list-100-elements-lrange-all-elements 104134 +- 0.1% (2 datapoints) 104150 +- 1.0% (2 datapoints) 0.0% No Change
memtier_benchmark-1key-list-1K-elements-lrange-all-elements 17425 +- 3.8% (2 datapoints) 18165 +- 0.5% (2 datapoints) 4.2% potential IMPROVEMENT
memtier_benchmark-1key-pfadd-4KB-values-pipeline-10 266390 +- 0.4% (2 datapoints) 269292 1.1% No Change
memtier_benchmark-1key-set-10-elements-smembers 175585 +- 0.1% (2 datapoints) 175801 0.1% No Change
memtier_benchmark-1key-set-10-elements-smembers-pipeline-10 651422 +- 0.8% (2 datapoints) 663263 1.8% No Change
memtier_benchmark-1key-set-10-elements-smismember 178685 +- 2.2% (2 datapoints) 179678 +- 0.3% (2 datapoints) 0.6% No Change
memtier_benchmark-1key-set-100-elements-sismember-is-a-member 174595 +- 2.8% (2 datapoints) 175476 +- 2.7% (2 datapoints) 0.5% No Change
memtier_benchmark-1key-set-100-elements-sismember-not-a-member 169103 +- 5.6% (2 datapoints) 170027 0.5% waterline=5.6%. No Change
memtier_benchmark-1key-set-100-elements-smembers 97483 +- 0.9% (2 datapoints) 101539 +- 1.0% (2 datapoints) 4.2% potential IMPROVEMENT
memtier_benchmark-1key-set-100-elements-smismember 164087 +- 0.8% (2 datapoints) 161561 +- 1.2% (2 datapoints) -1.5% No Change
memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance 181393 +- 0.1% (2 datapoints) 180120 +- 0.4% (2 datapoints) -0.7% No Change
memtier_benchmark-1key-set-1K-elements-smembers 15645 +- 0.2% (2 datapoints) 16059 +- 0.3% (2 datapoints) 2.6% No Change
memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance 185465 +- 0.3% (2 datapoints) 182976 +- 0.4% (2 datapoints) -1.3% No Change
memtier_benchmark-1key-set-200K-elements-sadd-constant 183758 +- 0.3% (2 datapoints) 184437 +- 0.6% (2 datapoints) 0.4% No Change
memtier_benchmark-1key-set-2M-elements-sadd-increasing 166019 +- 0.9% (2 datapoints) 166296 +- 0.6% (2 datapoints) 0.2% No Change
memtier_benchmark-1key-zincrby-1M-elements-pipeline-1 45118 +- 2.4% (2 datapoints) 45288 +- 2.0% (2 datapoints) 0.4% No Change
memtier_benchmark-1key-zrank-1M-elements-pipeline-1 48349 +- 1.9% (2 datapoints) 48434 +- 1.3% (2 datapoints) 0.2% No Change
memtier_benchmark-1key-zrem-5M-elements-pipeline-1 48834 +- 0.9% (2 datapoints) 48826 -0.0% No Change
memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1 102391 +- 2.2% (2 datapoints) 103974 1.5% No Change
memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1 48737 +- 1.0% (2 datapoints) 48607 +- 0.6% (2 datapoints) -0.3% No Change
memtier_benchmark-1key-zset-10-elements-zrange-all-elements 84981 +- 0.1% (2 datapoints) 85359 +- 0.1% (2 datapoints) 0.4% No Change
memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores 121450 +- 1.1% (2 datapoints) 121938 +- 2.5% (2 datapoints) 0.4% No Change
memtier_benchmark-1key-zset-100-elements-zrange-all-elements 19645 +- 0.0% (2 datapoints) 19857 +- 0.1% (2 datapoints) 1.1% No Change
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements 19730 +- 0.1% (2 datapoints) 19897 0.8% No Change
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores 51725 +- 0.2% (2 datapoints) 53911 +- 0.1% (2 datapoints) 4.2% potential IMPROVEMENT
memtier_benchmark-1key-zset-1K-elements-zrange-all-elements 3689 +- 0.1% (2 datapoints) 3735 +- 1.1% (2 datapoints) 1.2% No Change
memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10 1062512 +- 0.8% (2 datapoints) 1067628 +- 1.2% (2 datapoints) 0.5% No Change
memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements 176692 +- 1.2% (2 datapoints) 174620 -1.2% No Change
memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10 916650 +- 1.1% (2 datapoints) 917770 +- 1.7% (2 datapoints) 0.1% No Change
memtier_benchmark-2keys-lua-eval-hset-expire 87055 +- 0.2% (2 datapoints) 89471 2.8% No Change
memtier_benchmark-2keys-lua-evalsha-hset-expire 103297 +- 0.1% (2 datapoints) 103744 +- 1.3% (2 datapoints) 0.4% No Change
memtier_benchmark-2keys-set-10-100-elements-sdiff 16429 +- 0.0% (2 datapoints) 16680 +- 0.7% (2 datapoints) 1.5% No Change
memtier_benchmark-2keys-set-10-100-elements-sinter 89250 +- 0.7% (2 datapoints) 91083 2.1% No Change
memtier_benchmark-2keys-set-10-100-elements-sunion 15805 +- 0.8% (2 datapoints) 16624 5.2% IMPROVEMENT
memtier_benchmark-2keys-stream-5-entries-xread-all-entries 78501 +- 0.6% (2 datapoints) 78745 +- 0.6% (2 datapoints) 0.3% No Change
memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10 123792 +- 1.1% (2 datapoints) 124963 0.9% No Change
memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion 2739 +- 0.9% (2 datapoints) 2810 +- 0.0% (2 datapoints) 2.6% No Change
memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore 3066 +- 1.9% (2 datapoints) 3114 1.6% No Change
memtier_benchmark-3Mkeys-load-string-with-512B-values 161104 +- 0.4% (2 datapoints) 161522 0.3% No Change
memtier_benchmark-connection-hello 175181 +- 1.1% (2 datapoints) 175269 0.1% No Change

@fcostaoliveira fcostaoliveira requested a review from sundb September 5, 2024 11:55
@sundb sundb merged commit 31227f4 into redis:unstable Sep 6, 2024
14 checks passed
@fcostaoliveira fcostaoliveira deleted the client.type.perf branch September 6, 2024 05:47
@YaacovHazan YaacovHazan mentioned this pull request Sep 11, 2024
YaacovHazan added a commit that referenced this pull request Sep 12, 2024
### New Features in binary distributions

- 7 new data structures: JSON, Time series, Bloom filter, Cuckoo filter,
Count-min sketch, Top-k, t-digest
- Redis scalable query engine (including vector search)

### Potentially breaking changes

- #12272 `GETRANGE` returns an empty bulk when the negative end index is
out of range
- #12395 Optimize `SCAN` command when matching data type

### Bug fixes

- #13510 Fix `RM_RdbLoad` to enable AOF after RDB loading is completed
- #13489 `ACL CAT` - return module commands
- #13476 Fix a race condition in the `cache_memory` of `functionsLibCtx`
- #13473 Fix incorrect lag due to trimming stream via `XTRIM` command
- #13338 Fix incorrect lag field in `XINFO` when tombstone is after the
`last_id` of the consume group
- #13470 On `HDEL` of last field - update the global hash field
expiration data structure
- #13465 Cluster: Pass extensions to node if extension processing is
handled by it
- #13443 Cluster: Ensure validity of myself when loading cluster config
- #13422 Cluster: Fix `CLUSTER SHARDS` command returns empty array

### Modules API

- #13509 New API calls: `RM_DefragAllocRaw`, `RM_DefragFreeRaw`, and
`RM_RegisterDefragCallbacks` - defrag API to allocate and free raw
memory

### Performance and resource utilization improvements

- #13503 Avoid overhead of comparison function pointer calls in listpack
`lpFind`
- #13505 Optimize `STRING` datatype write commands
- #13499 Optimize `SMEMBERS` command
- #13494 Optimize `GEO*` commands reply
- #13490 Optimize `HELLO` command
- #13488 Optimize client query buffer
- #12395 Optimize `SCAN` command when matching data type
- #13529 Optimize `LREM`, `LPOS`, `LINSERT`, and `LINDEX` commands
- #13516 Optimize `LRANGE` and other commands that perform several
writes to client buffers per call
- #13431 Avoid `used_memory` contention when updating from multiple
threads

### Other general improvements

- #13495 Reply `-LOADING` on replica while flushing the db

### CLI tools

- #13411 redis-cli: Fix wrong `dbnum` showed after the client
reconnected

### Notes

- No backward compatibility for replication or persistence.
- Additional distributions, upgrade paths, features, and improvements
will be introduced in upcoming pre-releases.
- With the GA release of 8.0 we will deprecate Redis Stack.
@fcostaoliveira
Copy link
Collaborator Author

fcostaoliveira commented Oct 20, 2024

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

This comment was automatically generated given a benchmark was triggered.

Started benchmark suite at 2024-10-20 16:23:47.408782 and took 1.185164 seconds up until now.
Status: [#-------------------------------------------------------------------------------] 0.74% completed.

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

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.

2 participants