Skip to content

Conversation

@roshkhatri
Copy link
Owner

No description provided.

Signed-off-by: Roshan Khatri <[email protected]>
Signed-off-by: Roshan Khatri <[email protected]>
@github-actions
Copy link

github-actions bot commented Aug 7, 2025

Benchmark Comparison by Command

GET

Metric Baseline PR Diff % Change
rps 633312.25 626252.50 -7059.75 -1.11%
latency_avg_ms 0.70 0.71 0.01 +1.00%
latency_p50_ms 0.65 0.66 0.01 +1.24%
latency_p95_ms 1.01 1.01 0.01 +0.79%
latency_p99_ms 1.25 1.25 0.01 +0.64%

HSET

Metric Baseline PR Diff % Change
rps 571689.88 547825.12 -23864.76 -4.17%
latency_avg_ms 0.79 0.83 0.04 +4.82%
latency_p50_ms 0.74 0.78 0.04 +5.38%
latency_p95_ms 1.15 1.20 0.05 +4.17%
latency_p99_ms 1.42 1.46 0.04 +2.81%

LPOP

Metric Baseline PR Diff % Change
rps 635525.94 602700.12 -32825.82 -5.17%
latency_avg_ms 0.70 0.74 0.04 +5.82%
latency_p50_ms 0.65 0.69 0.04 +6.18%
latency_p95_ms 0.95 1.09 0.14 +15.14%
latency_p99_ms 1.28 1.33 0.06 +4.38%

LPUSH

Metric Baseline PR Diff % Change
rps 652741.50 626291.75 -26449.75 -4.05%
latency_avg_ms 0.68 0.71 0.03 +4.55%
latency_p50_ms 0.61 0.65 0.03 +5.20%
latency_p95_ms 1.05 1.12 0.07 +6.88%
latency_p99_ms 1.26 1.29 0.02 +1.90%

LRANGE

Metric Baseline PR Diff % Change
rps 650321.94 650321.94 0.00 +0.00%
latency_avg_ms 0.68 0.68 0.00 +0.00%
latency_p50_ms 0.61 0.62 0.01 +1.30%
latency_p95_ms 1.05 1.01 -0.03 -3.06%
latency_p99_ms 1.26 1.25 -0.01 -0.63%

MGET

Metric Baseline PR Diff % Change
rps 195469.03 194836.83 -632.20 -0.32%
latency_avg_ms 2.37 2.37 0.00 +0.04%
latency_p50_ms 2.42 2.42 0.00 +0.00%
latency_p95_ms 2.85 2.86 0.01 +0.28%
latency_p99_ms 3.08 3.12 0.04 +1.30%

RPUSH

Metric Baseline PR Diff % Change
rps 661288.19 648550.50 -12737.69 -1.93%
latency_avg_ms 0.67 0.68 0.01 +2.09%
latency_p50_ms 0.60 0.61 0.02 +2.67%
latency_p95_ms 1.06 1.08 0.02 +1.51%
latency_p99_ms 1.25 1.26 0.02 +1.28%

SADD

Metric Baseline PR Diff % Change
rps 638610.38 617017.31 -21593.07 -3.38%
latency_avg_ms 0.70 0.72 0.02 +3.44%
latency_p50_ms 0.65 0.67 0.02 +3.71%
latency_p95_ms 0.99 1.05 0.06 +5.65%
latency_p99_ms 1.25 1.28 0.02 +1.91%

SET

Metric Baseline PR Diff % Change
rps 579811.00 568472.50 -11338.50 -1.96%
latency_avg_ms 0.78 0.79 0.02 +1.93%
latency_p50_ms 0.73 0.74 0.02 +2.20%
latency_p95_ms 1.11 1.15 0.04 +3.60%
latency_p99_ms 1.37 1.39 0.02 +1.76%

SPOP

Metric Baseline PR Diff % Change
rps 196486.81 197052.09 565.28 +0.29%
latency_avg_ms 2.42 2.41 -0.01 -0.29%
latency_p50_ms 2.26 2.25 -0.02 -0.71%
latency_p95_ms 5.40 5.33 -0.07 -1.33%
latency_p99_ms 6.02 6.06 0.04 +0.66%

