移除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

DropItDown:一键将任意文件转为AI就绪Markdown的macOS利器DropItDown,一款全新的macOS菜单栏工具,宣称要消除AI开发中最繁琐却至关重要的环节之一:将杂乱无章的非结构化文件,转化为干净、对大型语言模型友好的Markdown格式。该工具支持拖放式转换PDF、图片(含OCR)、代码文件及纯Anthropic指控阿里发动史上最大AI蒸馏攻击:2880万次欺诈API调用暴露行业安全危机Anthropic已正式向阿里巴巴提出指控,称这家中国科技巨头策划了一场规模空前的AI蒸馏攻击,涉及2880万次欺诈性API调用。此次攻击将知识蒸馏——这项原本用于压缩和普及AI模型的技术——武器化,变成了一种系统性知识产权提取工具。攻击者Ludion 重写 AI 推理路由:实时 WebGPU 遥测取代静态基准测试AINews 独家发现 Ludion,一个全新系统,它从根本上重新思考了 AI 推理请求如何在异构边缘设备间路由。传统方法依赖硬件规格或合成基准测试来预测性能,但现实世界中的 GPU 行为极不稳定——驱动程序版本、热节流和并发任务会导致同一查看来源专题页Hacker News 已收录 5236 篇文章

时间归档

May 20263028 篇已发布文章

延伸阅读

Apple Skips M6 Pro, Bets Entire Future on AI-Native M7 SiliconApple has officially skipped its high-end M6 Pro, Max, and Ultra chips to launch the AI-native M7 series. This radical pOpenAI推迟IPO至明年:战略转向还是市场现实检验?OpenAI决定将首次公开募股推迟至明年,此举并非退缩,而是一次精准的重新校准。公司优先完成核心AI基础设施与产品套件,而非屈从于季度财报的短期压力——这一决策可能重新定义AI商业化的叙事逻辑。PyTorch训练循环全解析:AI透明化进程中的里程碑PyTorch正式发布深度神经网络训练循环的完整注释版本,从数据加载到反向传播的每一行代码都得到清晰解读。这标志着AI行业从“黑盒崇拜”向“透明工程”转型的关键一步,为开发者提供了调试、优化与定制模型构建的蓝图。OpenKnowledge 开源挑战 Notion 与 Obsidian:AI 原生的知识管理新范式一款全新的开源 AI 笔记工具 OpenKnowledge 正对 Notion 和 Obsidian 的霸主地位发起挑战。它原生集成 Claude、Codex 和 Cursor,并将所有数据存储在本地,以用户掌控和 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 分析部分,快速了解事件背景、影响与后续进展。