Skip to content

Commit 4db21e1

Browse files
Merge branch 'unstable' into fix/3409-dict-compression-config
2 parents e57ca68 + c7d91ed commit 4db21e1

39 files changed

Lines changed: 1491 additions & 155 deletions

.github/workflows/kvrocks.yaml

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
outputs:
4040
docs_only: ${{ steps.result.outputs.docs_only }}
4141
steps:
42-
- uses: actions/checkout@v4
42+
- uses: actions/checkout@v6
4343
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36
4444
id: changes
4545
with:
@@ -56,9 +56,9 @@ jobs:
5656
env:
5757
FORCE_COLOR: 1
5858
steps:
59-
- uses: actions/checkout@v4
59+
- uses: actions/checkout@v6
6060
- name: Check typos
61-
uses: crate-ci/typos@v1.43.1
61+
uses: crate-ci/typos@v1.45.0
6262
with:
6363
config: .github/config/typos.toml
6464
- uses: apache/skywalking-eyes/header@v0.7.0
@@ -71,13 +71,15 @@ jobs:
7171
if: ${{ needs.precondition.outputs.docs_only != 'true' }}
7272
runs-on: ubuntu-24.04
7373
steps:
74-
- uses: actions/checkout@v4
75-
- uses: actions/setup-go@v5
74+
- uses: actions/checkout@v6
75+
- uses: actions/setup-go@v6
7676
with:
7777
go-version-file: 'tests/gocase/go.mod'
7878
cache: false
7979
- name: Prepare Dependencies
8080
run: |
81+
wget --max-redirect=0 -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
82+
echo "deb https://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-18 main" | sudo tee /etc/apt/sources.list.d/llvm.list
8183
sudo apt update
8284
sudo apt install -y clang-format-18 clang-tidy-18
8385
- name: Check with clang-format
@@ -96,7 +98,7 @@ jobs:
9698
git diff -p > clang-format.patch
9799
cat clang-format.patch
98100
- name: Upload format patch
99-
uses: actions/upload-artifact@v4
101+
uses: actions/upload-artifact@v7
100102
if: always() && steps.check-format.outcome != 'success'
101103
with:
102104
path: clang-format.patch
@@ -261,7 +263,7 @@ jobs:
261263
# Cmake 4.0 has the compatibility issue, just pin it to 3.31.
262264
# See https://github.com/actions/runner-images/issues/11926.
263265
run: |
264-
pipx install --force cmake==3.31
266+
pipx install --force 'cmake>=3.31,<4'
265267
266268
- name: Setup Linux
267269
if: ${{ startsWith(matrix.os, 'ubuntu') || matrix.arm_linux }}
@@ -291,14 +293,14 @@ jobs:
291293
292294
- name: Cache redis
293295
id: cache-redis
294-
uses: actions/cache@v4
296+
uses: actions/cache@v5
295297
with:
296298
path: |
297299
~/local/bin/redis-cli
298300
key: ${{ runner.os }}-${{ runner.arch }}-redis-cli
299301
- name: Cache redis server
300302
id: cache-redis-server
301-
uses: actions/cache@v4
303+
uses: actions/cache@v5
302304
with:
303305
path: |
304306
~/local/bin/redis-server
@@ -312,14 +314,14 @@ jobs:
312314
pushd redis-6.2.14 && BUILD_TLS=yes make -j$NPROC redis-cli && mv src/redis-cli $HOME/local/bin/ && popd
313315
pushd redis-6.2.14 && BUILD_TLS=yes make -j$NPROC redis-server && mv src/redis-server $HOME/local/bin/ && popd
314316
315-
- uses: actions/checkout@v4
317+
- uses: actions/checkout@v6
316318
with:
317319
fetch-depth: 0
318-
- uses: actions/setup-python@v5
320+
- uses: actions/setup-python@v6
319321
if: ${{ !matrix.arm_linux }}
320322
with:
321323
python-version: 3.x
322-
- uses: actions/setup-go@v5
324+
- uses: actions/setup-go@v6
323325
with:
324326
go-version-file: 'tests/gocase/go.mod'
325327
cache: false
@@ -329,7 +331,7 @@ jobs:
329331
if: ${{ matrix.sonarcloud }}
330332