ZPOPMIN

Metric Baseline PR Diff % Change
rps 703482.25 682826.88 -20655.37 -2.94%
latency_avg_ms 0.51 0.54 0.03 +6.31%
latency_p50_ms 0.34 0.36 0.02 +4.66%
latency_p95_ms 0.97 1.00 0.03 +3.31%
latency_p99_ms 1.16 1.29 0.13 +11.04%

Benchmark Comparison by Command, Cluster and TLS

GET | cluster off | tls off

Metric Baseline PR Diff % Change
rps 633312.25 626252.50 -7059.75 -1.11%
latency_avg_ms 0.70 0.71 0.01 +1.00%
latency_p50_ms 0.65 0.66 0.01 +1.24%
latency_p95_ms 1.01 1.01 0.01 +0.79%
latency_p99_ms 1.25 1.25 0.01 +0.64%

HSET | cluster off | tls off

Metric Baseline PR Diff % Change
rps 571689.88 547825.12 -23864.76 -4.17%
latency_avg_ms 0.79 0.83 0.04 +4.82%
latency_p50_ms 0.74 0.78 0.04 +5.38%
latency_p95_ms 1.15 1.20 0.05 +4.17%
latency_p99_ms 1.42 1.46 0.04 +2.81%

LPOP | cluster off | tls off

Metric Baseline PR Diff % Change
rps 635525.94 602700.12 -32825.82 -5.17%
latency_avg_ms 0.70 0.74 0.04 +5.82%
latency_p50_ms 0.65 0.69 0.04 +6.18%
latency_p95_ms 0.95 1.09 0.14 +15.14%
latency_p99_ms 1.28 1.33 0.06 +4.38%

LPUSH | cluster off | tls off

Metric Baseline PR Diff % Change
rps 652741.50 626291.75 -26449.75 -4.05%
latency_avg_ms 0.68 0.71 0.03 +4.55%
latency_p50_ms 0.61 0.65 0.03 +5.20%
latency_p95_ms 1.05 1.12 0.07 +6.88%
latency_p99_ms 1.26 1.29 0.02 +1.90%

LRANGE | cluster off | tls off

Metric Baseline PR Diff % Change
rps 650321.94 650321.94 0.00 +0.00%
latency_avg_ms 0.68 0.68 0.00 +0.00%
latency_p50_ms 0.61 0.62 0.01 +1.30%
latency_p95_ms 1.05 1.01 -0.03 -3.06%
latency_p99_ms 1.26 1.25 -0.01 -0.63%

MGET | cluster off | tls off

Metric Baseline PR Diff % Change
rps 195469.03 194836.83 -632.20 -0.32%
latency_avg_ms 2.37 2.37 0.00 +0.04%
latency_p50_ms 2.42 2.42 0.00 +0.00%
latency_p95_ms 2.85 2.86 0.01 +0.28%
latency_p99_ms 3.08 3.12 0.04 +1.30%

RPUSH | cluster off | tls off

Metric Baseline PR Diff % Change
rps 661288.19 648550.50 -12737.69 -1.93%
latency_avg_ms 0.67 0.68 0.01 +2.09%
latency_p50_ms 0.60 0.61 0.02 +2.67%
latency_p95_ms 1.06 1.08 0.02 +1.51%
latency_p99_ms 1.25 1.26 0.02 +1.28%

SADD | cluster off | tls off

Metric Baseline PR Diff % Change
rps 638610.38 617017.31 -21593.07 -3.38%
latency_avg_ms 0.70 0.72 0.02 +3.44%
latency_p50_ms 0.65 0.67 0.02 +3.71%
latency_p95_ms 0.99 1.05 0.06 +5.65%
latency_p99_ms 1.25 1.28 0.02 +1.91%

SET | cluster off | tls off

