暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Apache Kvrocks 发布 2.7.0

Apache Kvrocks 2024-03-13
324

时隔三个月 Apache Kvrocks 2.7.0 终于发布了,包含了来自 23
位贡献者带来的 90
多次变更。同时,我们也很骄傲的宣布社区贡献者总数量也超过了 100
,对社区来说是一个小的里程碑,感谢过往的每一位贡献者。

该版本也带来了许多令人兴奋的特性:

  1. 支持 JSON 数据结构,兼容 ReJSON
  2. 支持通过 Redis Function 管理 Lua 脚本
  3. 使用 Speedb 来替换 RocksDB
  4. 在线变更 Worker 线程数
  5. 支持 Namespace 主从复制
  6. RocksDB 版本从 8.3.3 升级到 8.8.1

JSON 数据结构

JSON 作为 RedisStack 中最受欢迎的数据结构,终于也在 Kvrocks 支持了。特别感谢 PMC 成员 @PragmaTwice[1] 主导了整体设计和开发。

存储方面,默认将整个 JSON 序列化为字符串存储到 RocksDB,同时也支持更高性能的 CBOR[2](RFC 8949) 格式。可通过 json-storage-format
在线变更:

redis-cli > CONFIG SET json-storage-format JSON|CBOR

实现可见: PR #1871[3]

当前除了 MGET/MSET(RESP 已废弃) 会在下一个版本发布之外,其他命令已经全部支持,具体见: supported-commands/JSON[4]

Redis Function

Function 是 Redis 7 引入的特性,旨在帮助用户更好地管理 Lua 脚本。目前 Kvrocks 已经实现了 FUNCTION(包含子命令: LOAD/DELETE/LIST/LISTFUNC) FCALL FCALL_RO 等命令,欢迎大家使用和反馈。

具体见: supported-commands/function[5]

启用 Speedb 替换 RocksDB

speedb[6] 是 RocksDB 的 fork 版本,主要对 MemTable 以及 Compaction 做了一些性能优化。想要尝试 speedb 的用户只需在构建时加上 -DENABLE_SPEEDB=ON
选项。

Namespace 主从复制

在 2.7.0 版本之前,Namespace 信息存储在配置文件里且不支持主从复制,对于运维来说不太友好。新版本支持通过配置文件或者 config set
命令在线开启 Namespace 主从复制功能:

repl-namespace-enabled yes

或者

redis-cli > CONFIG SET repl-namespace-enabled yes

设计说明见: Issue #1720[7]

在线变更 Worker 线程数

由于不同用户的机器配置和负载不一样,经常需要调整 Worker 线程数(默认 8)。之前调整需要重启实例比较麻烦,新版本支持了在线更新:

## 提高 Worker 线程数
redis-cli > CONFIG SET workers 12

## 降低 Worker 线程数
redis-cli > CONFIG SET workers 4

注意: 降低线程数需要迁移已有的连接到其他 Worker,目前该连接有命令正在执行,则会等待 10s 之后直接关闭连接

实现见 PR #1855[8]

END

除了以上提到几个重大变更之外,该版本也修复了一些 bug 以及功能上的改进,欢迎大家查看具体变更记录: Release 2.7.0[9]

参考资料

[1]

@PragmaTwice: https://github.com/PragmaTwice

[2]

CBOR: https://cbor.io/

[3]

PR #1871: https://github.com/apache/kvrocks/pull/1871

[4]

supported-commands/JSON: https://kvrocks.apache.org/docs/supported-commands/#json-commands

[5]

supported-commands/function: https://kvrocks.apache.org/docs/supported-commands/#function-commands

[6]

speedb: https://www.speedb.io/

[7]

Issue #1720: https://github.com/apache/kvrocks/issues/1720

[8]

PR #1855: https://github.com/apache/kvrocks/pull/1855

[9]

Release 2.7.0: https://github.com/apache/kvrocks/releases/tag/v2.7.0


文章转载自Apache Kvrocks,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论