331333
- name: Install Build Wrapper
332-
uses: SonarSource/sonarqube-scan-action/install-build-wrapper@v6.0.0
334+
uses: SonarSource/sonarqube-scan-action/install-build-wrapper@a31c9398be7ace6bbfaf30c0bd5d415f843d45e9
333335
if: ${{ matrix.sonarcloud }}
334336

335337
- name: Build Kvrocks
@@ -425,7 +427,7 @@ jobs:
425427
exit 1
426428
fi
427429
428-
- uses: actions/upload-artifact@v4
430+
- uses: actions/upload-artifact@v7
429431
if: ${{ failure() && startsWith(matrix.os, 'ubuntu') }}
430432
with:
431433
name: kvrocks-coredumps-${{ matrix.name }}
@@ -447,7 +449,7 @@ jobs:
447449
448450
- name: Upload SonarCloud data
449451
if: ${{ matrix.sonarcloud }}
450-
uses: actions/upload-artifact@v4
452+
uses: actions/upload-artifact@v7
451453
with:
452454
name: sonarcloud-data
453455
path: |
@@ -463,10 +465,10 @@ jobs:
463465
matrix:
464466
os: [ubuntu-24.04, ubuntu-24.04-arm]
465467
steps:
466-
- uses: actions/checkout@v4
468+
- uses: actions/checkout@v6
467469
- name: Get core numbers
468470
run: echo "NPROC=$(nproc)" >> $GITHUB_ENV
469-
- uses: docker/build-push-action@v6
471+
- uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294
470472
with:
471473
context: .
472474
build-args: MORE_BUILD_ARGS=-j${{ env.NPROC }}
@@ -591,15 +593,15 @@ jobs:
591593
592594
- name: Cache redis
593595
id: cache-redis
594-
uses: actions/cache@v4
596+
uses: actions/cache@v5
595597
with:
596598
path: |
597599
~/local/bin/redis-cli
598600
key: ${{ matrix.image }}-redis-cli
599601

600602
- name: Cache redis server
601603
id: cache-redis-server
602-
uses: actions/cache@v4
604+
uses: actions/cache@v5
603605
with:
604606
path: |
605607
~/local/bin/redis-server
@@ -615,8 +617,8 @@ jobs:
615617
pushd redis-6.2.14 && USE_JEMALLOC=no make -j$NPROC redis-cli && mv src/redis-cli $HOME/local/bin/ && popd
616618
pushd redis-6.2.14 && USE_JEMALLOC=no make -j$NPROC redis-server && mv src/redis-server $HOME/local/bin/ && popd
617619
618-
- uses: actions/checkout@v4
619-
- uses: actions/setup-go@v5
620+
- uses: actions/checkout@v6
621+
- uses: actions/setup-go@v6
620622
if: ${{ !startsWith(matrix.image, 'opensuse') }}
621623
with:
622624
go-version-file: 'tests/gocase/go.mod'
@@ -676,7 +678,8 @@ jobs:
676678
if: ${{ needs.precondition.outputs.docs_only != 'true' }}
677679
run: |
678680
if [[ ! ( \
679-
"${{ needs.build-and-test.result }}" == "success" \
681+
"${{ needs.check-and-lint.result }}" == "success" \
682+
&& "${{ needs.build-and-test.result }}" == "success" \
680683
&& "${{ needs.build-and-test-in-container.result }}" == "success" \
681684
&& "${{ needs.check-docker.result }}" == "success" \
682685
) ]]; then

.github/workflows/nightly.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,32 +42,32 @@ jobs:
4242
platform=${{ matrix.platform }}
4343
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
4444
45-
- uses: actions/checkout@v4
45+
- uses: actions/checkout@v6
4646
with:
4747
fetch-depth: 0
4848

4949
- name: Docker meta
5050
id: meta
51-
uses: docker/metadata-action@v5
51+
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf
5252
with:
5353
images: apache/kvrocks
5454