Metric Baseline PR Diff % Change
rps 579811.00 568472.50 -11338.50 -1.96%
latency_avg_ms 0.78 0.79 0.02 +1.93%
latency_p50_ms 0.73 0.74 0.02 +2.20%
latency_p95_ms 1.11 1.15 0.04 +3.60%
latency_p99_ms 1.37 1.39 0.02 +1.76%

SPOP | cluster off | tls off

Metric Baseline PR Diff % Change
rps 196486.81 197052.09 565.28 +0.29%
latency_avg_ms 2.42 2.41 -0.01 -0.29%
latency_p50_ms 2.26 2.25 -0.02 -0.71%
latency_p95_ms 5.40 5.33 -0.07 -1.33%
latency_p99_ms 6.02 6.06 0.04 +0.66%

ZPOPMIN | cluster off | tls off

Metric Baseline PR Diff % Change
rps 703482.25 682826.88 -20655.37 -2.94%
latency_avg_ms 0.51 0.54 0.03 +6.31%
latency_p50_ms 0.34 0.36 0.02 +4.66%
latency_p95_ms 0.97 1.00 0.03 +3.31%
latency_p99_ms 1.16 1.29 0.13 +11.04%

Signed-off-by: Roshan Khatri <[email protected]>
@roshkhatri roshkhatri merged commit 4766690 into adds-lable-benchmarks Aug 7, 2025
32 checks passed
roshkhatri pushed a commit that referenced this pull request Oct 14, 2025
With valkey-io#1401, we introduced additional filters to CLIENT LIST/KILL
subcommand. The intended behavior was to pick the last value of the
filter. However, we introduced memory leak for all the preceding
filters.

Before this change:
```
> CLIENT LIST IP 127.0.0.1 IP 127.0.0.1
id=4 addr=127.0.0.1:37866 laddr=127.0.0.1:6379 fd=10 name= age=0 idle=0 flags=N capa= db=0 sub=0 psub=0 ssub=0 multi=-1 watch=0 qbuf=0 qbuf-free=0 argv-mem=21 multi-mem=0 rbs=16384 rbp=16384 obl=0 oll=0 omem=0 tot-mem=16989 events=r cmd=client|list user=default redir=-1 resp=2 lib-name= lib-ver= tot-net-in=49 tot-net-out=0 tot-cmds=0
```
Leak:
```
Direct leak of 11 byte(s) in 1 object(s) allocated from:
    #0 0x7f2901aa557d in malloc (/lib64/libasan.so.4+0xd857d)
    #1 0x76db76 in ztrymalloc_usable_internal /workplace/harkrisp/valkey/src/zmalloc.c:156
    #2 0x76db76 in zmalloc_usable /workplace/harkrisp/valkey/src/zmalloc.c:200
    #3 0x4c4121 in _sdsnewlen.constprop.230 /workplace/harkrisp/valkey/src/sds.c:113
    valkey-io#4 0x4dc456 in parseClientFiltersOrReply.constprop.63 /workplace/harkrisp/valkey/src/networking.c:4264
    valkey-io#5 0x4bb9f7 in clientListCommand /workplace/harkrisp/valkey/src/networking.c:4600
    valkey-io#6 0x641159 in call /workplace/harkrisp/valkey/src/server.c:3772
    valkey-io#7 0x6431a6 in processCommand /workplace/harkrisp/valkey/src/server.c:4434
    valkey-io#8 0x4bfa9b in processCommandAndResetClient /workplace/harkrisp/valkey/src/networking.c:3571
    valkey-io#9 0x4bfa9b in processInputBuffer /workplace/harkrisp/valkey/src/networking.c:3702
    valkey-io#10 0x4bffa3 in readQueryFromClient /workplace/harkrisp/valkey/src/networking.c:3812
    valkey-io#11 0x481015 in callHandler /workplace/harkrisp/valkey/src/connhelpers.h:79
    valkey-io#12 0x481015 in connSocketEventHandler.lto_priv.394 /workplace/harkrisp/valkey/src/socket.c:301
    valkey-io#13 0x7d3fb3 in aeProcessEvents /workplace/harkrisp/valkey/src/ae.c:486
    valkey-io#14 0x7d4d44 in aeMain /workplace/harkrisp/valkey/src/ae.c:543
    valkey-io#15 0x453925 in main /workplace/harkrisp/valkey/src/server.c:7319
    valkey-io#16 0x7f2900cd7139 in __libc_start_main (/lib64/libc.so.6+0x21139)
```

