#10235·parcel

为 fs-write-stream-atomic 添加可选的 fsync 支持

作者: Adi1231234创建于 2025年11月7日更新于 2026年9月6日
标签Stale

特性请求

在 QQparcel/fs-write-stream-atomic 添加可选的 “ fsync” 支持,以便在使用带流的原子书写时提高耐久性。

□ 预期行为

当流完成撰写临时文件时,库应该能够:

  1. " 同步 " 临时文件,以确保数据在磁盘上。
  2. 将临时文件的名称改为目标路径。
  3. 可选的 " fsync " 母目录可坚持名称/元数据。

这可以通过选项选择,例如:

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? 写 StreamAtomic( 最高, { fsync: 真, fsyncDir: 真) ;


□ 当前的行为

图书馆向临时文件发文,然后将其重命名为目标,但不在临时文件或父目录上调用 " fsync " 。 在`重命名'之后发生相撞或断电后,文件内容可能无法完全持久。

□ 可能的解决方案

* 添加选项以启用“同步”:

* 关闭时:在`重名'前临时档案中拨打`fdatasync'/`fsync'。
* 在`重命名 ' 之后:尝试打开和`同步 ' 母目录(最有效;跳过不支持它的平台/文件系统)。
*对性能保持默认行为不变,但允许用户选择每个用例.

□ 内容

我们利用软件包通过流复制/写入大文件,需要更强有力的保证,防止突然相撞的数据丢失. 原子 " 重命名 " 保护文件名开关,但如果没有 " 同步 " ,我们仍然可以在功率故障后用一个短线文件或非短线文件。

□ 实例

拟议用途:

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么?
从“@parcel/fs-write-stream-atomic”导入“Stream-Atomic”;

cons ws = 写出 StreamAtomic ('/ path/ to/ file', { fsync: true, fsyncDir: true };
// 管 (.). ("完成",.

这对我很有帮助。 如果这个提议合理的话, 我很乐意开启一个执行它的公关.

内容来源: parcel-bundler/parcel