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

Reuse c->argv after command execution to reduce memory allocation overhead #13521

Merged
merged 20 commits into from
Nov 14, 2024

Conversation

sundb
Copy link
Collaborator

@sundb sundb commented Sep 6, 2024

inspred by #12730

Before this PR, we allocate new memory to store the user command arguments, however, if the size of the current c->argv is larger than the current command, we can reuse the previously allocated argv to avoid allocating new memory for the current command.
And we will free c->argv in client cron when the client is idle for 2 seconds.

@sundb
Copy link
Collaborator Author

sundb commented Sep 6, 2024

Benchmark

taskset -c 10 ./src/redis-server ./redis.conf --save ""
taskset -c 16-20 memtier_benchmark --pipeline 30 --test-time 60 -c 1000 -t 2 -x 1 --hide-histogram

unstable:

============================================================================================================================
Type         Ops/sec     Hits/sec   Misses/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
----------------------------------------------------------------------------------------------------------------------------
Sets       225653.67          ---          ---        24.16868        21.24700        78.33500        97.27900     17384.17 
Gets      2256369.65       765.07   2255604.57        24.16819        21.24700        78.33500        97.27900     87918.73 
Waits           0.00          ---          ---             ---             ---             ---             ---          --- 
Totals    2482023.32       765.07   2255604.57        24.16824        21.24700        78.33500        97.27900    105302.90 

this PR:

============================================================================================================================
Type         Ops/sec     Hits/sec   Misses/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
----------------------------------------------------------------------------------------------------------------------------
Sets       233583.66          ---          ---        23.35112        20.73500        70.65500        91.13500     17995.41 
Gets      2335672.01       831.42   2334840.59        23.34910        20.73500        70.65500        91.13500     91009.90 
Waits           0.00          ---          ---             ---             ---             ---             ---          --- 
Totals    2569255.67       831.42   2334840.59        23.34928        20.73500        70.65500        91.13500    109005.32 

@sundb sundb marked this pull request as draft September 6, 2024 08:28
@sundb sundb added the action:run-benchmark Triggers the benchmark suite for this Pull Request label Sep 6, 2024
@fcostaoliveira fcostaoliveira added action:run-benchmark Triggers the benchmark suite for this Pull Request and removed action:run-benchmark Triggers the benchmark suite for this Pull Request labels Sep 7, 2024
@sundb sundb marked this pull request as ready for review September 11, 2024 08:42
@sundb
Copy link
Collaborator Author

sundb commented Sep 11, 2024

Update the benchmark

  1. a large number of arguments
taskset -c 16-20 memtier_benchmark --hide-histogram --test-time 180 --pipeline=10 --command="HSET h a 1 b 2 c 3 d 4 e 5 f 6 g 7 h 8 i 9 j 10 k 11 l 12 m 13 n 14 o 15 p 16 q 17 r 18 s 19 t 20"

unstable:

ALL STATS
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hsets      337356.52         5.92733         5.47100        10.43100        11.71100    104435.56 
Totals     337356.52         5.92733         5.47100        10.43100        11.71100    208871.12 

this PR (+3.4%):

ALL STATS
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hsets      348829.18         5.73245         5.47100        10.87900        11.32700    107987.16 
Totals     348829.18         5.73245         5.47100        10.87900        11.32700    215974.32

#12730


ALL STATS
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hsets      330680.58         6.04701         5.27900        10.17500        11.58300    102368.89 
Totals     330680.58         6.04701         5.27900        10.17500        11.58300    204737.78 
  1. small number of arguments
taskset -c 16-20 memtier_benchmark --hide-histogram --test-time 180 --pipeline=10

unstable:

ALL STATS
============================================================================================================================
Type         Ops/sec     Hits/sec   Misses/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
----------------------------------------------------------------------------------------------------------------------------
Sets       109566.20          ---          ---         1.65904         1.64700         3.23100         3.34300      8440.82 
Gets      1095656.93      5433.94   1090222.98         1.65901         1.64700         3.23100         3.34300     42860.54 
Waits           0.00          ---          ---             ---             ---             ---             ---          --- 
Totals    1205223.12      5433.94   1090222.98         1.65901         1.64700         3.23100         3.34300     51301.36 

this PR (+0.9% no regression):

ALL STATS
============================================================================================================================
Type         Ops/sec     Hits/sec   Misses/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
----------------------------------------------------------------------------------------------------------------------------
Sets       110579.90          ---          ---         1.64384         1.62300         3.19900         3.32700      8518.92 
Gets      1105793.38     11214.79   1094578.59         1.64380         1.62300         3.19900         3.32700     43447.34 
Waits           0.00          ---          ---             ---             ---             ---             ---          --- 
Totals    1216373.28     11214.79   1094578.59         1.64381         1.62300         3.19900         3.32700     51966.26 

#12730

ALL STATS
============================================================================================================================
Type         Ops/sec     Hits/sec   Misses/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
----------------------------------------------------------------------------------------------------------------------------
Sets       110318.12          ---          ---         1.64776         1.63100         3.19900         3.32700      8498.76 
Gets      1103175.95     11257.14   1091918.81         1.64771         1.63100         3.19900         3.32700     43346.78 
Waits           0.00          ---          ---             ---             ---             ---             ---          --- 
Totals    1213494.07     11257.14   1091918.81         1.64771         1.63100         3.19900         3.32700     51845.54 

@sundb sundb added action:run-benchmark Triggers the benchmark suite for this Pull Request and removed action:run-benchmark Triggers the benchmark suite for this Pull Request labels Sep 11, 2024
@judeng
Copy link
Contributor

judeng commented Sep 20, 2024

Free the c->argv if the client is idle for 2 secs, like query buffer.

Maybe it is too complex for the c->argv. We should consider the shrink strategy, add a peak_argv value in 2 secs. In my some practice, the value of argv can vary dramatically between 2 and 2000.

@sundb sundb added action:run-benchmark Triggers the benchmark suite for this Pull Request and removed action:run-benchmark Triggers the benchmark suite for this Pull Request labels Oct 8, 2024
@fcostaoliveira fcostaoliveira self-requested a review October 30, 2024 09:26
@fcostaoliveira
Copy link
Collaborator

@sundb we can see that this PR is very beneficial on unix sockets, long lived client use-cases.
It can improve by 5% the use-case of 1KiB, 100% reads.
To reproduce:

taskset -c 0,1 /root/redis/src/redis-server  --unixsocket /tmp/1.socket --save ''

Load the data:

taskset -c 2-5 memtier_benchmark  --ratio 1:0 -n allkeys --key-pattern P:P --key-maximum 1000000  --hide-histogram  --pipeline 10

benchmark:

taskset -c 2-11 memtier_benchmark --ratio 0:1 -c 4 -t 10 --test-time 30 -x 3 --hide-histogram -d 1000 --pipeline 10  -S /tmp/1.socket --key-maximum 1000000

Results:

unstable

