gpt4 book ai didi

java - StandardOpenOption.SYNC 与 StandardOpenOption.DSYNC

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:58:07 25 4
gpt4 key购买 nike

  1. StandardOpenOption.SYNC 之间有什么区别?和 StandardOpenOption.DSYNC
  2. DSYNC 会导致什么样的数据丢失?
  3. DSYNC 适用于哪些用例?如果您已经决定同步文件内容,为什么要放弃同步文件元数据?开销的相对差异不是可以忽略不计吗?

最佳答案

吉利,

DSYNC 是 SYNC 的一个子集。

SYNC 要求所有数据(文件系统管理的文件数据和文件元数据)同步写出,而 DSYNC 要求只有文件数据同步写出。至于开销,我认为这是一个巨大的“它取决于文件系统”。查看使用写时复制、卷影复制、版本控制、校验和等概念的现代文件系统...我想在完成所有工作之前尝试阻止整个写操作可能会变得昂贵。

数据丢失的可能性是一个更令人困惑的答案;异步文件 I/O 的优点是底层文件系统或磁盘实际上可以批处理或排序写入以避免随机 I/O 并以更顺序的方式构建写入。

这很好,但要回答您的数据丢失问题,可能会丢失刷新之前位于缓存中的任何待处理写入。总之,不好说。

简而言之,顺序如下:

  1. (无选项)- 最快,可能会因 1 个或多个尚未刷新的待处理写入而丢失文件数据和文件元数据。
  2. DSYNC - 较慢,等待文件数据写入并返回(让我们稍后保存文件元数据)
  3. SYNC - 最慢,等到文件数据和文件元都写完并在返回前竖起大拇指。

我应该说我假设所有这些问题都与新的 AsynchronousFileChannel 有关在 Java 7 中;如果不是这样,我深表歉意。

关于java - StandardOpenOption.SYNC 与 StandardOpenOption.DSYNC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8263995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com