5555
- name: Login to Docker Hub
5656
if: ${{ github.event_name != 'pull_request' }}
57-
uses: docker/login-action@v3
57+
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9
5858
with:
5959
username: ${{ secrets.DOCKER_USERNAME }}
6060
password: ${{ secrets.DOCKER_PASSWORD }}
6161

6262
- name: Set up QEMU
63-
uses: docker/setup-qemu-action@v3
63+
uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a
6464

6565
- name: Set up Docker Buildx
66-
uses: docker/setup-buildx-action@v3
66+
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd
6767

6868
- name: Build and push by digest
6969
id: build
70-
uses: docker/build-push-action@v6
70+
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294
7171
with:
7272
context: .
7373
platforms: ${{ matrix.platform }}
@@ -82,7 +82,7 @@ jobs:
8282
touch "${{ runner.temp }}/digests/${digest#sha256:}"
8383
8484
- name: Upload digest
85-
uses: actions/upload-artifact@v4
85+
uses: actions/upload-artifact@v7
8686
if: ${{ github.event_name != 'pull_request' }}
8787
with:
8888
name: digests-${{ env.PLATFORM_PAIR }}
@@ -98,25 +98,25 @@ jobs:
9898
- build
9999
steps:
100100
- name: Download digests
101-
uses: actions/download-artifact@v4
101+
uses: actions/download-artifact@v8
102102
with:
103103
path: ${{ runner.temp }}/digests
104104
pattern: digests-*
105105
merge-multiple: true
106106

107107
- name: Login to Docker Hub
108-
uses: docker/login-action@v3
108+
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9
109109
with:
110110
username: ${{ secrets.DOCKER_USERNAME }}
111111
password: ${{ secrets.DOCKER_PASSWORD }}
112112

113113
- name: Set up Docker Buildx
114-
uses: docker/setup-buildx-action@v3
114+
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd
115115

116116
- name: Docker meta (for unstable)
117117
id: meta
118118
if: ${{ github.ref_name == 'unstable' }}
119-
uses: docker/metadata-action@v5
119+
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf
120120
with:
121121
images: apache/kvrocks
122122
flavor: latest=false
@@ -127,7 +127,7 @@ jobs:
127127
- name: Docker meta (for tags)
128128
id: meta_tag
129129
if: ${{ github.ref_name != 'unstable' }}
130-
uses: docker/metadata-action@v5
130+
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf
131131
with:
132132
images: apache/kvrocks
133133
flavor: latest=false

.github/workflows/pr-lint.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
name: Validate PR title
3333
runs-on: ubuntu-latest
3434
steps:
35-
- uses: amannn/action-semantic-pull-request@v5
35+
- uses: amannn/action-semantic-pull-request@v6
3636
env:
3737
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3838
with:

.github/workflows/sonar.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ jobs:
2828
runs-on: ubuntu-22.04
2929
if: github.event.workflow_run.conclusion == 'success' && github.repository_owner == 'apache'
3030
steps:
31-
- uses: actions/checkout@v4
31+
- uses: actions/checkout@v6
3232
with:
3333
repository: ${{ github.event.workflow_run.head_repository.full_name }}
3434
ref: ${{ github.event.workflow_run.head_sha }}
3535
fetch-depth: 0
3636
- name: Install Build Wrapper
37-
uses: SonarSource/sonarqube-scan-action/install-build-wrapper@v6.0.0
37+
uses: SonarSource/sonarqube-scan-action/install-build-wrapper@a31c9398be7ace6bbfaf30c0bd5d415f843d45e9
3838
- name: 'Download code coverage'
39-
uses: actions/github-script@v7
39+
uses: actions/github-script@v8
4040
with:
4141
script: |
4242
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
@@ -62,7 +62,7 @@ jobs:
6262
mkdir -p build/CMakeFiles/CMakeTmp
6363
ls -a sonarcloud-data build
6464
65-
- uses: actions/setup-python@v5
65+
- uses: actions/setup-python@v6
6666
with:
6767
python-version: 3.x
6868

