Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
9ea86c3
Fix duplicate Acks for RDMA events and fix extremely large max latenc…
ruihong123 Aug 13, 2025
6eadd3f
Increment expired_fields stat when assigned TTL is in the past (#2474)
ranshid Aug 13, 2025
573d6a6
HSETEX 'hset' notification should only be generated if not expired (#…
ranshid Aug 13, 2025
0e8df0a
Remove if condition and disable the new failover test (#2477)
enjoy-binbin Aug 13, 2025
7be5738
Consolidate slot migration logs by grouping consecutive slot migratio…
PingXie Aug 14, 2025
3f66dff
Fixing Slot Migration Test Failure (#2485)
sarthakaggarwal97 Aug 14, 2025
918cf59
Add bug / test-failure / enhancement label to issue template (#2273)
sarthakaggarwal97 Aug 15, 2025
39be18e
Ensures presence of slots on the node before test is run (#2486)
sarthakaggarwal97 Aug 15, 2025
ffdb42b
Don't allow resize hashtable if rehashing is ongoing (#2465)
enjoy-binbin Aug 15, 2025
65bf5ba
Fix timeout in defrag tests (#2483)
zuiderkwast Aug 15, 2025
448c79c
Don't call SSL_write() with num=0 (#2490)
yzc-yzc Aug 15, 2025
6b0b097
Fix cluster test module to pass null terminated node-id to SendCluste…
hanxizh9910 Aug 15, 2025
3b4f146
simplify COPY Preserves TTLs hashexpire test (#2495)
ranshid Aug 17, 2025
c3ea070
Add test failure template to contributing guide (#2491)
sarthakaggarwal97 Aug 17, 2025
ea75c2a
Fix memory leak in rdbLoadObject when loading a wrong HFE (#2502)
enjoy-binbin Aug 18, 2025
becd43d
CONFIG GET command return sorted output (#2493)
yzc-yzc Aug 18, 2025
ddd89a8
Fix memory leak in saveSnapshotToConnectionSockets (#2503)
enjoy-binbin Aug 18, 2025
ab0322b
Make cluster failover delay relative to node timeout (#2449)
zuiderkwast Aug 18, 2025
e3f44be
CLUSTER SYNCSLOTS ESTABLISH added source node == myself check (#2500)
enjoy-binbin Aug 19, 2025
dc92390
fix hash ignore ttl management during active expiry (#2505)
ranshid Aug 19, 2025
c0c8731
Fix slot-info expand not working, kvstoreHashtableExpand always creat…
enjoy-binbin Aug 19, 2025
6b5ad9f
Add auto-author-assign workflow (#2410)
hanxizh9910 Aug 19, 2025
f00215a
Skip failure reports for already failed nodes (#2434)
sungming2 Aug 19, 2025
8df076d
Atomically update cluster and replication layer while marking self no…
hpatro Aug 20, 2025
c313d5c
Update pong_received time via gossip only if the node is healthy from…
hpatro Aug 20, 2025
879ae9b
Fix vset unittest compilation warning for bad signedness comparison (…
ranshid Aug 20, 2025
37ea8c6
fix hsetex handling of wrong number of fields (#2509)
ranshid Aug 20, 2025
e7a55a5
Fix total test count while running over loop (#2524)
sarthakaggarwal97 Aug 20, 2025
4e13fdc
Fix assumptions that pthread functions set errno (#2526)
TedLyngmo Aug 20, 2025
0673855
Refactor scanLaterList to fix latency issue (#2514)
asagege Aug 21, 2025
d11d943
Update deps/libvalkey to version 0.2.1
bjosv Aug 21, 2025
f630345
Remove temporary build correction for RDMA and libvalkey 0.1.0
bjosv Aug 21, 2025
4040e0b
Fix slot range lists overlap to rewind the nested list again (#2527)
sarthakaggarwal97 Aug 21, 2025
0688e06
Wait for log message occurrence in module test on message received (#…
hanxizh9910 Aug 21, 2025
cae7756
Module API: Add READONLY flag to ClientInfo.flags output structure (#…
allenss-amazon Aug 21, 2025
0cd3364
Adds benchmark on demand workflow (#2442)
roshkhatri Aug 22, 2025
b4897d2
Remove debug logging from cluster-flush-slot.tcl (#2535)
enjoy-binbin Aug 22, 2025
4bd0c1f
Optimize pipelining by parsing and prefetching multiple commands (#2092)
zuiderkwast Aug 22, 2025
a08a0c0
Don't allow slot migration to myself node (#2497)
enjoy-binbin Aug 22, 2025
29538e0
Consistently use static_assert across code (#2538)
madolson Aug 24, 2025
fcb4bd7
bio.c: Organize all worker data in a struct (#2530)
TedLyngmo Aug 25, 2025
6911ea0
Update reply schema for LMOVE and BLMOVE (#2541)
adam-fowler Aug 26, 2025
dca3ddb
deflake test: relax time requirement in hash ttl test (#2537)
rainsupreme Aug 26, 2025
f4c2e06
Update tests/xxx/tmp/.gitignore to ignore everything (#2542)
enjoy-binbin Aug 27, 2025
48f2273
Attempt to fix sub-replica getting out of sync (#2548)
zuiderkwast Aug 27, 2025
5a86824
Remove the trailing chars of the --cluster reshard log message in val…
enjoy-binbin Aug 29, 2025
2234cce
Do not migrate function in new atomic slot migration (#2547)
enjoy-binbin Aug 29, 2025
906a1ae
Correct path to gen-test-certs.sh in README.md (#2554)
mrcjkb Aug 29, 2025
17766f4
Split SLOT_EXPORT_AUTHENTICATING into SEND and READ to avoid synchron…
enjoy-binbin Aug 29, 2025
7739054
Reset cluster related stats in CONFIG RESETSTATS (#2458)
withRiver Aug 29, 2025
a9c8339
Fix the issue of incorrect commandlog metrics in the script (#2565)
soloestoy Aug 29, 2025
501d31d
Reduce active defrag test latency by lowering hit threshold (#2553)
asagege Aug 29, 2025
563ff6a
Add jacob as a commiter (#2566)
enjoy-binbin Aug 30, 2025
e92a50b
Fix module context object re-usage in scripting engines (#2358)
rjd15372 Sep 1, 2025
c03cf91
New module API event for tracking authentication attempts (#2237)
rjd15372 Sep 1, 2025
c9753b2
Remove deny_blocking check in moduleBlockClient, cleanup code and doc…
enjoy-binbin Sep 2, 2025
3a6b6f4
Delete the previous comment explaining why changed latency from 5 to …
asagege Sep 2, 2025
17350f1
Store number of keys with volatile items per slot in RDB aux field an…
ranshid Sep 3, 2025
edbc260
Don't use AVX2 instructions if the CPU don't support it (#2571)
TedLyngmo Sep 3, 2025
a4bc3e8
Un-deprecate commands (#2546)
stockholmux Sep 3, 2025
25f76be
Relaxed RDB check for foreign RDB formats (#2543)
zuiderkwast Sep 4, 2025
19bfac3
ARM Neon SIMD optimization for hashtable findBucket() (#2573)
rainsupreme Sep 7, 2025
a42f61a
Skip codeql-analysis ci on documentation changes as well (#2567)
enjoy-binbin Sep 8, 2025
c371a2f
Add cluster-announce-client-(port|tls-port) configs (#2429)
marvin-roesch Sep 8, 2025
4f54a60
valkey-cli: Add word-jump navigation (Alt/Option/Ctrl + ←/→) (#2583)
zhijun42 Sep 9, 2025
26ea0b9
Increase frequency of time check during fields active expiration (#2595)
ranshid Sep 10, 2025
c2596a8
Evict client only when limit is breached (#2596)
sarthakaggarwal97 Sep 11, 2025
67cd284
Make modules opt-in to atomic slot migration and add server events (#…
murphyjacob4 Sep 12, 2025
7af66dc
Expand wait condition time for slave selection test (#2604)
vitarb Sep 13, 2025
a8a4cd6
Fix accounting for dual channel RDB bytes in replication stats (#2602)
sarthakaggarwal97 Sep 16, 2025
1a6af5e
Increase wait time condition for New Master down consecutively test (…
sarthakaggarwal97 Sep 16, 2025
a12baac
Adds io-threads configs to PR-perf tests (#2598)
roshkhatri Sep 16, 2025
ec223a3
Fix memory leak in deferred reply buffer (#2615)
uriyage Sep 17, 2025
a405f39
Separate RDB snapshotting from atomic slot migration (#2533)
enjoy-binbin Sep 18, 2025
32f23c0
Update automated benchmarking configs (#2625)
roshkhatri Sep 18, 2025
b41ac15
Fix flaky cluster flush slot test (#2626)
sarthakaggarwal97 Sep 19, 2025
7d7e721
Fix test that checks `extended-redis-compatibility` config deprecatio…
rjd15372 Sep 19, 2025
dfc3686
Fix closing slot migration pipe read (#2630)
sarthakaggarwal97 Sep 20, 2025
2e56efa
Valkey release 9.0.0-rc2
rjd15372 Sep 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Bug report
about: Help us improve by reporting a bug
title: '[BUG]'
labels: ''
labels: ['bug']
assignees: ''

---
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/crash_report.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Crash report
description: Submit a crash report
title: '[CRASH] <short description>'
labels: ['bug']
body:
- type: markdown
attributes:
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Feature request
about: Suggest a feature
title: '[NEW]'
labels: ''
labels: ['enhancement']
assignees: ''

---
Expand Down
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/test-failure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Test failure
about: Report a failing or a flaky test
title: '[TEST-FAILURE] <short description>'
labels: ['test-failure']
assignees: ''
---

<!--Before submitting a test failure report, please check open issues to ensure this failure has not already been reported. -->

**Summary**

A short description of the failure.

**Failing test(s)**

- Test name:
- CI link(s):

**Error stack trace**

A relevant stack trace for the test failure.

> **Tip:** Copy and paste the full stack trace from the CI output into your issue, as CI links may expire over time.
53 changes: 53 additions & 0 deletions .github/benchmark_configs/pr_benchmark.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
[
{
"requests": [100000000],
"keyspacelen": [10000000],
"data_sizes": [16],
"pipelines": [10],
"clients": [50],
"commands": [
"SET",
"GET",
"MSET",
"MGET"
],
"cluster_mode": false,
"tls_mode": false,
"warmup": 120,
"server_cpu_range": "0",
"client_cpu_range": "55,95"
},
{
"requests": [100000000],
"keyspacelen": [10000000],
"data_sizes": [16],
"pipelines": [10],
"clients": [50],
"commands": [
"SET",
"GET"
],
"cluster_mode": true,
"tls_mode": false,
"warmup": 120,
"server_cpu_range": "0",
"client_cpu_range": "55,95"
},
{
"requests": [100000000],
"keyspacelen": [3000000],
"data_sizes": [512],
"pipelines": [10],
"clients": [650],
"commands": [
"SET",
"GET"
],
"cluster_mode": false,
"tls_mode": false,
"warmup": 180,
"io-threads": 8,
"server_cpu_range": "0-7",
"client_cpu_range": "55,95"
}
]
14 changes: 14 additions & 0 deletions .github/workflows/auto-author-assign.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Auto Author Assign

on:
pull_request_target:
types: [opened, reopened]

permissions:
pull-requests: write

jobs:
assign-author:
runs-on: ubuntu-latest
steps:
- uses: toshimaru/auto-author-assign@16f0022cf3d7970c106d8d1105f75a1165edb516 # v2.1.1
139 changes: 139 additions & 0 deletions .github/workflows/benchmark-on-label.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
name: On-demand Benchmark

on:
pull_request_target:
types: [labeled]

concurrency:
group: valkey-benchmark
cancel-in-progress: false

defaults:
run:
shell: "bash -Eeuo pipefail -x {0}"

permissions:
contents: read
pull-requests: write
issues: write

jobs:
benchmark:
runs-on: ${{ github.repository == 'valkey-io/valkey' && fromJSON('["self-hosted","ec2-ubuntu-24.04-benchmarking"]') || 'ubuntu-latest' }}
if: |
github.event.action == 'labeled' && github.event.label.name == 'run-benchmark'
steps:
- name: Checkout valkey
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
path: valkey
fetch-depth: 0
ref: ${{ github.event.pull_request.merge_commit_sha }}
persist-credentials: false

- name: Checkout valkey-perf-benchmark
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
repository: ${{ github.repository_owner }}/valkey-perf-benchmark
path: valkey-perf-benchmark
fetch-depth: 1
persist-credentials: false

- name: Set up Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
with:
python-version: "3.10"
cache: "pip"

- name: Install dependencies
working-directory: valkey-perf-benchmark
run: |
sudo apt-get update
sudo apt-get install -y build-essential
pip install -r requirements.txt

- name: Run benchmarks
working-directory: valkey-perf-benchmark
run: |
CONFIG_FILE="../valkey/.github/benchmark_configs/pr_benchmark.json"

# Removes server/client CPU range args if running in private repo
if [[ "${{ github.repository }}" != "valkey-io/valkey" ]]; then
jq 'map(del(.server_cpu_range, .client_cpu_range))' "$CONFIG_FILE" > tmp.json && mv tmp.json "$CONFIG_FILE"
fi

# Base benchmark arguments
BENCHMARK_ARGS=(
--commits "${{ github.event.pull_request.merge_commit_sha }}"
--baseline "${{ github.event.pull_request.base.ref }}"
--results-dir "results"
--valkey-path "../valkey"
--config "$CONFIG_FILE"
)

# Run benchmark
python ./benchmark.py "${BENCHMARK_ARGS[@]}"

- name: Compare results
working-directory: valkey-perf-benchmark
run: |
python ./utils/compare_benchmark_results.py \
./results/${{ github.event.pull_request.base.ref }}/metrics.json \
./results/${{ github.event.pull_request.merge_commit_sha }}/metrics.json \
../comparison.md

- name: Upload artifacts
if: always()
continue-on-error: true
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
with:
name: benchmark-results
path: |
./valkey-perf-benchmark/results/${{ github.event.pull_request.merge_commit_sha }}/metrics.json
./valkey-perf-benchmark/results/${{ github.event.pull_request.base.ref }}/metrics.json
comparison.md

- name: Comment PR with results
uses: actions/github-script@5c56fde4671bc2d3592fb0f2c5b5bab9ddae03b1 # v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
const body = fs.readFileSync('comparison.md', 'utf8');
const {owner, repo} = context.repo;
const sha = '${{ github.event.pull_request.head.sha }}';
const short = sha.slice(0,7);
const link = `[\`${short}\`](https://github.com/${owner}/${repo}/commit/${sha})`
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner,
repo,
body: `**Benchmark ran on this commit:** ${link}\n\n${body}`
});

- name: Cleanup any running valkey processes
if: always()
continue-on-error: true
run: |
pkill -f valkey
exit_code=$?
if [ $exit_code -eq 0 ]; then
echo "✓ Killed running valkey processes"
elif [ $exit_code -eq 1 ]; then
echo "No valkey processes found to kill"
else
echo "Warning: pkill failed with exit code $exit_code"
fi

- name: Remove ${{ github.event.label.name }} label
if: always() && github.event.label.name == 'run-benchmark'
uses: actions/github-script@5c56fde4671bc2d3592fb0f2c5b5bab9ddae03b1 # v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
await github.rest.issues.removeLabel({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
name: '${{ github.event.label.name }}'
}).catch(err => console.log('label not present', err.message));
Loading
Loading