Skip to content

Increase embedded string threshold from 64 to 128 bytes#3397

Draft
Nikhil-Manglore wants to merge 1 commit intovalkey-io:unstablefrom
Nikhil-Manglore:embedded_strings_update
Draft

Increase embedded string threshold from 64 to 128 bytes#3397
Nikhil-Manglore wants to merge 1 commit intovalkey-io:unstablefrom
Nikhil-Manglore:embedded_strings_update

Conversation

@Nikhil-Manglore
Copy link
Member

@Nikhil-Manglore Nikhil-Manglore commented Mar 23, 2026

This PR increases the embedded string threshold to 128 bytes (2 cache lines) in order to improve memory overhead.

Note: I'll fix the tests after the benchmarks run

Signed-off-by: Nikhil Manglore <nmanglor@amazon.com>
@Nikhil-Manglore Nikhil-Manglore force-pushed the embedded_strings_update branch from e38f9c1 to 9d808ac Compare March 23, 2026 20:00
@codecov
Copy link

codecov bot commented Mar 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 74.70%. Comparing base (3c46f66) to head (9d808ac).

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #3397      +/-   ##
============================================
- Coverage     74.93%   74.70%   -0.24%     
============================================
  Files           130      130              
  Lines         72769    72768       -1     
============================================
- Hits          54532    54363     -169     
- Misses        18237    18405     +168     
Files with missing lines Coverage Δ
src/object.c 91.86% <100.00%> (+0.37%) ⬆️

... and 19 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link

Benchmark ran on this commit: e38f9c1

RPS Benchmark Comparison: unstable vs 16d2c42

2 significant change(s)

  • ✅ +31±2% GET rps pipe=10 threads=9 (data_size=96)
  • ✅ +5.4±0.7% GET rps pipe=10 threads=1 (data_size=96)

14 with no significant change

Click to expand full comparison tables

data_size = 16

% Change Test unstable 16d2c42 unstable stats 16d2c42 stats
+1.4±0.8% GET rps P1 T1 227K 230K n=3, σ=1.51K, CV=0.7%, CI99%=±3.8%, PI99%=±7.6% n=3, σ=1.09K, CV=0.5%, CI99%=±2.7%, PI99%=±5.4%
-0±2% GET rps P1 T9 1.53M 1.53M n=3, σ=28.2K, CV=1.8%, CI99%=±10.6%, PI99%=±21.2% n=3, σ=19.4K, CV=1.3%, CI99%=±7.3%, PI99%=±14.5%
+1.6±0.4% GET rps P10 T1 1.233M 1.253M n=3, σ=3.96K, CV=0.3%, CI99%=±1.8%, PI99%=±3.7% n=3, σ=2.49K, CV=0.2%, CI99%=±1.1%, PI99%=±2.3%
+1±1% GET rps P10 T9 2.86M 2.896M n=3, σ=29.7K, CV=1.0%, CI99%=±5.9%, PI99%=±11.9% n=3, σ=7.14K, CV=0.2%, CI99%=±1.4%, PI99%=±2.8%
+0.3±0.9% SET rps P1 T1 221K 221.5K n=3, σ=1.98K, CV=0.9%, CI99%=±5.1%, PI99%=±10.3% n=3, σ=358, CV=0.2%, CI99%=±0.9%, PI99%=±1.9%
+0.6±0.9% SET rps P1 T9 1.483M 1.491M n=3, σ=9.15K, CV=0.6%, CI99%=±3.5%, PI99%=±7.1% n=3, σ=9.86K, CV=0.7%, CI99%=±3.8%, PI99%=±7.6%
+1.8±0.9% SET rps P10 T1 1.038M 1.057M n=3, σ=8.76K, CV=0.8%, CI99%=±4.8%, PI99%=±9.7% n=3, σ=3.02K, CV=0.3%, CI99%=±1.6%, PI99%=±3.3%
+3.7±0.8% SET rps P10 T9 1.93M 2.006M n=3, σ=14.8K, CV=0.8%, CI99%=±4.4%, PI99%=±8.8% n=3, σ=5.21K, CV=0.3%, CI99%=±1.5%, PI99%=±3.0%

data_size = 96

% Change Test unstable 16d2c42 unstable stats 16d2c42 stats
+3±1% GET rps P1 T1 221K 227K n=3, σ=2.01K, CV=0.9%, CI99%=±5.2%, PI99%=±10.5% n=3, σ=2.16K, CV=1.0%, CI99%=±5.5%, PI99%=±10.9%
+3±1% GET rps P1 T9 1.470M 1.51M n=3, σ=8.00K, CV=0.5%, CI99%=±3.1%, PI99%=±6.2% n=3, σ=15.1K, CV=1.0%, CI99%=±5.7%, PI99%=±11.4%
+5.4±0.7% GET rps P10 T1 1.165M 1.228M n=3, σ=3.47K, CV=0.3%, CI99%=±1.7%, PI99%=±3.4% n=3, σ=6.87K, CV=0.6%, CI99%=±3.2%, PI99%=±6.4%
+31±2% GET rps P10 T9 2.26M 2.95M n=3, σ=21.6K, CV=1.0%, CI99%=±5.5%, PI99%=±11.0% n=3, σ=26.7K, CV=0.9%, CI99%=±5.2%, PI99%=±10.4%
+4±1% SET rps P1 T1 213K 220.4K n=3, σ=1.96K, CV=0.9%, CI99%=±5.3%, PI99%=±10.5% n=3, σ=885, CV=0.4%, CI99%=±2.3%, PI99%=±4.6%
+2.1±0.7% SET rps P1 T9 1.458M 1.49M n=3, σ=1.30K, CV=0.1%, CI99%=±0.5%, PI99%=±1.0% n=3, σ=10.3K, CV=0.7%, CI99%=±4.0%, PI99%=±7.9%
+1.8±0.8% SET rps P10 T1 1.025M 1.044M n=3, σ=7.80K, CV=0.8%, CI99%=±4.4%, PI99%=±8.7% n=3, σ=2.85K, CV=0.3%, CI99%=±1.6%, PI99%=±3.1%
+8±2% SET rps P10 T9 1.86M 2.01M n=3, σ=34.8K, CV=1.9%, CI99%=±10.7%, PI99%=±21.5% n=3, σ=23.6K, CV=1.2%, CI99%=±6.7%, PI99%=±13.5%

Configuration:

  • architecture: aarch64
  • benchmark_mode: duration
  • clients: 1600
  • cluster_mode: False
  • duration: 180
  • tls: False
  • valkey_benchmark_threads: 90
  • warmup: 30

Legend:

  • Test column: Command, metric, P=pipeline depth, T=io-threads
  • Significance: ✅ significant improvement, ❌ significant regression, ➖ not significant, ❔ insufficient data

Statistical Notes:

  • CV: Coefficient of Variation - relative variability (σ/μ × 100%)
  • CI99%: 99% Confidence Interval - range where the true population mean is likely to fall
  • PI99%: 99% Prediction Interval - range where a single future observation is likely to fall

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