系统极客一直在努力
专注操作系统及软件使用技能

Valkey 8.1:内存数据存储性能全面提升,吞吐量提升 10%

Valkey

Valkey 8.1 稳定版正式发布!本文深入解析了 Valkey 8.1 的各项技术革新,帮助管理员和开发者充分释放性能潜力。

Valkey 8.1 主要更新亮点

重写新一代哈希表架构

Valkey 8.1 对核心哈希表实现进行了全面重构。作为键值存储的基础架构,新版哈希表全面支持HashSetSorted Set等数据类型。通过采用现代化的设计理念,这项改进显著减少了内存分配和随机内存访问次数。初步测试结果显示:

  • 内存占用降低:每个键值对(无 TTL 设置)可节省约 20 字节内存,启用 TTL 时最高可节省 30 字节。
  • 吞吐量提升:在流水线模式下(禁用 I/O 线程时)相比 Valkey 8.0 版本,吞吐量提升了约 10%。

引入迭代器预加载技术

Valkey 8.1 引入了「迭代器预加载」这一创新功能。当 Valkey 节点需要向新连接的副本传输键值对时,系统会主动将相关哈希桶和元素预加载到 CPU 缓存中。实际测试表明:

  • 迭代速度提升了 3.5 倍。
  • KEYS等命令执行时间也大幅缩短。

此外,I/O 线程的处理能力得到扩展,并新增支持TLS 协商、复制流读写等操作。不仅提升了新连接的处理效率,还进一步优化了GETSET等基础操作的吞吐量,同时加速了复制流量的传输速度。

复制性能显著提升

在数据复制方面,Valkey 8.1 实现了质的飞跃:

  • 同步速度提升:通过消除冗余 CRC 检查,启用 TLS 时的同步速度提了升约 18%。
  • 内存优化:fork 操作的写时复制内存开销降低约 47%

主动碎片整理机制也获得重要改进:

  • 消除了超过 1 毫秒的延迟情况。
  • 碎片整理周期压缩到 500 微秒。
  • 通过提高运行频率保持低尾部延迟。
  • 新增反饥饿机制,确保长时间运行命令下仍能满足 CPU 使用率目标。

增强系统可观察性

Valkey 8.1 在监控诊断能力方面进行了多项改进:

  • 新增日志格式选项:支持经典格式和结构化格式(如 logfmt)。
  • 提供多种时间戳样式选择:包括现代化的 ISO 8601 格式。
  • 新增 COMMANDLOG 功能:可记录大型请求/响应,为端到端延迟分析提供更细致的视角。
  • 内置延迟监控框架:现在不仅能报告最新延迟事件,还提供了总延迟次数和峰值数据统计,帮助用户全面掌握延迟发生频率和影响程度

其它更新细节

Valkey 8.1 还包含多项细粒度的性能优化:

  • 新增 SET IFEQ 命令:实现条件更新,简化客户端逻辑,减少请求往返。
  • ZRANK 命令优化:在排行榜场景下,性能提升最高达 45%。

针对特定计算场景的优化包括:

  • HyperLogLog 操作:通过 x86 AVX 指令集优化,合并和计数性能提升 12 倍。
  • BITCOUNT 命令:借助 AVX2 优化,性能提升超 500%。
  • 浮点数解析加速ZADD等命令的浮点数解析速度提升,但需要支持 SIMD 指令的 C++ 编译器。
赞(0)

评论 抢沙发