Lavik 0.1.0

首个稳定版本:内置 Lavik Admin、更完整的托管 Redis 兼容性、新 Meta Raft 引擎,以及 beta.1 以来 135 次提交中的存储和恢复改进。

版本概览

发布于 2026 年 10 月 13 日。v0.1.0 对应提交 feb61224e414c5653fd09560e20c9d214db1e3ac。本文按部署、应用和运维影响,总结 v0.1.0-beta.1(3955b98d43b312324aa8d52775df52cfb111c0d0)之后的 135 次提交。Lavik 继续采用 Apache 2.0 许可证。

Beta 到稳定版的完整提交对比 →

GitHub 发布与软件包 →

部署与 Lavik Admin

Linux AMD64 和 ARM64 均提供 Minimal 和 Standard 压缩包。除 lavik、lavik-meta 和 lavik-ctl 外,现内置 Lavik Admin 和 Node.js 运行时。Admin 提供 SSH 主机准备、版本选择、节点分布、部署进度、拓扑管理及监控配置;其 CLI 共享相同工作目录和操作记录。

网站同时提供 Debian 版本 0.1.0-1 的签名 APT 包,以及多架构 Docker 标签 eloqdata/lavik:0.1.0 和 eloqdata/lavik:0.1.0-cluster。APT 包和这些服务端镜像不含 Admin;界面请使用压缩包。

Admin 与共享 CLI 管理 →

开始使用 0.1.0 →

Meta、复制与发现

Meta 将 NuRaft 替换为异步 etcd Raft 运行时。新持久化布局使用 RAFT 身份、WAL 和快照状态;初始清单仅用于全新 genesis。Data 从 Meta 提交的清单获取不可变的 Single 或 Cluster 客户端模式。控制会话移至专用工作线程,并改进有界连接尝试和主节点发现。

Meta 为托管 Single 增加独立认证的 Sentinel 兼容发现,包括成员发现、故障转移事件、TLS 及通告主机名。复制改进加速 FULL 传输和副本启动,保持快照交接顺序,共享有界 FULL 准入,并改进候选恢复及故障转移进展。服务边界变化时会关闭过期客户端连接。

异步 etcd Raft 运行时 →

客户端模式与 Meta 配置变更 →

Sentinel TLS 与主机名支持 →

Redis 兼容性与数据迁移

托管 Single 扩展到全部 16 个逻辑数据库及跨槽多键操作。托管命令处理增加事务、Lua/Functions、Stream 读取、SORT_RO 和 RDB 保存;最终发布移除了过时的 Single 专用命令门控。Cluster 模式仍要求 DB0 和多键同槽。Function 库及 FLUSH 操作仍限定于接收请求的 Group。

现可通过 save 规则配置后台定时保存,未配置时仍默认关闭。LAVIK.REPLICAOF 显式选择独立 Lavik 原生复制,REPLICAOF 仍用于 Redis 上游。向全新托管目标的 RedisShake 导入和从服务主节点紧急导出具备专门流程及验收测试,包含对象、过期时间及切换边界。

托管复合命令与 Streams →

移除过时的托管 Single 门控 →

独立节点原生复制命令 →

RedisShake 导入托管目标 →

稳定版兼容性概览 →

存储、内存与请求处理

大字符串使用固定 8 KiB 分段,Streams 采用分组逻辑记录,小型分组集合可压缩到 8 KiB 以下。长键通过 UUID 记录共享。发布减少 Hash/Set 写入分配和查找开销,通过共享提交流水化分组后继版本,改进 Sorted Set 路由及 RESTORE 构建,并重叠 List/Stream 范围读取。

默认刷新间隔改为 100 ms,注册读取负载默认为 32 KiB。io_uring 存储共享缓冲区 arena,并在 memlock 预算内重试注册。符合条件的磁盘 GET 和紧凑集合读取可在连接工作线程运行;回复组装和 Pub/Sub 清理也减少重复分配及复制。这些是实现改进,不是新的基准测试结果或 SLA 承诺。

大型字符串分段 →

分组 Stream 存储 →

共享 io_uring 缓冲区 →

连接工作线程上的磁盘 GET →

恢复与正确性修复

关机检查点现覆盖分组集合和间接键,并支持 SPDK 所有权变化后的恢复。修复包括分组辅助搬迁死锁、冷恢复内存界限、回收时分离索引对齐、过期分组根、分值变化时相邻 Sorted Set 页,以及 SPDK qpair 轮询饥饿。原生 AMD64/ARM64 及客户端兼容测试持续验证发布行为。

分组与间接键检查点 →

SPDK 所有权变化后的检查点恢复 →

分离索引对齐修复 →

从 Beta.1 升级前

Data、Meta 和 ctl 应使用匹配的 0.1.0 程序。Data 启动现使用 --node-id、--announce-ip 和 --meta-seed。旧 --cluster-enabled 和 --cluster-* 形式已移除,本地 --client-mode 和 --meta-managed 也已移除。应在初始 Meta 清单中设置 client_mode。

重启稳定版 Meta 时,应保留相同成员 ID 和状态目录;RAFT 存在后省略 --initial-cluster-manifest。不要通过重命名标记或删除元数据转换 Beta NuRaft 状态。本发布不确立受支持的混合版本滚动升级或自动原地 Beta 数据迁移。保留备份,演练全新稳定版部署、验证逻辑数据迁移并准备回滚计划。

平台要求仍为 Linux 6.1+、可用的 io_uring 及兼容 Ubuntu 24.04 的 glibc,包括 SPDK/DPDK 部署。Minimal 使用内核 TCP/io_uring,Standard 需要显式配置后端。现有基准测试页保留其原始测试版本和条件。

0.1.0 安装与运维 →

历史 Beta.1 文档 →