Skip to content

Conversation

adam-fowler
Copy link
Collaborator

@adam-fowler adam-fowler commented Sep 25, 2025

Add associatedtype NodeDescription to ValkeyNodeConnectionPool.
Add update ValkeyRunningClientsStateMachine to use NodeDescription
Add cluster specific ValkeyClusterNodeClientFactory which uses ValkeyNodeDescription as a node description

This change is so we can use ValkeyRunningClientsStateMachine in ValkeyClient which requires a different node address type.

This allows us have separate node descriptions for different implementations of ValkeyRunningClientsStateMachine

Signed-off-by: Adam Fowler <[email protected]>
Copy link

✅ Pull request no significant performance differences ✅

Summary

New baseline 'pull_request' is WITHIN the 'main' baseline thresholds.

Full Benchmark Comparison

Comparing results between 'main' and 'pull_request'

Host '965e2c874a61' with 4 'x86_64' processors with 15 GB memory, running:
#18~24.04.1-Ubuntu SMP Sat Jun 28 04:46:03 UTC 2025

ValkeyBenchmarks

Client: GET benchmark metrics

Malloc (total): results within specified thresholds, fold down for details.

Malloc (total) * p0 p25 p50 p75 p90 p99 p100 Samples
main 84 85 85 87 87 87 87 6
pull_request 82 82 83 87 89 89 89 6
Δ -2 -3 -2 0 2 2 2 0
Improvement % 2 4 2 0 -2 -2 -2 0

Client: GET benchmark | parallel 20 | 20 concurrent connections metrics

Malloc (total): results within specified thresholds, fold down for details.

Malloc (total) * p0 p25 p50 p75 p90 p99 p100 Samples
main 97 100 102 106 111 113 113 25
pull_request 96 100 103 106 108 113 113 25
Δ -1 0 1 0 -3 0 0 0
Improvement % 1 0 -1 0 3 0 0 0

Connection: GET benchmark metrics

Malloc (total): results within specified thresholds, fold down for details.

Malloc (total) * p0 p25 p50 p75 p90 p99 p100 Samples
main 4 4 4 4 4 4 4 9
pull_request 4 4 4 4 4 4 4 8
Δ 0 0 0 0 0 0 0 -1
Improvement % 0 0 0 0 0 0 0 -1

Connection: GET benchmark – NoOpTracer metrics

Malloc (total): results within specified thresholds, fold down for details.

Malloc (total) * p0 p25 p50 p75 p90 p99 p100 Samples
main 7 8 8 10 10 10 10 8
pull_request 7 8 8 10 10 10 10 8
Δ 0 0 0 0 0 0 0 0
Improvement % 0 0 0 0 0 0 0 0

Connection: Pipeline array benchmark metrics

Malloc (total): results within specified thresholds, fold down for details.

Malloc (total) * p0 p25 p50 p75 p90 p99 p100 Samples
main 37 38 38 43 45 45 45 5
pull_request 37 37 37 43 45 45 45 5
Δ 0 -1 -1 0 0 0 0 0
Improvement % 0 3 3 0 0 0 0 0

Connection: Pipeline benchmark metrics

Malloc (total): results within specified thresholds, fold down for details.

Malloc (total) * p0 p25 p50 p75 p90 p99 p100 Samples
main 36 36 37 37 37 37 37 5
pull_request 36 37 37 37 37 37 37 5
Δ 0 1 0 0 0 0 0 0
Improvement % 0 -3 0 0 0 0 0 0

HashSlot – {user}.whatever metrics

Malloc (total): results within specified thresholds, fold down for details.

Malloc (total) * p0 p25 p50 p75 p90 p99 p100 Samples
main 0 0 0 0 0 0 0 18
pull_request 0 0 0 0 0 0 0 16
Δ 0 0 0 0 0 0 0 -2
Improvement % 0 0 0 0 0 0 0 -2

ValkeyCommandEncoder – Command with 7 words metrics

Malloc (total): results within specified thresholds, fold down for details.

Malloc (total) * p0 p25 p50 p75 p90 p99 p100 Samples
main 0 0 0 0 0 0 0 737
pull_request 0 0 0 0 0 0 0 745
Δ 0 0 0 0 0 0 0 8
Improvement % 0 0 0 0 0 0 0 8

ValkeyCommandEncoder – Simple GET metrics

Malloc (total): results within specified thresholds, fold down for details.

Malloc (total) * p0 p25 p50 p75 p90 p99 p100 Samples
main 0 0 0 0 0 0 0 1882
pull_request 0 0 0 0 0 0 0 1903
Δ 0 0 0 0 0 0 0 21
Improvement % 0 0 0 0 0 0 0 21

ValkeyCommandEncoder – Simple MGET 15 keys metrics

Malloc (total): results within specified thresholds, fold down for details.

Malloc (total) * p0 p25 p50 p75 p90 p99 p100 Samples
main 0 0 0 0 0 0 0 360
pull_request 0 0 0 0 0 0 0 360
Δ 0 0 0 0 0 0 0 0
Improvement % 0 0 0 0 0 0 0 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant