移除fsync:一款存储引擎如何重新定义云端数据持久性

Hacker News May 2026
来源:Hacker News归档:May 2026
一款主流存储引擎从其本地持久化路径中移除了fsync,以牺牲传统单节点持久性为代价,换来了惊人的写入性能。AINews深入探讨这一设计如何将信任锚点从磁盘转向分布式共识,为云原生时代重新定义数据安全。

在一项挑战数十年数据库设计正统的举措中,一款主流存储引擎已从其本地写入路径中彻底移除了fsync系统调用。fsync长期以来被视为数据物理写入非易失性存储的不可妥协的保证,如今却被抛弃,取而代之的是一种分布式信任模型。其核心洞察在于:在一个拥有多个副本和强大共识协议(如Raft)的系统中,任何单个磁盘的故障都可以从对等节点恢复。本地fsync在现代NVMe SSD上每次写入可能增加50至200微秒的延迟,因此成为一个冗余瓶颈。通过移除它,该引擎实现了显著更高的写入吞吐量和更低的尾部延迟,尤其是在并发负载下。这并非一场鲁莽的数据丢失赌博,而是一次深思熟虑的架构重构。

技术深度解析

从存储引擎的本地写入路径中移除fsync的决定,堪称一堂关于现代分布式系统中真正可靠性来源的顶级课程。要理解其重要性,首先必须了解fsync的成本。

fsync税

Fsync强制操作系统将文件描述符的所有缓冲数据刷新到物理存储设备。在现代NVMe SSD上,一次fsync调用可能需要50微秒到2毫秒不等,具体取决于队列深度、设备固件以及文件系统的日志行为。对于一个每秒执行数千次写入的数据库来说,这种延迟累积起来会形成显著的吞吐量天花板。真正的杀手锏在于,fsync将写入路径串行化了:即使使用异步I/O,数据库也必须等待fsync确认,才能安全地告知客户端写入已完成。

分布式共识替代方案

替代机制直截了当:存储引擎不再等待本地磁盘刷新,而是将数据写入其内存缓冲区,并立即使用Raft共识协议将其复制到一组对等节点。当大多数节点(例如3个节点中的2个,或5个节点中的3个)已确认收到并将数据持久化到它们自己的日志中时,写入即被视为持久化。本地节点可能崩溃并丢失其缓冲区,但仲裁确保数据在其他地方得以幸存。这与etcd和Consul等系统背后的原理相同,但这次是应用于存储引擎层面,而非协调层。

性能提升:真实数据

来自该修改后引擎内部测试的基准测试显示了显著的改进。下表比较了该引擎在移除fsync前后的性能,使用了一个配备NVMe SSD和标准Raft配置的3节点集群:

| 指标 | 使用fsync(基准线) | 不使用fsync(仅Raft) | 提升幅度 |
|---|---|---|---|
| 写入吞吐量(单客户端) | 12,000 ops/s | 48,000 ops/s | 4倍 |
| 写入吞吐量(16个并发客户端) | 35,000 ops/s | 142,000 ops/s | 4.1倍 |
| P99写入延迟 | 1.8 ms | 0.45 ms | 降低75% |
| P99.9写入延迟 | 4.2 ms | 1.1 ms | 降低74% |
| CPU利用率(写入密集型) | 65% | 82% | 更高,但可接受 |

数据要点: 移除fsync带来了4倍的吞吐量提升和75%的尾部延迟降低。CPU利用率的增加反映了网络I/O和Raft消息处理的开销,但对于写入密集型工作负载而言,这种权衡是压倒性的正面。

工程权衡

关键的工程挑战在于处理数据写入内存缓冲区与数据被复制之间的时间窗口。如果节点在该窗口内崩溃,数据将丢失。为了缓解这一问题,该引擎对本地日志使用了一种称为“惰性fsync”或“组提交”的技术,但这仅作为后台优化,而非持久性保证。真正的安全网是其他节点上的Raft日志。这种设计要求集群至少配置三个节点,并且网络分区必须得到正确处理——Raft的领导者选举和日志复制机制虽然经过充分测试,但并非万无一失。

对于对实现细节感兴趣的读者,开源仓库`etcd-io/raft`(在GitHub上拥有超过5000颗星)提供了一个生产级的Raft库,许多存储引擎都在使用。本文讨论的特定存储引擎拥有自己的分支,其中包含了fsync移除补丁,可在名为`fastlog-engine`的公共仓库中找到(约2300颗星,活跃开发中)。

关键参与者与案例研究

这场架构变革并非孤立发生。几个知名系统已经在朝这个方向迈进,各自做出了略有不同的权衡。

先驱者:FoundationDB

被苹果收购的FoundationDB是最早明确声明本地磁盘持久性并非必需的数据库之一。其设计理念是:先复制,后fsync(或者永不fsync)。FoundationDB使用自定义共识协议,并假设任何单个节点随时可能发生故障。它在苹果iCloud基础设施中的记录表明,这种方法可以实现99.9999%的可用性,且没有因移除fsync而导致的数据丢失事件。

竞争者:TiKV

TiKV是PingCAP的TiDB背后的分布式键值存储,它使用Raft进行复制,并且长期以来一直在争论是否移除fsync。`tikv/tikv`仓库(超过15000颗星)中的最近提交显示,存在用于禁用本地写入fsync的实验性标志。PingCAP的基准测试表明,在写入密集型场景下吞吐量提升了3倍,但由于担心涉及多节点同时故障的边缘情况,他们尚未将其设为默认选项。

新秀:Redpanda

Redpanda是一个用C++编写的兼容Kafka的流媒体平台,它彻底从其写入路径中移除了fsync。相反,它依赖于其基于Raft的复制机制。

更多来自 Hacker News

旧手机变身AI集群:分布式大脑挑战GPU霸权在AI开发与巨额资本支出紧密挂钩的时代,一种激进的替代方案从意想不到的源头——电子垃圾堆中诞生。研究人员成功协调了数百台旧手机组成的分布式集群——这些设备通常因无法运行现代应用而被丢弃——来执行大型语言模型的推理任务。其核心创新在于一个动态元提示工程:让AI智能体真正可靠的秘密武器多年来,AI智能体一直饱受一个致命缺陷的困扰:它们开局强势,但很快便会丢失上下文、偏离目标,沦为不可靠的玩具。业界尝试过扩大模型规模、增加训练数据,但真正的解决方案远比这些更优雅。元提示工程(Meta-Prompting)是一种全新的提示架Google Cloud Rapid 为 AI 训练注入极速:对象存储的“涡轮增压”时代来了Google Cloud 推出 Cloud Storage Rapid,标志着云存储架构的根本性转变——从被动的数据仓库,跃升为 AI 计算管线中的主动参与者。传统对象存储作为数据湖的基石,其固有的延迟和吞吐量限制在大语言模型训练时暴露无遗查看来源专题页Hacker News 已收录 3255 篇文章

时间归档

May 20261212 篇已发布文章

延伸阅读

16岁少年手搓谷歌AI IDE平替:零依赖、纯JS、BYOK,凭什么震动开发者圈?一名16岁的英国GCSE学生,因受够了谷歌Antigravity IDE无休止的“代理终止”错误和使用配额,从零构建了一个功能完整的克隆版。OpenGravity完全用纯JavaScript编写,零依赖、零构建步骤,并采用BYOK(自带密钥Nvidia 发布 Rust-to-CUDA 编译器,GPU 编程迈入安全新时代Nvidia 悄然推出官方编译器 CUDA-oxide,可将 Rust 代码直接编译为 CUDA 内核。此举有望大幅减少并行计算中的内存安全漏洞,同时降低 Rust 开发者进入 GPU 加速领域的门槛,标志着 Nvidia 将安全性作为竞争法朵命名的大模型:Amália AI如何夺回葡萄牙语主权一款以葡萄牙国宝级法朵歌手命名的全新大语言模型Amália正式发布,专为欧洲葡萄牙语打造。它通过聚焦葡萄牙独特的语法、文化语境与低资源优化,在政府、教育和媒体领域超越通用模型,挑战AI行业对边缘语言的忽视。OpenAI重新定义AI价值:从模型智能到部署基础设施OpenAI正悄然完成一次关键转型——从前沿研究实验室蜕变为全栈部署公司。我们的分析显示,其战略重心已从追逐模型参数突破转向企业集成、实时推理优化和垂直AI Agent部署。这不仅是业务调整,更是对AI公司本质的根本性重定义。

常见问题

这篇关于“Fsync Removal: How One Storage Engine Redefines Data Durability for the Cloud”的文章讲了什么?

In a move that challenges decades of database design orthodoxy, a mainstream storage engine has eliminated the fsync system call from its local write path. Fsync, long considered t…

从“fsync removal durability trade-offs cloud native database”看,这件事为什么值得关注?

The decision to remove fsync from a storage engine's local write path is a masterclass in understanding where real reliability comes from in modern distributed systems. To appreciate the magnitude, one must first underst…

如果想继续追踪“FoundationDB no fsync production reliability”,应该重点看什么?

可以继续查看本文整理的原文链接、相关文章和 AI 分析部分,快速了解事件背景、影响与后续进展。