root@hpe10:~/redis# taskset -c 2-11 memtier_benchmark --ratio 0:1 -c 4 -t 10 --test-time 30 -x 3 --hide-histogram -d 1000 --pipeline 10  -S /tmp/1.socket --key-maximum 1000000
Writing results to stdout
[RUN #1] Preparing benchmark client...
[RUN #1] Launching threads now...
[RUN #1 100%,  30 secs]  0 threads:    35574910 ops, 1165623 (avg: 1185816) ops/sec, 81.03MB/sec (avg: 82.43MB/sec),  0.34 (avg:  0.33) msec latency

[RUN #2] Preparing benchmark client...
[RUN #2] Launching threads now...
[RUN #2 100%,  30 secs]  0 threads:    35275880 ops, 1136740 (avg: 1175844) ops/sec, 79.02MB/sec (avg: 81.74MB/sec),  0.35 (avg:  0.34) msec latency

[RUN #3] Preparing benchmark client...
[RUN #3] Launching threads now...
[RUN #3 100%,  30 secs]  0 threads:    35163180 ops, 1138178 (avg: 1172088) ops/sec, 79.12MB/sec (avg: 81.47MB/sec),  0.35 (avg:  0.34) msec latency

10        Threads
4         Connections per thread
30        Seconds


BEST RUN RESULTS
============================================================================================================================
Type         Ops/sec     Hits/sec   Misses/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
----------------------------------------------------------------------------------------------------------------------------
Sets            0.00          ---          ---             ---             ---             ---             ---         0.00 
Gets      1185815.63   1185815.63         0.00         0.33526         0.27900         0.55100         0.64700     84406.79 
Waits           0.00          ---          ---             ---             ---             ---             ---          --- 
Totals    1185815.63   1185815.63         0.00         0.33526         0.27900         0.55100         0.64700     84406.79 


WORST RUN RESULTS
============================================================================================================================
Type         Ops/sec     Hits/sec   Misses/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
----------------------------------------------------------------------------------------------------------------------------
Sets            0.00          ---          ---             ---             ---             ---             ---         0.00 
Gets      1172089.28   1172089.28         0.00         0.33921         0.27900         0.55900         0.64700     83429.72 
Waits           0.00          ---          ---             ---             ---             ---             ---          --- 
Totals    1172089.28   1172089.28         0.00         0.33921         0.27900         0.55900         0.64700     83429.72 


AGGREGATED AVERAGE RESULTS (3 runs)
============================================================================================================================
Type         Ops/sec     Hits/sec   Misses/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
----------------------------------------------------------------------------------------------------------------------------
Sets            0.00          ---          ---             ---             ---             ---             ---         0.00 
Gets      1177916.31   1177916.31         0.00         0.33752         0.27900         0.55100         0.64700     83844.50 
Waits           0.00          ---          ---             ---             ---             ---             ---          --- 
Totals    1177916.31   1177916.31         0.00         0.33752         0.27900         0.55100         0.64700     83844.50 

the PR:

root@hpe10:~/redis# taskset -c 2-11 memtier_benchmark --ratio 0:1 -c 4 -t 10 --test-time 30 -x 3 --hide-histogram -d 1000 --pipeline 10  -S /tmp/1.socket --key-maximum 1000000
Writing results to stdout
[RUN #1] Preparing benchmark client...
[RUN #1] Launching threads now...
[RUN #1 100%,  30 secs]  0 threads:    37024860 ops, 1199616 (avg: 1234147) ops/sec, 83.39MB/sec (avg: 85.79MB/sec),  0.33 (avg:  0.32) msec latency

[RUN #2] Preparing benchmark client...
[RUN #2] Launching threads now...
[RUN #2 100%,  30 secs]  0 threads:    37372350 ops, 1209315 (avg: 1245726) ops/sec, 84.06MB/sec (avg: 86.59MB/sec),  0.33 (avg:  0.32) msec latency

[RUN #3] Preparing benchmark client...
[RUN #3] Launching threads now...
[RUN #3 100%,  30 secs]  0 threads:    37053230 ops, 1203395 (avg: 1235090) ops/sec, 83.65MB/sec (avg: 85.85MB/sec),  0.33 (avg:  0.32) msec latency

10        Threads
4         Connections per thread
30        Seconds


BEST RUN RESULTS
============================================================================================================================
Type         Ops/sec     Hits/sec   Misses/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
----------------------------------------------------------------------------------------------------------------------------
Sets            0.00          ---          ---             ---             ---             ---             ---         0.00 
Gets      1245724.20   1245724.20         0.00         0.31903         0.26300         0.52700         0.62300     88671.17 
Waits           0.00          ---          ---             ---             ---             ---             ---          --- 
Totals    1245724.20   1245724.20         0.00         0.31903         0.26300         0.52700         0.62300     88671.17 


WORST RUN RESULTS
============================================================================================================================
Type         Ops/sec     Hits/sec   Misses/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
----------------------------------------------------------------------------------------------------------------------------
Sets            0.00          ---          ---             ---             ---             ---             ---         0.00 
Gets      1234146.12   1234146.12         0.00         0.32205         0.26300         0.53500         0.62300     87846.95 
Waits           0.00          ---          ---             ---             ---             ---             ---          --- 
Totals    1234146.12   1234146.12         0.00         0.32205         0.26300         0.53500         0.62300     87846.95 


AGGREGATED AVERAGE RESULTS (3 runs)
============================================================================================================================
Type         Ops/sec     Hits/sec   Misses/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
----------------------------------------------------------------------------------------------------------------------------
Sets            0.00          ---          ---             ---             ---             ---             ---         0.00 
Gets      1238319.24   1238319.24         0.00         0.32095         0.26300         0.52700         0.62300     88144.02 
Waits           0.00          ---          ---             ---             ---             ---             ---          --- 
Totals    1238319.24   1238319.24         0.00         0.32095         0.26300         0.52700         0.62300     88144.02 

@fcostaoliveira
Copy link
Collaborator

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

This comment was automatically generated given a benchmark was triggered.
Started building at 2024-11-04 13:34:33.527446
You can check each build/benchmark progress in grafana:

  • git hash: a237895
  • git branch: sundb:derfer_free_argv
  • 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: .*

@sundb sundb removed the action:run-benchmark Triggers the benchmark suite for this Pull Request label Nov 4, 2024
@fcostaoliveira
Copy link
Collaborator

fcostaoliveira commented Nov 4, 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-11-12 11:17:53.134137 and took 20052.87815 seconds up until now.
Status: [###############################################################-----------------] 78.68% completed.

In total will run 136 benchmarks.
- 29 pending.
- 107 completed:
- 25 successful.
- 82 failed.
You can check a the status in detail via the grafana link

@sundb sundb removed the action:run-benchmark Triggers the benchmark suite for this Pull Request label Nov 6, 2024
@sundb sundb requested review from oranagra and ShooterIT November 6, 2024 08:09
@sundb
Copy link
Collaborator Author

sundb commented Nov 6, 2024

please note that I no longer automatically release argv in cron because it may still be used elsewhere, such as by blocked clients.
Since I have avoided excessive waste when creating argv, I feel that the current way should be acceptable.

src/networking.c Outdated
c->argv = zmalloc(sizeof(robj*)*c->argv_len);
/* Create new argv if space is insufficient or the new arguments are too large. */
if (unlikely(argc > c->argv_len ||
(c->argv_len > ARGV_CACHE_THRESHOLD && c->argv_len > argc * 2)))
Copy link
Member

Choose a reason for hiding this comment

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

so we're re-using the allocation only if it's very small, and not wasting more than half of it.
considering that it's very small, do really care how much of it is wasted?
or alternatively, maybe for big ones, if they're only 10% wasted we may want to re-use?

or maybe the benefit for saving that one allocation on large argv arrays is negligible (considering the elements we put in the array too)?

actually, now that i think of it, over a certain size we do gradual allocations

        c->argv_len = min(c->multibulklen, 1024);

so it probably doesn't make sense to re-use in these cases (we're wasting time on reallocs anyway)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

good idea.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

i change the threshold to 1024, and free the arguments in cron.
This also means that we don't have to worry about constantly rebuilding when the command size fluctuates greatly, which is more in line with the actual usage scenario.
Because I remember some users using ping for keep alive, it could result in never being reused.

Copy link
Collaborator

@ShooterIT ShooterIT left a comment

Choose a reason for hiding this comment

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

when argc almost is between 1 and 64, in pipeline mode, this PR brings 1%-5% improvements. But if argc may changes frequently (more than 64) and we use unlikely, I am not sure what will happen

@sundb
Copy link
Collaborator Author

sundb commented Nov 7, 2024

benchmark with variable arguments size.
from these benchmarks, no matter the size of arguments, we can still get benefit from this PR.

start server:

taskset -c 0,1 ./src/redis-server  --unixsocket /tmp/1.socket --save ''

prepare data:

HMGET h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512

32 (+1.7%)

taskset -c 2-11 memtier_benchmark -c 4 -t 10 --test-time 60 -x 3 --hide-histogram --pipeline 10 -S /tmp/1.socket --command="HMGET h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32"

PR
AGGREGATED AVERAGE RESULTS (3 runs)
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hmgets     306535.44         1.29087         1.32700         1.46300         1.51900    149376.16 
Totals     306535.44         1.29087         1.32700         1.46300         1.51900    298752.31

unstable
AGGREGATED AVERAGE RESULTS (3 runs)
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hmgets     301284.10         1.31337         1.35100         1.48700         1.55900    146817.15 
Totals     301284.10         1.31337         1.35100         1.48700         1.55900    293634.31 

64 (+1.7%)

taskset -c 2-11 memtier_benchmark -c 4 -t 10 --test-time 60 -x 3 --hide-histogram --pipeline 10 -S /tmp/1.socket --command="HMGET h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64"

PR
AGGREGATED AVERAGE RESULTS (3 runs)
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hmgets     109983.05         3.60500         3.61500         4.09500         4.31900    105149.81 
Totals     109983.05         3.60500         3.61500         4.09500         4.31900    210299.63

unstable
AGGREGATED AVERAGE RESULTS (3 runs)
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hmgets     108059.18         3.66928         3.67900         4.15900         4.35100    103310.49 
Totals     108059.18         3.66928         3.67900         4.15900         4.35100    206620.97 

128 (+0.1%)

taskset -c 2-11 memtier_benchmark -c 4 -t 10 --test-time 60 -x 3 --hide-histogram --pipeline 10 -S /tmp/1.socket --command="HMGET h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128"

PR
AGGREGATED AVERAGE RESULTS (3 runs)
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hmgets      33836.34        11.78265        11.83900        12.60700        13.56700     65095.30 
Totals      33836.34        11.78265        11.83900        12.60700        13.56700    130190.61

unstable
AGGREGATED AVERAGE RESULTS (3 runs)
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hmgets      33775.40        11.85377        11.90300        12.67100        13.69500     64978.06 
Totals      33775.40        11.85377        11.90300        12.67100        13.69500    129956.12

256 (+2%)

taskset -c 2-11 memtier_benchmark -c 4 -t 10 --test-time 60 -x 3 --hide-histogram --pipeline 10 -S /tmp/1.socket --command="HMGET h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256"

PR
AGGREGATED AVERAGE RESULTS (3 runs)
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hmgets       9264.80        43.11249        40.19100        85.50300        96.76700     36353.48 
Totals       9264.80        43.11249        40.19100        85.50300        96.76700     72706.96 

unstable

AGGREGATED AVERAGE RESULTS (3 runs)
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hmgets       9081.03        43.98893        40.95900        86.52700        98.81500     35632.38 
Totals       9081.03        43.98893        40.95900        86.52700        98.81500     71264.77 

512 (+3.5%)

taskset -c 2-11 memtier_benchmark -c 4 -t 10 --test-time 60 -x 3 --hide-histogram --pipeline 10 -S /tmp/1.socket --command="HMGET h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512"

PR

AGGREGATED AVERAGE RESULTS (3 runs)
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hmgets       2356.31       169.40508       153.59900       237.56700       301.05500     18671.00 
Totals       2356.31       169.40508       153.59900       237.56700       301.05500     37342.00 

unstable

AGGREGATED AVERAGE RESULTS (3 runs)
==================================================================================================
Type         Ops/sec    Avg. Latency     p50 Latency     p99 Latency   p99.9 Latency       KB/sec 
--------------------------------------------------------------------------------------------------
Hmgets       2276.97       175.32496       158.71900       245.75900       260.09500     18042.35 
Totals       2276.97       175.32496       158.71900       245.75900       260.09500     36084.69 

@fcostaoliveira
Copy link
Collaborator

fcostaoliveira commented Nov 8, 2024

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 237 stable tests between versions.
  • Detected a total of 36 highly unstable benchmarks.
  • Detected a total of 27 regressions bellow the regression water line 10.0.
    • Median/Common-Case regression was -15.1% and ranged from [-49.2%,-10.6%].

You can check a comparison in detail via the grafana link

Comparison between unstable and sundb:derfer_free_argv.

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 sundb:derfer_free_argv (median obs. +- std.dev) % change (higher-better) Note
memtier_benchmark-1Mkeys-generic-scan-pipeline-10 557682 587441 +- 10.5% UNSTABLE (20 datapoints) 5.3% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-hash-hincrby 205213 201408 +- 13.3% UNSTABLE (11 datapoints) -1.9% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20 1293827 1096716 +- 10.4% UNSTABLE (13 datapoints) -15.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10 138047 109709 +- 12.7% UNSTABLE (14 datapoints) -20.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score 3655 3627 +- 26.2% UNSTABLE (18 datapoints) -0.8% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score 116128 94531 +- 11.9% UNSTABLE (13 datapoints) -18.6% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10 778384 744454 +- 17.5% UNSTABLE (11 datapoints) -4.4% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-100M-bits-bitmap-bitcount 26419 13862 +- 82.8% UNSTABLE (12 datapoints) -47.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-1Billion-bits-bitmap-bitcount 1654 873 +- 76.0% UNSTABLE (12 datapoints) -47.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat 174084 158516 +- 10.3% UNSTABLE (12 datapoints) -8.9% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10 743397 644261 +- 16.7% UNSTABLE (16 datapoints) -13.3% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-hash-hscan-50-fields-10B-values 116298 113576 +- 22.4% UNSTABLE (8 datapoints) -2.3% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10 198832 197253 +- 10.3% UNSTABLE (11 datapoints) -0.8% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer 8330 8249 +- 16.6% UNSTABLE (8 datapoints) -1.0% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-10K-elements-linsert-lrem-string 10716 10721 +- 15.9% UNSTABLE (8 datapoints) 0.0% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-10K-elements-lpos-integer 8217 8112 +- 16.4% UNSTABLE (8 datapoints) -1.3% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-10K-elements-lpos-string 9915 10093 +- 15.6% UNSTABLE (8 datapoints) 1.8% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-1K-elements-lrange-all-elements 22736 20122 +- 11.4% UNSTABLE (16 datapoints) -11.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10 23766 19813 +- 14.0% UNSTABLE (16 datapoints) -16.6% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs 8714 7208 +- 13.8% UNSTABLE (13 datapoints) -17.3% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-pfadd-4KB-values-pipeline-10 330443 294719 +- 10.9% UNSTABLE (12 datapoints) -10.8% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-set-100-elements-sscan 112089 110579 +- 19.3% UNSTABLE (10 datapoints) -1.3% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-set-1K-elements-smembers 19617 16140 +- 12.0% UNSTABLE (13 datapoints) -17.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-10-elements-zrange-all-elements 107658 85157 +- 13.7% UNSTABLE (14 datapoints) -20.9% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-100-elements-zrange-all-elements 29582 19879 +- 26.0% UNSTABLE (13 datapoints) -32.8% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements 29664 29363 +- 18.0% UNSTABLE (11 datapoints) -1.0% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores 65451 53993 +- 12.1% UNSTABLE (13 datapoints) -17.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-100-elements-zscan 81807 79671 +- 28.8% UNSTABLE (8 datapoints) -2.6% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-zset-1K-elements-zrange-all-elements 4853 3747 +- 16.7% UNSTABLE (13 datapoints) -22.8% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10 952769 979620 +- 17.7% UNSTABLE (19 datapoints) 2.8% UNSTABLE (very high variance) No Change
memtier_benchmark-2keys-set-10-100-elements-sdiff 33416 16984 +- 54.7% UNSTABLE (13 datapoints) -49.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-2keys-set-10-100-elements-sunion 45848 43396 +- 36.0% UNSTABLE (11 datapoints) -5.3% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10 158852 156133 +- 11.1% UNSTABLE (11 datapoints) -1.7% UNSTABLE (very high variance) No Change
memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion 4500 4447 +- 20.1% UNSTABLE (22 datapoints) -1.2% UNSTABLE (very high variance) No Change
memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore 5297 5296 +- 22.1% UNSTABLE (11 datapoints) -0.0% UNSTABLE (very high variance) No Change
memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns 144019 131819 +- 11.8% UNSTABLE (6 datapoints) -8.5% UNSTABLE (very high variance) potential REGRESSION

Unstable test regexp names: memtier_benchmark-1Mkeys-generic-scan-pipeline-10|memtier_benchmark-1Mkeys-hash-hincrby|memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20|memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10|memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score|memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score|memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10|memtier_benchmark-1key-100M-bits-bitmap-bitcount|memtier_benchmark-1key-1Billion-bits-bitmap-bitcount|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-100-elements-lrange-all-elements-pipeline-10|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-integer|memtier_benchmark-1key-list-10K-elements-lpos-string|memtier_benchmark-1key-list-1K-elements-lrange-all-elements|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-100-elements-sscan|memtier_benchmark-1key-set-1K-elements-smembers|memtier_benchmark-1key-zset-10-elements-zrange-all-elements|memtier_benchmark-1key-zset-100-elements-zrange-all-elements|memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements|memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores|memtier_benchmark-1key-zset-100-elements-zscan|memtier_benchmark-1key-zset-1K-elements-zrange-all-elements|memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10|memtier_benchmark-2keys-set-10-100-elements-sdiff|memtier_benchmark-2keys-set-10-100-elements-sunion|memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10|memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion|memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore|memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns

Regressions Table

Test Case Baseline redis/redis unstable (median obs. +- std.dev) Comparison redis/redis sundb:derfer_free_argv (median obs. +- std.dev) % change (higher-better) Note
memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10 1120887 960706 +- 9.5% (13 datapoints) -14.3% REGRESSION
memtier_benchmark-1Mkeys-generic-exists-pipeline-10 1192018 1038425 +- 9.9% (13 datapoints) -12.9% REGRESSION
memtier_benchmark-1Mkeys-generic-expireat-pipeline-10 1061064 915272 +- 9.6% (13 datapoints) -13.7% REGRESSION
memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10 1061092 935941 +- 9.2% (13 datapoints) -11.8% REGRESSION
memtier_benchmark-1Mkeys-generic-touch-pipeline-10 1193587 1013742 +- 10.0% (13 datapoints) -15.1% REGRESSION
memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20 1293827 1096716 +- 10.4% UNSTABLE (13 datapoints) -15.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10 138047 109709 +- 12.7% UNSTABLE (14 datapoints) -20.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score 116128 94531 +- 11.9% UNSTABLE (13 datapoints) -18.6% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-100M-bits-bitmap-bitcount 26419 13862 +- 82.8% UNSTABLE (12 datapoints) -47.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-1Billion-bits-bitmap-bitcount 1654 873 +- 76.0% UNSTABLE (12 datapoints) -47.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10 743397 644261 +- 16.7% UNSTABLE (16 datapoints) -13.3% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10 757646 651794 +- 8.2% (13 datapoints) -14.0% REGRESSION
memtier_benchmark-1key-list-1K-elements-lrange-all-elements 22736 20122 +- 11.4% UNSTABLE (16 datapoints) -11.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10 23766 19813 +- 14.0% UNSTABLE (16 datapoints) -16.6% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs 8714 7208 +- 13.8% UNSTABLE (13 datapoints) -17.3% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-pfadd-4KB-values-pipeline-10 330443 294719 +- 10.9% UNSTABLE (12 datapoints) -10.8% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-set-100-elements-smembers 114669 102094 +- 7.4% (13 datapoints) -11.0% REGRESSION
memtier_benchmark-1key-set-1K-elements-smembers 19617 16140 +- 12.0% UNSTABLE (13 datapoints) -17.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zrank-1M-elements-pipeline-1 55854 49168 +- 8.3% (13 datapoints) -12.0% REGRESSION
memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1 55835 48819 +- 8.0% (14 datapoints) -12.6% REGRESSION
memtier_benchmark-1key-zset-10-elements-zrange-all-elements 107658 85157 +- 13.7% UNSTABLE (14 datapoints) -20.9% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores 136474 121945 +- 6.8% (13 datapoints) -10.6% REGRESSION
memtier_benchmark-1key-zset-100-elements-zrange-all-elements 29582 19879 +- 26.0% UNSTABLE (13 datapoints) -32.8% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores 65451 53993 +- 12.1% UNSTABLE (13 datapoints) -17.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-1K-elements-zrange-all-elements 4853 3747 +- 16.7% UNSTABLE (13 datapoints) -22.8% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-2keys-set-10-100-elements-sdiff 33416 16984 +- 54.7% UNSTABLE (13 datapoints) -49.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-2keys-stream-5-entries-xread-all-entries 92244 78790 +- 9.0% (14 datapoints) -14.6% REGRESSION

Regressions test regexp names: memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10|memtier_benchmark-1Mkeys-generic-exists-pipeline-10|memtier_benchmark-1Mkeys-generic-expireat-pipeline-10|memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10|memtier_benchmark-1Mkeys-generic-touch-pipeline-10|memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20|memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10|memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score|memtier_benchmark-1key-100M-bits-bitmap-bitcount|memtier_benchmark-1key-1Billion-bits-bitmap-bitcount|memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10|memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10|memtier_benchmark-1key-list-1K-elements-lrange-all-elements|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-100-elements-smembers|memtier_benchmark-1key-set-1K-elements-smembers|memtier_benchmark-1key-zrank-1M-elements-pipeline-1|memtier_benchmark-1key-zrevrank-1M-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-long-scores|memtier_benchmark-1key-zset-1K-elements-zrange-all-elements|memtier_benchmark-2keys-set-10-100-elements-sdiff|memtier_benchmark-2keys-stream-5-entries-xread-all-entries

Full Results table:
Test Case Baseline redis/redis unstable (median obs. +- std.dev) Comparison redis/redis sundb:derfer_free_argv (median obs. +- std.dev) % change (higher-better) Note
latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values 10001 10001 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values 9996 9995 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values 9999 9998 +- 0.3% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values 9991 9999 +- 0.0% (5 datapoints) 0.1% No Change
latency-rate-limited-10000_qps-memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values 10000 9999 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10 10000 10000 +- 0.1% (7 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values 10000 9999 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10 10001 10000 +- 0.0% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-100B-expire-use-case 9999 10000 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-10B-expire-use-case 10000 10000 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-1KiB-expire-use-case 10000 10000 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-4KiB-expire-use-case 10000 10000 +- 0.0% (5 datapoints) 0.0%
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10 10000 10000 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-exists-pipeline-10 10000 10000 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-expire-pipeline-10 10000 10000 +- 0.0% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-expireat-pipeline-10 9983 10000 +- 0.0% (6 datapoints) 0.2% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10 10000 10000 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-scan-pipeline-10 10000 10000 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-touch-pipeline-10 10000 10000 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-generic-ttl-pipeline-10 10000 10000 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hexists 9984 9984 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values 9996 9999 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values 10001 10001 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hincrby 10001 10000 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10 10000 10000 +- 0.0% (7 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20 10000 10000 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values 10000 10000 +- 0.1% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values 10000 10000 +- 0.2% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values 10000 10000 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values 9998 9999 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10 10000 10000 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values 9997 9999 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-list-with-100B-values 10000 9999 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-list-with-10B-values 9999 9997 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-list-with-1KiB-values 9999 9999 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-set-intset-with-100-elements 9999 9998 +- 0.1% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10 10000 10000 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values 10000 9999 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10 10000 10000 +- 0.0% (7 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values 9999 9999 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10 10000 10000 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-100B-values 10000 10000 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10 10001 10001 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-10B-values 10000 9999 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10 10001 10001 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-1KiB-values 10000 10000 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-string-with-20KiB-values 9996 9999 +- 0.2% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score 10000 9999 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score 9998 9999 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-append-1-100B 10000 10000 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10 10000 10001 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-decr 9985 9984 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-100B 10000 10000 +- 0.2% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-100B-pipeline-10 10001 10001 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-10B 10000 10000 +- 0.4% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-10B-pipeline-10 10001 10001 +- 0.0% (6 datapoints) 0.0%
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-1KiB 10000 10000 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10 10001 10001 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-get-20KiB 10056 10000 +- 0.0% (6 datapoints) -0.6% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrby 9999 9999 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrby-pipeline-10 10001 10001 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrbyfloat 9997 10000 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10 10001 10001 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-mget-1KiB 10000 10000 +- 0.1% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10 10001 10001 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-setrange-100B 10001 9999 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10 10001 10001 +- 0.0% (5 datapoints) 0.0%
latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-2-elements-geopos 9999 9999 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord 9992 9999 +- 0.2% (5 datapoints) 0.1% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geodist 10000 9997 +- 0.0% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10 10000 10000 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geohash 10000 10000 +- 0.0% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10 10000 10000 +- 0.5% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geopos 10000 10000 +- 0.0% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10 10000 10000 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat 10000 10000 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox 10000 10000 +- 0.0% (5 datapoints) 0.0%
latency-rate-limited-10000_qps-memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10 10000 10000 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-hash-hscan-50-fields-10B-values 9999 9998 +- 0.1% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-list-10-elements-lrange-all-elements 9999 10000 +- 0.2% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10 9995 10000 +- 0.0% (5 datapoints) 0.1% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-list-100-elements-lrange-all-elements 10000 9999 +- 5.0% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10 10000 10000 +- 0.1% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-list-10K-elements-lindex-integer 10000 9999 +- 0.1% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-list-10K-elements-lindex-string 9998 9997 +- 0.1% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-list-1K-elements-lrange-all-elements 9997 9997 +- 0.2% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10 10000 10000 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-pfadd-4KB-values-pipeline-10 10000 10000 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10-elements-smembers 9999 9999 +- 0.1% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10-elements-smembers-pipeline-10 10000 10000 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10-elements-smismember 10000 9999 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-sismember-is-a-member 9999 9998 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-sismember-not-a-member 10000 9999 +- 0.0% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-smembers 9998 10000 +- 0.7% (7 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-smismember 9999 9998 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-100-elements-sscan 9999 9999 +- 0.2% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance 10000 9999 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-1K-elements-smembers 9996 9997 +- 0.0% (7 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance 9998 9999 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-200K-elements-sadd-constant 9995 9999 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-set-2M-elements-sadd-increasing 10000 10000 +- 0.0% (7 datapoints) 0.0%
latency-rate-limited-10000_qps-memtier_benchmark-1key-zincrby-1M-elements-pipeline-1 10000 10000 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zrank-1M-elements-pipeline-1 10000 10000 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zrem-5M-elements-pipeline-1 10000 10000 +- 0.0% (7 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1 10000 9999 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1 10000 10000 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-10-elements-zrange-all-elements 10000 10000 +- 0.1% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores 9999 10000 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zrange-all-elements 9998 9999 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements 9999 9998 +- 0.1% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores 10000 9998 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-100-elements-zscan 10000 9997 +- 0.0% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10 10000 10000 +- 0.0% (5 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements 10001 10000 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10 10000 10000 +- 0.1% (7 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-2keys-lua-eval-hset-expire 10000 10000 +- 0.1% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-2keys-lua-evalsha-hset-expire 9998 9999 +- 0.0% (7 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-2keys-set-10-100-elements-sdiff 9999 9998 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-2keys-set-10-100-elements-sinter 10000 9999 +- 0.1% (7 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-2keys-set-10-100-elements-sunion 9998 9998 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-2keys-stream-5-entries-xread-all-entries 10000 9999 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10 10000 10000 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-3Mkeys-load-string-with-512B-values 9754 9754 +- 0.0% (7 datapoints) 0.0% No Change
latency-rate-limited-10000_qps-memtier_benchmark-connection-hello 10000 10000 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-1000_qps-memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values 1001 1001 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-1000_qps-memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score 1001 1001 +- 0.0% (5 datapoints) 0.0%
latency-rate-limited-1000_qps-memtier_benchmark-1key-100M-bits-bitmap-bitcount 1001 1001 +- 0.0% (7 datapoints) -0.0% No Change
latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer 1001 1001 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-linsert-lrem-string 1001 1001 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-lpos-integer 1001 1001 +- 0.0% (6 datapoints) 0.0%
latency-rate-limited-1000_qps-memtier_benchmark-1key-list-10K-elements-lpos-string 1001 1001 +- 0.0% (6 datapoints) -0.0% No Change
latency-rate-limited-1000_qps-memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs 1001 1001 +- 0.2% (6 datapoints) 0.0% No Change
latency-rate-limited-1000_qps-memtier_benchmark-1key-zset-1K-elements-zrange-all-elements 1001 1001 +- 0.0% (7 datapoints) 0.0% No Change
latency-rate-limited-1000_qps-memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion 1001 1001 +- 0.0% (6 datapoints) 0.0% No Change
latency-rate-limited-1000_qps-memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore 1001 1001 +- 0.0% (5 datapoints) -0.0% No Change
latency-rate-limited-100_qps-memtier_benchmark-1key-1Billion-bits-bitmap-bitcount 202 201 +- 0.2% (5 datapoints) -0.0% No Change
memtier_benchmark-100Kkeys-hash-hgetall-50-fields-100B-values 175198 172352 +- 2.3% (11 datapoints) -1.6% No Change
memtier_benchmark-100Kkeys-load-hash-50-fields-with-1000B-values 19280 18388 +- 9.1% (8 datapoints) -4.6% potential REGRESSION
memtier_benchmark-100Kkeys-load-hash-50-fields-with-100B-values 46412 44986 +- 5.3% (12 datapoints) -3.1% potential REGRESSION
memtier_benchmark-100Kkeys-load-hash-50-fields-with-10B-values 44987 43083 +- 8.1% (8 datapoints) -4.2% potential REGRESSION
memtier_benchmark-10Kkeys-load-hash-50-fields-with-10000B-values 3335 3161 +- 6.7% (14 datapoints) -5.2% potential REGRESSION
memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values 89443 89560 +- 0.2% (3 datapoints) 0.1% No Change
memtier_benchmark-10Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10 121991 119915 +- 4.4% (3 datapoints) -1.7% No Change
memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values 127310 123004 +- 1.5% (14 datapoints) -3.4% potential REGRESSION
memtier_benchmark-10Mkeys-load-hash-5-fields-with-100B-values-pipeline-10 384595 374380 +- 8.3% (11 datapoints) -2.7% No Change
memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values 146060 141065 +- 2.4% (12 datapoints) -3.4% potential REGRESSION
memtier_benchmark-10Mkeys-load-hash-5-fields-with-10B-values-pipeline-10 482419 491759 +- 9.1% (11 datapoints) 1.9% No Change
memtier_benchmark-1Mkeys-100B-expire-use-case 207080 202195 +- 7.0% (11 datapoints) -2.4% No Change
memtier_benchmark-1Mkeys-10B-expire-use-case 208117 192852 +- 7.0% (16 datapoints) -7.3% potential REGRESSION
memtier_benchmark-1Mkeys-1KiB-expire-use-case 194891 177938 +- 7.7% (14 datapoints) -8.7% potential REGRESSION
memtier_benchmark-1Mkeys-4KiB-expire-use-case 195537 189831 +- 6.5% (18 datapoints) -2.9% No Change
memtier_benchmark-1Mkeys-bitmap-getbit-pipeline-10 1120887 960706 +- 9.5% (13 datapoints) -14.3% REGRESSION
memtier_benchmark-1Mkeys-generic-exists-pipeline-10 1192018 1038425 +- 9.9% (13 datapoints) -12.9% REGRESSION
memtier_benchmark-1Mkeys-generic-expire-pipeline-10 1090974 1076225 +- 8.0% (11 datapoints) -1.4% No Change
memtier_benchmark-1Mkeys-generic-expireat-pipeline-10 1061064 915272 +- 9.6% (13 datapoints) -13.7% REGRESSION
memtier_benchmark-1Mkeys-generic-pexpire-pipeline-10 1061092 935941 +- 9.2% (13 datapoints) -11.8% REGRESSION
memtier_benchmark-1Mkeys-generic-scan-pipeline-10 557682 587441 +- 10.5% UNSTABLE (20 datapoints) 5.3% UNSTABLE (very high variance) potential IMPROVEMENT
memtier_benchmark-1Mkeys-generic-touch-pipeline-10 1193587 1013742 +- 10.0% (13 datapoints) -15.1% REGRESSION
memtier_benchmark-1Mkeys-generic-ttl-pipeline-10 1179752 1143187 +- 8.0% (18 datapoints) -3.1% potential REGRESSION
memtier_benchmark-1Mkeys-hash-hexists 193779 178108 +- 8.4% (12 datapoints) -8.1% potential REGRESSION
memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values 193908 187404 +- 2.4% (16 datapoints) -3.4% potential REGRESSION
memtier_benchmark-1Mkeys-hash-hgetall-50-fields-10B-values 185406 179996 +- 2.6% (11 datapoints) -2.9% No Change
memtier_benchmark-1Mkeys-hash-hincrby 205213 201408 +- 13.3% UNSTABLE (11 datapoints) -1.9% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-hash-hmget-5-fields-with-100B-values-pipeline-10 853412 802342 +- 7.8% (12 datapoints) -6.0% potential REGRESSION
memtier_benchmark-1Mkeys-hash-transactions-multi-exec-pipeline-20 1293827 1096716 +- 10.4% UNSTABLE (13 datapoints) -15.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values 190803 187912 +- 2.0% (11 datapoints) -1.5% No Change
memtier_benchmark-1Mkeys-list-lpop-rpop-with-10B-values 193133 190258 +- 2.1% (11 datapoints) -1.5% No Change
memtier_benchmark-1Mkeys-list-lpop-rpop-with-1KiB-values 193465 188204 +- 2.8% (16 datapoints) -2.7% No Change
memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values 112031 107438 +- 1.3% (11 datapoints) -4.1% potential REGRESSION
memtier_benchmark-1Mkeys-load-hash-5-fields-with-1000B-values-pipeline-10 178491 168343 +- 7.7% (11 datapoints) -5.7% potential REGRESSION
memtier_benchmark-1Mkeys-load-hash-hmset-5-fields-with-1000B-values 110816 107484 +- 1.9% (18 datapoints) -3.0% potential REGRESSION
memtier_benchmark-1Mkeys-load-list-with-100B-values 156012 153427 +- 1.5% (13 datapoints) -1.7% No Change
memtier_benchmark-1Mkeys-load-list-with-10B-values 170792 169394 +- 1.9% (18 datapoints) -0.8% No Change
memtier_benchmark-1Mkeys-load-list-with-1KiB-values 120344 117332 +- 2.2% (11 datapoints) -2.5% No Change
memtier_benchmark-1Mkeys-load-set-intset-with-100-elements 79634 71984 +- 5.7% (13 datapoints) -9.6% potential REGRESSION
memtier_benchmark-1Mkeys-load-set-intset-with-100-elements-pipeline-10 138047 109709 +- 12.7% UNSTABLE (14 datapoints) -20.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values 135385 131747 +- 4.8% (11 datapoints) -2.7% No Change
memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10 405199 368271 +- 7.1% (13 datapoints) -9.1% potential REGRESSION
memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values 111859 107665 +- 1.9% (11 datapoints) -3.7% potential REGRESSION
memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10 257866 254912 +- 7.3% (20 datapoints) -1.1% No Change
memtier_benchmark-1Mkeys-load-string-with-100B-values 175169 171270 +- 1.6% (16 datapoints) -2.2% No Change
memtier_benchmark-1Mkeys-load-string-with-100B-values-pipeline-10 730833 684518 +- 4.7% (16 datapoints) -6.3% potential REGRESSION
memtier_benchmark-1Mkeys-load-string-with-10B-values 178574 177659 +- 1.7% (18 datapoints) -0.5% No Change
memtier_benchmark-1Mkeys-load-string-with-10B-values-pipeline-10 878492 807128 +- 2.7% (12 datapoints) -8.1% potential REGRESSION
memtier_benchmark-1Mkeys-load-string-with-1KiB-values 166621 161337 +- 1.6% (11 datapoints) -3.2% potential REGRESSION
memtier_benchmark-1Mkeys-load-string-with-200KiB-values 5014 5004 +- 0.4% (4 datapoints) -0.2% No Change
memtier_benchmark-1Mkeys-load-string-with-20KiB-values 80539 75078 +- 8.1% (18 datapoints) -6.8% potential REGRESSION
memtier_benchmark-1Mkeys-load-string-with-2MB-values 518 520 +- 0.7% (4 datapoints) 0.3% No Change
memtier_benchmark-1Mkeys-load-zset-listpack-with-100-elements-double-score 3655 3627 +- 26.2% UNSTABLE (18 datapoints) -0.8% UNSTABLE (very high variance) No Change
memtier_benchmark-1Mkeys-load-zset-with-10-elements-double-score 116128 94531 +- 11.9% UNSTABLE (13 datapoints) -18.6% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1Mkeys-load-zset-with-10-elements-int-score 126796 123048 +- 4.0% (11 datapoints) -3.0% No Change
memtier_benchmark-1Mkeys-string-append-1-100B 183609 179148 +- 1.8% (11 datapoints) -2.4% No Change
memtier_benchmark-1Mkeys-string-append-1-100B-pipeline-10 856166 831997 +- 3.8% (11 datapoints) -2.8% No Change
memtier_benchmark-1Mkeys-string-decr 191206 178197 +- 8.4% (12 datapoints) -6.8% potential REGRESSION
memtier_benchmark-1Mkeys-string-get-100B 199363 197724 +- 4.8% (11 datapoints) -0.8% No Change
memtier_benchmark-1Mkeys-string-get-100B-pipeline-10 1133748 1094600 +- 4.6% (12 datapoints) -3.5% potential REGRESSION
memtier_benchmark-1Mkeys-string-get-10B 201296 198391 +- 5.0% (11 datapoints) -1.4% No Change
memtier_benchmark-1Mkeys-string-get-10B-pipeline-10 1125273 1082624 +- 4.8% (13 datapoints) -3.8% potential REGRESSION
memtier_benchmark-1Mkeys-string-get-1KiB 201999 184809 +- 5.0% (14 datapoints) -8.5% potential REGRESSION
memtier_benchmark-1Mkeys-string-get-1KiB-pipeline-10 1087196 1027654 +- 4.3% (13 datapoints) -5.5% potential REGRESSION
memtier_benchmark-1Mkeys-string-get-200KiB 100054 98722 +- 6.8% (6 datapoints) -1.3% No Change
memtier_benchmark-1Mkeys-string-get-20KiB 171337 172760 +- 0.5% (5 datapoints) 0.8% No Change
memtier_benchmark-1Mkeys-string-get-2MB N/A N/A 0.0%
memtier_benchmark-1Mkeys-string-incrby 192496 187933 +- 2.4% (19 datapoints) -2.4% No Change
memtier_benchmark-1Mkeys-string-incrby-pipeline-10 988661 938874 +- 4.2% (11 datapoints) -5.0% potential REGRESSION
memtier_benchmark-1Mkeys-string-incrbyfloat 162939 162375 +- 2.2% (13 datapoints) -0.3% No Change
memtier_benchmark-1Mkeys-string-incrbyfloat-pipeline-10 534977 562704 +- 6.0% (11 datapoints) 5.2% potential IMPROVEMENT
memtier_benchmark-1Mkeys-string-mget-1KiB 147465 141355 +- 9.0% (11 datapoints) -4.1% potential REGRESSION
memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10 778384 744454 +- 17.5% UNSTABLE (11 datapoints) -4.4% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1Mkeys-string-setrange-100B 186770 181622 +- 1.9% (13 datapoints) -2.8% No Change
memtier_benchmark-1Mkeys-string-setrange-100B-pipeline-10 914864 853752 +- 3.8% (14 datapoints) -6.7% potential REGRESSION
memtier_benchmark-1key-100M-bits-bitmap-bitcount 26419 13862 +- 82.8% UNSTABLE (12 datapoints) -47.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-1Billion-bits-bitmap-bitcount 1654 873 +- 76.0% UNSTABLE (12 datapoints) -47.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-geo-2-elements-geopos 164972 163390 +- 2.6% (11 datapoints) -1.0% No Change
memtier_benchmark-1key-geo-2-elements-geosearch-fromlonlat-withcoord 110746 107130 +- 6.8% (11 datapoints) -3.3% potential REGRESSION
memtier_benchmark-1key-geo-60M-elements-geodist 195285 190183 +- 3.3% (12 datapoints) -2.6% No Change
memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10 1114070 1053710 +- 4.5% (12 datapoints) -5.4% potential REGRESSION
memtier_benchmark-1key-geo-60M-elements-geohash 196977 194006 +- 3.0% (18 datapoints) -1.5% No Change
memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10 1157976 1107069 +- 4.1% (13 datapoints) -4.4% potential REGRESSION
memtier_benchmark-1key-geo-60M-elements-geopos 198481 192917 +- 3.4% (11 datapoints) -2.8% No Change
memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10 1153549 1118231 +- 4.8% (12 datapoints) -3.1% potential REGRESSION
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat 174084 158516 +- 10.3% UNSTABLE (12 datapoints) -8.9% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox 170636 168371 +- 9.8% (18 datapoints) -1.3% No Change
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10 743397 644261 +- 16.7% UNSTABLE (16 datapoints) -13.3% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-hash-hscan-50-fields-10B-values 116298 113576 +- 22.4% UNSTABLE (8 datapoints) -2.3% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-10-elements-lrange-all-elements 179582 173868 +- 2.0% (13 datapoints) -3.2% potential REGRESSION
memtier_benchmark-1key-list-10-elements-lrange-all-elements-pipeline-10 757646 651794 +- 8.2% (13 datapoints) -14.0% REGRESSION
memtier_benchmark-1key-list-100-elements-lrange-all-elements 117695 109893 +- 6.7% (16 datapoints) -6.6% potential REGRESSION
memtier_benchmark-1key-list-100-elements-lrange-all-elements-pipeline-10 198832 197253 +- 10.3% UNSTABLE (11 datapoints) -0.8% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-10K-elements-lindex-integer 160971 157768 +- 2.8% (10 datapoints) -2.0% No Change
memtier_benchmark-1key-list-10K-elements-lindex-string 143466 138585 +- 4.7% (8 datapoints) -3.4% potential REGRESSION
memtier_benchmark-1key-list-10K-elements-linsert-lrem-integer 8330 8249 +- 16.6% UNSTABLE (8 datapoints) -1.0% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-10K-elements-linsert-lrem-string 10716 10721 +- 15.9% UNSTABLE (8 datapoints) 0.0% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-10K-elements-lpos-integer 8217 8112 +- 16.4% UNSTABLE (8 datapoints) -1.3% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-10K-elements-lpos-string 9915 10093 +- 15.6% UNSTABLE (8 datapoints) 1.8% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-list-1K-elements-lrange-all-elements 22736 20122 +- 11.4% UNSTABLE (16 datapoints) -11.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-list-1K-elements-lrange-all-elements-pipeline-10 23766 19813 +- 14.0% UNSTABLE (16 datapoints) -16.6% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-list-2K-elements-quicklist-lrange-all-elements-longs 8714 7208 +- 13.8% UNSTABLE (13 datapoints) -17.3% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-pfadd-4KB-values-pipeline-10 330443 294719 +- 10.9% UNSTABLE (12 datapoints) -10.8% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-set-10-elements-smembers 182379 177457 +- 2.6% (12 datapoints) -2.7% No Change
memtier_benchmark-1key-set-10-elements-smembers-pipeline-10 790108 782631 +- 8.0% (11 datapoints) -0.9% No Change
memtier_benchmark-1key-set-10-elements-smismember 187707 183575 +- 8.6% (18 datapoints) -2.2% No Change
memtier_benchmark-1key-set-100-elements-sismember-is-a-member 186116 180180 +- 3.3% (16 datapoints) -3.2% potential REGRESSION
memtier_benchmark-1key-set-100-elements-sismember-not-a-member 180401 173694 +- 3.0% (12 datapoints) -3.7% potential REGRESSION
memtier_benchmark-1key-set-100-elements-smembers 114669 102094 +- 7.4% (13 datapoints) -11.0% REGRESSION
memtier_benchmark-1key-set-100-elements-smismember 169260 167647 +- 4.0% (18 datapoints) -1.0% No Change
memtier_benchmark-1key-set-100-elements-sscan 112089 110579 +- 19.3% UNSTABLE (10 datapoints) -1.3% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-set-10M-elements-sismember-50pct-chance 182166 182762 +- 2.3% (13 datapoints) 0.3% No Change
memtier_benchmark-1key-set-1K-elements-smembers 19617 16140 +- 12.0% UNSTABLE (13 datapoints) -17.7% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-set-1M-elements-sismember-50pct-chance 192794 184797 +- 3.0% (13 datapoints) -4.1% potential REGRESSION
memtier_benchmark-1key-set-200K-elements-sadd-constant 189154 188474 +- 2.5% (13 datapoints) -0.4% No Change
memtier_benchmark-1key-set-2M-elements-sadd-increasing 191398 177900 +- 7.6% (16 datapoints) -7.1% potential REGRESSION
memtier_benchmark-1key-zincrby-1M-elements-pipeline-1 53079 48567 +- 7.7% (16 datapoints) -8.5% potential REGRESSION
memtier_benchmark-1key-zrank-1M-elements-pipeline-1 55854 49168 +- 8.3% (13 datapoints) -12.0% REGRESSION
memtier_benchmark-1key-zrem-5M-elements-pipeline-1 56801 55352 +- 8.1% (11 datapoints) -2.6% No Change
memtier_benchmark-1key-zrevrangebyscore-256K-elements-pipeline-1 121267 114194 +- 8.8% (11 datapoints) -5.8% potential REGRESSION
memtier_benchmark-1key-zrevrank-1M-elements-pipeline-1 55835 48819 +- 8.0% (14 datapoints) -12.6% REGRESSION
memtier_benchmark-1key-zset-10-elements-zrange-all-elements 107658 85157 +- 13.7% UNSTABLE (14 datapoints) -20.9% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-10-elements-zrange-all-elements-long-scores 136474 121945 +- 6.8% (13 datapoints) -10.6% REGRESSION
memtier_benchmark-1key-zset-100-elements-zrange-all-elements 29582 19879 +- 26.0% UNSTABLE (13 datapoints) -32.8% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements 29664 29363 +- 18.0% UNSTABLE (11 datapoints) -1.0% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-zset-100-elements-zrangebyscore-all-elements-long-scores 65451 53993 +- 12.1% UNSTABLE (13 datapoints) -17.5% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-100-elements-zscan 81807 79671 +- 28.8% UNSTABLE (8 datapoints) -2.6% UNSTABLE (very high variance) No Change
memtier_benchmark-1key-zset-1K-elements-zrange-all-elements 4853 3747 +- 16.7% UNSTABLE (13 datapoints) -22.8% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-1key-zset-1M-elements-zcard-pipeline-10 1159787 1167648 +- 5.1% (18 datapoints) 0.7% No Change
memtier_benchmark-1key-zset-1M-elements-zrevrange-5-elements 183353 176073 +- 2.6% (11 datapoints) -4.0% potential REGRESSION
memtier_benchmark-1key-zset-1M-elements-zscore-pipeline-10 952769 979620 +- 17.7% UNSTABLE (19 datapoints) 2.8% UNSTABLE (very high variance) No Change
memtier_benchmark-2keys-lua-eval-hset-expire 99575 98984 +- 6.6% (11 datapoints) -0.6% No Change
memtier_benchmark-2keys-lua-evalsha-hset-expire 114363 105739 +- 5.3% (13 datapoints) -7.5% potential REGRESSION
memtier_benchmark-2keys-set-10-100-elements-sdiff 33416 16984 +- 54.7% UNSTABLE (13 datapoints) -49.2% UNSTABLE (very high variance) REGRESSION
memtier_benchmark-2keys-set-10-100-elements-sinter 100864 100144 +- 6.8% (11 datapoints) -0.7% No Change
memtier_benchmark-2keys-set-10-100-elements-sunion 45848 43396 +- 36.0% UNSTABLE (11 datapoints) -5.3% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-2keys-stream-5-entries-xread-all-entries 92244 78790 +- 9.0% (14 datapoints) -14.6% REGRESSION
memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10 158852 156133 +- 11.1% UNSTABLE (11 datapoints) -1.7% UNSTABLE (very high variance) No Change
memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunion 4500 4447 +- 20.1% UNSTABLE (22 datapoints) -1.2% UNSTABLE (very high variance) No Change
memtier_benchmark-2keys-zset-300-elements-skiplist-encoded-zunionstore 5297 5296 +- 22.1% UNSTABLE (11 datapoints) -0.0% UNSTABLE (very high variance) No Change
memtier_benchmark-3Mkeys-load-string-with-512B-values 171607 166425 +- 2.6% (11 datapoints) -3.0% potential REGRESSION
memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-2000_conns 161675 159843 +- 4.9% (6 datapoints) -1.1% No Change
memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-400_conns 162771 161731 +- 1.2% (6 datapoints) -0.6% No Change
memtier_benchmark-3Mkeys-string-get-with-1KiB-values-pipeline-10-40_conns 163528 161871 +- 1.2% (6 datapoints) -1.0% No Change
memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-2000_conns 167799 170579 +- 6.2% (6 datapoints) 1.7% No Change
memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-400_conns 167723 165294 +- 2.0% (10 datapoints) -1.4% No Change
memtier_benchmark-3Mkeys-string-mixed-20-80-with-512B-values-pipeline-10-5200_conns 144019 131819 +- 11.8% UNSTABLE (6 datapoints) -8.5% UNSTABLE (very high variance) potential REGRESSION
memtier_benchmark-connection-hello 182522 175725 +- 2.4% (12 datapoints) -3.7% potential REGRESSION

WARNING: There were 6 benchmarks with NO datapoints for both baseline and comparison.

NO DATAPOINTS test regexp names: m|m|r|r|r|r

Copy link
Collaborator

@ShooterIT ShooterIT left a comment

Choose a reason for hiding this comment

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

LGTM

ShooterIT
ShooterIT previously approved these changes Nov 11, 2024
@sundb sundb requested a review from oranagra November 13, 2024 06:52
tezc
tezc previously approved these changes Nov 13, 2024
Co-authored-by: Ozan Tezcan <ozantezcan@gmail.com>
@sundb sundb dismissed stale reviews from tezc and ShooterIT via 0504fd8 November 13, 2024 13:56
@sundb sundb merged commit 701f066 into redis:unstable Nov 14, 2024
16 checks passed
@sundb sundb deleted the derfer_free_argv branch December 23, 2024 09:27
sundb added a commit that referenced this pull request Jan 8, 2025
Introduced by #13521

If the client argv was released due to a timeout before sending the
complete command, `argv_len` will be reset to 0.
When argv is parsed again and resized, requesting a length of 0 may
result in argv being NULL, then leading to a crash.

And fix a bug that `argv_len` is not updated correctly in
`replaceClientCommandVector()`.

---------

Co-authored-by: ShooterIT <wangyuancode@163.com>
Co-authored-by: meiravgri <109056284+meiravgri@users.noreply.github.com>
YaacovHazan pushed a commit that referenced this pull request Jan 14, 2025
…rhead (#13521)

inspred by #12730

Before this PR, we allocate new memory to store the user command
arguments, however, if the size of the current `c->argv` is larger than
the current command, we can reuse the previously allocated argv to avoid
allocating new memory for the current command.
And we will free `c->argv` in client cron when the client is idle for 2
seconds.

---------

Co-authored-by: Ozan Tezcan <ozantezcan@gmail.com>
YaacovHazan pushed a commit that referenced this pull request Jan 14, 2025
Introduced by #13521

If the client argv was released due to a timeout before sending the
complete command, `argv_len` will be reset to 0.
When argv is parsed again and resized, requesting a length of 0 may
result in argv being NULL, then leading to a crash.

And fix a bug that `argv_len` is not updated correctly in
`replaceClientCommandVector()`.

---------

Co-authored-by: ShooterIT <wangyuancode@163.com>
Co-authored-by: meiravgri <109056284+meiravgri@users.noreply.github.com>
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.

6 participants