@@ -73,7 +73,7 @@ jobs:
7373
echo "The PR number is ${PR_NUMBER:-<none>}"
7474
7575
- name: SonarQube Scan
76-
uses: SonarSource/sonarqube-scan-action@v6.0.0
76+
uses: SonarSource/sonarqube-scan-action@a31c9398be7ace6bbfaf30c0bd5d415f843d45e9
7777
env:
7878
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
7979
SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ include(cmake/tbb.cmake)
185185
include(cmake/rocksdb.cmake)
186186
include(cmake/libevent.cmake)
187187
include(cmake/fmt.cmake)
188+
include(cmake/fast_float.cmake)
188189
include(cmake/spdlog.cmake)
189190
include(cmake/jsoncons.cmake)
190191
include(cmake/xxhash.cmake)
@@ -209,6 +210,7 @@ list(APPEND EXTERNAL_LIBS lz4)
209210
list(APPEND EXTERNAL_LIBS zstd)
210211
list(APPEND EXTERNAL_LIBS zlib_with_headers)
211212
list(APPEND EXTERNAL_LIBS fmt)
213+
list(APPEND EXTERNAL_LIBS fast_float)
212214
list(APPEND EXTERNAL_LIBS spdlog)
213215
if (ENABLE_LUAJIT)
214216
list(APPEND EXTERNAL_LIBS luajit)

NOTICE

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ NB: RocksDB is dual-licensed under both the GPLv2 and Apache 2.0 License.
2828
This product uses it under the Apache 2.0 License.
2929

3030
* oneTBB(https://github.com/oneapi-src/oneTBB)
31+
* fast_float(https://github.com/fastfloat/fast_float)
32+
33+
NB: fast_float is available under Apache-2.0, MIT, or Boost Software License Version 1.0.
34+
This product uses it under the Apache 2.0 License and reuses the text in the root LICENSE file.
3135

3236
Files src/common/rocksdb_crc32c.h and src/storage/batch_debugger.h are modified from RocksDB.
3337
Files src/types/bloom_filter.* are modified from Apache Arrow.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ $ ./x.py test go # run Golang (unit and integration) test cases
144144

145145
## Namespace
146146

147-
Namespace is used to isolate data between users. Unlike all the Redis databases can be visited by `requirepass`, we use one token per namespace. `requirepass` is regraded as admin token, and only admin token allows to access the namespace command, as well as some commands like `config`, `slaveof`, `bgsave`, etc. See the [Namespace](https://kvrocks.apache.org/docs/namespace) page for more details.
147+
Namespace is used to isolate data between users. Unlike all the Redis databases can be visited by `requirepass`, we use one token per namespace. `requirepass` is regarded as admin token, and only admin token allows to access the namespace command, as well as some commands like `config`, `slaveof`, `bgsave`, etc. See the [Namespace](https://kvrocks.apache.org/docs/namespace) page for more details.
148148

149149
```sh
150150
# add token

cmake/fast_float.cmake

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
include_guard()
19+
20+
include(cmake/utils.cmake)
21+
22+
FetchContent_DeclareGitHubWithMirror(fast_float
23+
fastfloat/fast_float v8.2.4
24+
MD5=0744790f2d40c9a2e5ef021476e59796
25+
)
26+
27+
FetchContent_MakeAvailableWithArgs(fast_float
28+
FASTFLOAT_TEST=OFF
29+
FASTFLOAT_BENCHMARKS=OFF
30+
FASTFLOAT_INSTALL=OFF
31+
)

cmake/jsoncons.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ include_guard()
2020
include(cmake/utils.cmake)
2121

2222
FetchContent_DeclareGitHubWithMirror(jsoncons
23-
danielaparker/jsoncons v1.5.0
24-
MD5=34fabe18f29c4e5c514eaefb5bb50d09
23+
danielaparker/jsoncons v1.6.0
24+
MD5=1338c49e9074ed3417fed63b4cc22ec3
2525
)
2626

2727
FetchContent_MakeAvailableWithArgs(jsoncons

0 commit comments

Comments
 (0)