Note: For filter ID / NOT-ID we group all the option and perform
filtering whereas for remaining filters we only pick the last filter
option.

---------

Signed-off-by: Harkrishn Patro <[email protected]>
roshkhatri pushed a commit that referenced this pull request Oct 16, 2025
With valkey-io#1401, we introduced additional filters to CLIENT LIST/KILL
subcommand. The intended behavior was to pick the last value of the
filter. However, we introduced memory leak for all the preceding
filters.

Before this change:
```
> CLIENT LIST IP 127.0.0.1 IP 127.0.0.1
id=4 addr=127.0.0.1:37866 laddr=127.0.0.1:6379 fd=10 name= age=0 idle=0 flags=N capa= db=0 sub=0 psub=0 ssub=0 multi=-1 watch=0 qbuf=0 qbuf-free=0 argv-mem=21 multi-mem=0 rbs=16384 rbp=16384 obl=0 oll=0 omem=0 tot-mem=16989 events=r cmd=client|list user=default redir=-1 resp=2 lib-name= lib-ver= tot-net-in=49 tot-net-out=0 tot-cmds=0
```
Leak:
```
Direct leak of 11 byte(s) in 1 object(s) allocated from:
    #0 0x7f2901aa557d in malloc (/lib64/libasan.so.4+0xd857d)
    #1 0x76db76 in ztrymalloc_usable_internal /workplace/harkrisp/valkey/src/zmalloc.c:156
    #2 0x76db76 in zmalloc_usable /workplace/harkrisp/valkey/src/zmalloc.c:200
    #3 0x4c4121 in _sdsnewlen.constprop.230 /workplace/harkrisp/valkey/src/sds.c:113
    valkey-io#4 0x4dc456 in parseClientFiltersOrReply.constprop.63 /workplace/harkrisp/valkey/src/networking.c:4264
    valkey-io#5 0x4bb9f7 in clientListCommand /workplace/harkrisp/valkey/src/networking.c:4600
    valkey-io#6 0x641159 in call /workplace/harkrisp/valkey/src/server.c:3772
    valkey-io#7 0x6431a6 in processCommand /workplace/harkrisp/valkey/src/server.c:4434
    valkey-io#8 0x4bfa9b in processCommandAndResetClient /workplace/harkrisp/valkey/src/networking.c:3571
    valkey-io#9 0x4bfa9b in processInputBuffer /workplace/harkrisp/valkey/src/networking.c:3702
    valkey-io#10 0x4bffa3 in readQueryFromClient /workplace/harkrisp/valkey/src/networking.c:3812
    valkey-io#11 0x481015 in callHandler /workplace/harkrisp/valkey/src/connhelpers.h:79
    valkey-io#12 0x481015 in connSocketEventHandler.lto_priv.394 /workplace/harkrisp/valkey/src/socket.c:301
    valkey-io#13 0x7d3fb3 in aeProcessEvents /workplace/harkrisp/valkey/src/ae.c:486
    valkey-io#14 0x7d4d44 in aeMain /workplace/harkrisp/valkey/src/ae.c:543
    valkey-io#15 0x453925 in main /workplace/harkrisp/valkey/src/server.c:7319
    valkey-io#16 0x7f2900cd7139 in __libc_start_main (/lib64/libc.so.6+0x21139)
```

Note: For filter ID / NOT-ID we group all the option and perform
filtering whereas for remaining filters we only pick the last filter
option.

---------

Signed-off-by: Harkrishn Patro <[email protected]>
@roshkhatri roshkhatri deleted the test branch November 11, 2025 20:31
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