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

add parameter for limiting maximum AOF files size on disk #1425

Closed
wants to merge 101 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
91cf42d
added aof-max-size parameter with tests; fixes #540
kronwerk Dec 10, 2024
b57409c
tuned tests
kronwerk Dec 11, 2024
089015b
defrag: allow defrag to start during AOF loading (#1420)
JimB123 Dec 11, 2024
2a2900f
Send MEET packet to node if there is no inbound link to fix inconsist…
pieturin Dec 12, 2024
f5793d8
Avoid defragging scripts during EVAL command execution (#1414)
ranshid Dec 12, 2024
e407ced
Use `configure-aws-credentials` workflow instead of passing `secret_a…
vudiep411 Dec 12, 2024
fa97d89
Fix Valkey binary build workflow, version support changes. (#1429)
roshkhatri Dec 12, 2024
efa90ff
defrag: eliminate persistent kvstore pointer and edge case fixes (#1430)
JimB123 Dec 12, 2024
c962a3e
Check length before reading in `stringmatchlen` (#1431)
thaliaarchi Dec 13, 2024
2b73371
Skip build-release-packages CI job in forks (#1438)
enjoy-binbin Dec 13, 2024
630327c
Fix wrong file name in build-release-packages.yml (#1437)
enjoy-binbin Dec 13, 2024
5bf8a6b
Avoid importing memory aligned malloc (#1442)
madolson Dec 14, 2024
8faf3c3
Synchronously delete data during defrag tests (#1443)
madolson Dec 14, 2024
3931ee4
Replace dict with new hashtable for sets datatype (#1176)
SoftlyRaining Dec 14, 2024
aa35b89
Automatic failover vote is not limited by two times the node timeout …
enjoy-binbin Dec 15, 2024
4b7e07f
Drop the MEET packet if the link node is in handshake state (#1436)
enjoy-binbin Dec 16, 2024
d76ca02
Fix the secrete for test bucket. (#1447)
roshkhatri Dec 16, 2024
bc4f865
Fix test_reclaimFilePageCache to avoid tmpfs (#1379)
xbasel Dec 17, 2024
5c414bf
Introduce FORCE_DEFRAG compilation option to allow activedefrag run w…
ranshid Dec 17, 2024
1e20853
Discover and fix new typos (#1446)
szepeviktor Dec 18, 2024
cbe08dd
Fix undefined behavior defined by ASAN (#1451)
madolson Dec 18, 2024
c720899
Offload TLS negotiation to I/O threads (#1338)
uriyage Dec 18, 2024
bfad110
Attempt to read secondary error from info test (#1452)
madolson Dec 18, 2024
84c1a44
Add a hint about the current file for TCL debugging (#1459)
madolson Dec 19, 2024
fff1573
Minor log fixes when failover auth denied due to slot epoch (#1341)
enjoy-binbin Dec 19, 2024
4aa656f
Support for reading from replicas in valkey-benchmark (#1392)
bluayer Dec 19, 2024
7f0cc83
Workflow changes to fix old release binaries (#1461)
roshkhatri Dec 19, 2024
cfa292a
Clear outdated failure reports more accurately (#1184)
enjoy-binbin Dec 20, 2024
13419cb
Fix storing the wrong PID in active servers (#1464)
madolson Dec 20, 2024
b3daabe
Update info.tcl test to revert client output limits sooner (#1462)
madolson Dec 20, 2024
beb95d3
Resolve bounds checks on cluster_legacy.c (#1463)
madolson Dec 20, 2024
32b09c6
Adds support for scripting engines as Valkey modules (#1277)
rjd15372 Dec 21, 2024
65d054b
Fix switch case compilation error in the new helloscripting (#1472)
enjoy-binbin Dec 22, 2024
070ad88
Remove readability refactor for failover auth to fix clang warning (#…
madolson Dec 24, 2024
c8e5fc9
Reduce dual channel testing time (#1477)
naglera Dec 24, 2024
da15cee
Add scoped RDB loading context and immediate abort flag (#1173)
naglera Dec 24, 2024
ff39427
Document all command flags near serverCommand (#1474)
enjoy-binbin Dec 25, 2024
3d5acdd
Fix restore replica output bytes stat update (#1486)
uriyage Dec 25, 2024
2f07b66
Fix JSON description of SET command (#1473)
gmbnomis Dec 26, 2024
810a437
Immediately restart the defrag cycle if we still need to defrag (#1492)
madolson Dec 29, 2024
4f59458
Only (re-)send MEET packet once every handshake timeout period (#1441)
pieturin Dec 30, 2024
68f5058
Make global configs as static (#1159)
pizhenwei Dec 30, 2024
399fb08
Align rejected unblocked commands to update the correct error statist…
ranshid Jan 1, 2025
471ecf4
Fix unreliable dual channel Valgrind tests (#1500)
naglera Jan 2, 2025
15189c9
replication: fix io-threads possible race by moving waitForClientIO (…
uriyage Jan 2, 2025
f7ac777
Offload reading the replication stream to IO threads (#1449)
uriyage Jan 2, 2025
245f51d
Remove releasetools folder (#1496)
hwware Jan 2, 2025
cb7f275
Refactor: move all valkey modules related declarations to `module.h` …
rjd15372 Jan 2, 2025
4dcb2b7
Update Redis legacy keyword and link in utils/whatisdoing.sh (#1495)
hwware Jan 3, 2025
890bb71
Use the correct command proc for the LOOKUP_NOTOUCH exception in look…
gmbnomis Jan 3, 2025
888ea5a
Move coverity back to ubuntu 22 until test failures are fixed (#1504)
madolson Jan 3, 2025
3b08507
CMake: fail on warnings (#1503)
eifrah-aws Jan 3, 2025
b95ad54
Explicitly check C_ERR condition to improve readability in clusterSav…
enjoy-binbin Jan 4, 2025
3072443
Check whether to switch to fail when setting the node to pfail in cro…
enjoy-binbin Jan 6, 2025
bbd22ea
Fix Read/Write key pattern selector (CVE-2024-51741) (#1514)
madolson Jan 6, 2025
38910e2
Fix LUA garbage collector (CVE-2024-46981) (#1513)
madolson Jan 6, 2025
990782e
Add tests for acl selectors with no permissions or patterns (#1515)
madolson Jan 6, 2025
794567f
Add `availability_zone` to the HELLO response (#1487)
rueian Jan 7, 2025
50487cc
Actually run code coverage on ubuntu 22 (#1522)
madolson Jan 7, 2025
1987c36
Add `availability_zone` to the HELLO command history (#1524)
rueian Jan 8, 2025
ac096a1
client struct: lazy init components and optimize struct layout (#1405)
uriyage Jan 8, 2025
bd18b28
Add build folder to gitignore. (#1488)
lipzhu Jan 8, 2025
0d3118a
Replace dict with new hashtable: sorted set datatype (#1427)
SoftlyRaining Jan 8, 2025
aa3f256
Skip logreqres on tests for the HELLO command (#1528)
rueian Jan 8, 2025
984cb0a
valkey-cli auto-exit from subscribed mode (#1432)
Nikhil-Manglore Jan 8, 2025
35c87a6
Improve Typos configuration (#1456)
szepeviktor Jan 8, 2025
b4de750
Accelerate hash table iterator with prefetching (#1501)
NadavGigi Jan 8, 2025
80f11be
Remove legacy SERVER_TEST compiler flag from cmake. (#1530)
karthyuom Jan 9, 2025
cae899a
Fix new cli subscribed mode test in cluster mode (#1533)
enjoy-binbin Jan 9, 2025
04bdeea
Free the passed in lua context instead of the global (#1536)
madolson Jan 9, 2025
974c3eb
Update upload artifacts to v4 (#1539)
hpatro Jan 10, 2025
113abc9
Fix crash when freeing newly created node when nodeIp2String fail (#1…
enjoy-binbin Jan 10, 2025
4346daf
Fix module LatencyAddSample still work when latency-monitor-threshold…
enjoy-binbin Jan 11, 2025
9c58fb5
Do election in order based on failed primary rank to avoid voting con…
enjoy-binbin Jan 11, 2025
7fdd0e6
Mark the node as FAIL when the node is marked as NOADDR and broadcast…
enjoy-binbin Jan 11, 2025
52357ed
Add latency stats around cluster config file operations (#1534)
enjoy-binbin Jan 11, 2025
2b73a9f
Skip CLI tests with reply schema validation (#1545)
zuiderkwast Jan 12, 2025
df879e3
Test coverage for ECHO for reply schema validation (#1549)
zuiderkwast Jan 13, 2025
36707d5
Replace dict with new hashtable: hash datatype (#1502)
SoftlyRaining Jan 13, 2025
703fffa
Escape unix socket group in unit tests (#1554)
secwall Jan 14, 2025
6281761
Fix valgrind test (#1555)
naglera Jan 14, 2025
a06e4f0
Introduce const_sds for const-content sds (#1553)
zuiderkwast Jan 14, 2025
af8927a
add paused_actions for INFO Clients (#1519)
soloestoy Jan 14, 2025
4b1b8e3
Adding Missing filters to CLIENT LIST and Dedup Parsing (#1401)
sarthakaggarwal97 Jan 15, 2025
858d91a
Allow clang-format to be triggered in push events (#1565)
enjoy-binbin Jan 16, 2025
87fe817
Incr expired_keys if the unix-time is already expired for EXPIREAT an…
RayaCoo Jan 16, 2025
d3d6736
Extract the scripting engine code from the functions unit (#1312)
rjd15372 Jan 16, 2025
b023e3b
Fix cluster info sent stats for message with light header (#1563)
hpatro Jan 16, 2025
91a0918
Fix memory leak in forgotten node ping ext code path (#1574)
pieturin Jan 16, 2025
6de3fd5
Update comments and log message in cluster_legacy.c (#1561)
pieturin Jan 17, 2025
f619314
Lower latenct-monitor-threashold in expire-cycle test case (#1584)
zuiderkwast Jan 19, 2025
fc20f29
Change the shared format for dual channel replication logs (#1586)
ranshid Jan 20, 2025
4b1c861
Fix Protocol desync regression test (#1590)
ranshid Jan 20, 2025
d68667d
fix test Protocol desync regression test with TLS (#1593)
ranshid Jan 21, 2025
7ea9b04
Add cross-version test framework (and a simple test) (#1371)
zuiderkwast Jan 23, 2025
9df9d61
Accelerate hash table iterator with value prefetching (#1568)
NadavGigi Jan 23, 2025
ca68e8a
Feature COMMANDLOG to record slow execution and large request/reply (…
soloestoy Jan 24, 2025
58482ff
Set GH actions job timeout to a day (#1540)
hpatro Jan 24, 2025
5924f05
Test coverage for COMMANDLOG HELP (#1617)
zuiderkwast Jan 27, 2025
9436734
Deflake hashtable random fairness test (#1618)
zuiderkwast Jan 27, 2025
1f3dd5c
change error message for aox-max-size exceeding
kronwerk Jan 27, 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 .cmake-format.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ format:
_help_require_valid_layout:
- By default, if cmake-format cannot successfully fit
- everything into the desired linewidth it will apply the
- last, most agressive attempt that it made. If this flag is
- last, most aggressive attempt that it made. If this flag is
- True, however, cmake-format will print error, exit with non-
- zero status code, and write-out nothing
require_valid_layout: false
Expand Down
21 changes: 8 additions & 13 deletions .config/typos.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

[files]
extend-exclude = [
".git/",
"deps/",
# crc16_slottable is primarily pre-generated random strings.
"src/crc16_slottable.h",
]
ignore-hidden = false

[default.extend-words]
advices = "advices"
exat = "exat"
optin = "optin"
ro = "ro"
smove = "smove"

[type.c]
Expand All @@ -20,34 +20,31 @@ extend-ignore-re = [
"D4C4DAA4", # sha1.c
"Georg Nees",
"\\[l\\]ist", # eval.c
"LKE", # test_rax.c
'"LKE"', # test_rax.c
]

[type.tcl]
extend-ignore-re = [
"DUMPed",
]

[type.sv.extend-identifiers]
# sv = .h
module_gil_acquring = "module_gil_acquring"

[type.c.extend-identifiers]
ang = "ang"
advices = "advices"
clen = "clen"
fle = "fle"
module_gil_acquring = "module_gil_acquring"
nd = "nd"
ot = "ot"

[type.tcl.extend-identifiers]
fo = "fo"
oll = "oll"
stressers = "stressers"

[type.sv.extend-words]
[type.sv.extend-identifiers]
# sv = .h
fo = "fo"

[type.sv.extend-words]
# sv = .h
seeked = "seeked"

[type.c.extend-words]
Expand All @@ -58,13 +55,11 @@ limite = "limite"
pn = "pn"
seeked = "seeked"
tre = "tre"
ws = "ws"

[type.systemd.extend-words]
# systemd = .conf
ake = "ake"

[type.tcl.extend-words]
fo = "fo"
lst = "lst"
tre = "tre"
4 changes: 2 additions & 2 deletions .github/actions/generate-package-build-matrix/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ runs:

- name: Get targets
run: |
x86_arch=$(jq -c '[.linux_targets[] | select(.arch=="x86_64")]' utils/releasetools/build-config.json)
x86_arch=$(jq -c '[.linux_targets[] | select(.arch=="x86_64")]' .github/actions/generate-package-build-matrix/build-config.json)
x86_matrix=$(echo "{ \"distro\" : $x86_arch }" | jq -c .)
echo "X86_MATRIX=$x86_matrix" >> $GITHUB_ENV

arm_arch=$(jq -c '[.linux_targets[] | select(.arch=="arm64")]' utils/releasetools/build-config.json)
arm_arch=$(jq -c '[.linux_targets[] | select(.arch=="arm64")]' .github/actions/generate-package-build-matrix/build-config.json)
arm_matrix=$(echo "{ \"distro\" : $arm_arch }" | jq -c .)
echo "ARM_MATRIX=$arm_matrix" >> $GITHUB_ENV
shell: bash
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,24 @@
{
"linux_targets": [

{
"arch": "x86_64",
"target": "ubuntu18.04",
"target": "ubuntu-20.04",
"type": "deb",
"platform": "bionic"
"platform": "focal"
},
{
"arch": "x86_64",
"target": "ubuntu20.04",
"target": "ubuntu-22.04",
"type": "deb",
"platform": "focal"
"platform": "jammy"
},
{
"arch": "x86_64",
"target": "ubuntu24.04",
"target": "ubuntu-24.04",
"type": "deb",
"platform": "noble"
},
{
"arch": "arm64",
"target": "ubuntu18.04",
"type": "deb",
"platform": "bionic"
},
{
"arch": "arm64",
"target": "ubuntu20.04",
Expand All @@ -32,9 +27,9 @@
},
{
"arch": "arm64",
"target": "ubuntu24.04",
"target": "ubuntu22.04",
"type": "deb",
"platform": "noble"
"platform": "jammy"
}
]
}
47 changes: 35 additions & 12 deletions .github/workflows/build-release-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,32 @@ name: Build Release Packages
on:
release:
types: [published]

push:
paths:
- '.github/workflows/build-release-packages.yml'
- '.github/workflows/call-build-linux-arm-packages.yml'
- '.github/workflows/call-build-linux-x86-packages.yml'
- '.github/actions/generate-package-build-matrix/build-config.json'
workflow_dispatch:
inputs:
version:
description: Version of Valkey to build
required: true

permissions:
id-token: write
contents: read

jobs:
# This job provides the version metadata from the tag for the other jobs to use.
release-build-get-meta:
name: Get metadata to build
if: github.event_name == 'workflow_dispatch' || github.repository == 'valkey-io/valkey'
runs-on: ubuntu-latest
outputs:
version: ${{ steps.get_version.outputs.VERSION }}
is_test: ${{ steps.check-if-testing.outputs.IS_TEST }}
steps:

- run: |
echo "Version: ${{ inputs.version || github.ref_name }}"
shell: bash
Expand All @@ -32,8 +39,13 @@ jobs:
- name: Get the version
id: get_version
run: |
VERSION="${INPUT_VERSION}"
if [[ "${{ github.event_name }}" == "push" ]]; then
VERSION=${{ github.ref_name }}
else
VERSION="${INPUT_VERSION}"
fi
if [ -z "${VERSION}" ]; then
echo "Error: No version specified"
exit 1
fi
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
Expand All @@ -43,8 +55,21 @@ jobs:
# only ever be a tag
INPUT_VERSION: ${{ inputs.version || github.ref_name }}

- name: Check if we are testing
id: check-if-testing
run: |
if [[ "${{ github.event_name }}" == "push" ]]; then
echo "This is a test workflow -> We will upload to the Test S3 Bucket"
echo "IS_TEST=true" >> $GITHUB_OUTPUT
else
echo "This is a Release workflow -> We will upload to the Release S3 Bucket"
echo "IS_TEST=false" >> $GITHUB_OUTPUT
fi
shell: bash

generate-build-matrix:
name: Generating build matrix
if: github.event_name == 'workflow_dispatch' || github.repository == 'valkey-io/valkey'
runs-on: ubuntu-latest
outputs:
x86_64-build-matrix: ${{ steps.set-matrix.outputs.x86_64-build-matrix }}
Expand All @@ -56,7 +81,7 @@ jobs:
- uses: ./.github/actions/generate-package-build-matrix
id: set-matrix
with:
ref: ${{ inputs.version || github.ref_name }}
ref: ${{ needs.release-build-get-meta.outputs.version }}

release-build-linux-x86-packages:
needs:
Expand All @@ -67,11 +92,10 @@ jobs:
version: ${{ needs.release-build-get-meta.outputs.version }}
ref: ${{ inputs.version || github.ref_name }}
build_matrix: ${{ needs.generate-build-matrix.outputs.x86_64-build-matrix }}
region: us-west-2
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
bucket: ${{ secrets.AWS_S3_BUCKET }}
access_key_id: ${{ secrets.AWS_S3_ACCESS_KEY_ID }}
secret_access_key: ${{ secrets.AWS_S3_ACCESS_KEY }}
bucket_name: ${{ needs.release-build-get-meta.outputs.is_test == 'true' && secrets.AWS_S3_TEST_BUCKET || secrets.AWS_S3_BUCKET }}
role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}

release-build-linux-arm-packages:
needs:
Expand All @@ -82,8 +106,7 @@ jobs:
version: ${{ needs.release-build-get-meta.outputs.version }}
ref: ${{ inputs.version || github.ref_name }}
build_matrix: ${{ needs.generate-build-matrix.outputs.arm64-build-matrix }}
region: us-west-2
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
bucket: ${{ secrets.AWS_S3_BUCKET }}
access_key_id: ${{ secrets.AWS_S3_ACCESS_KEY_ID }}
secret_access_key: ${{ secrets.AWS_S3_ACCESS_KEY }}
bucket_name: ${{ needs.release-build-get-meta.outputs.is_test == 'true' && secrets.AWS_S3_TEST_BUCKET || secrets.AWS_S3_BUCKET }}
role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
39 changes: 17 additions & 22 deletions .github/workflows/call-build-linux-arm-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,20 @@ on:
description: The build targets to produce as a JSON matrix.
type: string
required: true
region:
description: The AWS region to push packages into.
type: string
required: true
secrets:
token:
description: The Github token or similar to authenticate with.
bucket_name:
description: The S3 bucket to push packages into.
required: true
role_to_assume:
description: The role to assume for the S3 bucket.
required: true
bucket:
description: The name of the S3 bucket to push packages into.
required: false
access_key_id:
description: The S3 access key id for the bucket.
required: false
secret_access_key:
description: The S3 secret access key for the bucket.
required: false

permissions:
id-token: write
contents: read

jobs:
Expand All @@ -46,6 +45,12 @@ jobs:
with:
ref: ${{ inputs.version }}

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ${{ inputs.region }}
role-to-assume: ${{ secrets.role_to_assume }}

- name: Make Valkey
uses: uraimo/run-on-arch-action@v2
with:
Expand All @@ -65,15 +70,5 @@ jobs:
mkdir -p packages-files
cp -rfv $TAR_FILE_NAME.tar* packages-files/

- name: Install AWS cli.
run: |
sudo apt-get install -y awscli

- name: Configure AWS credentials
run: |
aws configure set region us-west-2
aws configure set aws_access_key_id ${{ secrets.access_key_id }}
aws configure set aws_secret_access_key ${{ secrets.secret_access_key }}

- name: Sync to S3
run: aws s3 sync packages-files s3://${{secrets.bucket}}/releases/
run: aws s3 sync packages-files s3://${{ secrets.bucket_name }}/releases/
41 changes: 18 additions & 23 deletions .github/workflows/call-build-linux-x86-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,27 @@ on:
description: The build targets to produce as a JSON matrix.
type: string
required: true
region:
description: The AWS region to upload the packages to.
type: string
required: true
secrets:
token:
description: The Github token or similar to authenticate with.
bucket_name:
description: The name of the S3 bucket to upload the packages to.
required: true
role_to_assume:
description: The role to assume for the S3 bucket.
required: true
bucket:
description: The name of the S3 bucket to push packages into.
required: false
access_key_id:
description: The S3 access key id for the bucket.
required: false
secret_access_key:
description: The S3 secret access key for the bucket.
required: false

permissions:
id-token: write
contents: read

jobs:
build-valkey:
# Capture source tarball and generate checksum for it
name: Build package ${{ matrix.distro.target }} ${{ matrix.distro.arch }}
runs-on: "ubuntu-latest"
runs-on: ${{matrix.distro.target}}
strategy:
fail-fast: false
matrix: ${{ fromJSON(inputs.build_matrix) }}
Expand All @@ -46,6 +45,12 @@ jobs:
with:
ref: ${{ inputs.version }}

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ${{ inputs.region }}
role-to-assume: ${{ secrets.role_to_assume }}

- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y build-essential libssl-dev libsystemd-dev

Expand All @@ -63,15 +68,5 @@ jobs:
mkdir -p packages-files
cp -rfv $TAR_FILE_NAME.tar* packages-files/

- name: Install AWS cli.
run: |
sudo apt-get install -y awscli

- name: Configure AWS credentials
run: |
aws configure set region us-west-2
aws configure set aws_access_key_id ${{ secrets.access_key_id }}
aws configure set aws_secret_access_key ${{ secrets.secret_access_key }}

- name: Sync to S3
run: aws s3 sync packages-files s3://${{secrets.bucket}}/releases/
run: aws s3 sync packages-files s3://${{ secrets.bucket_name }}/releases/
Loading
Loading