gpt4 book ai didi

Mysql O_DSYNC 困惑

转载 作者:太空狗 更新时间:2023-10-29 12:15:07 25 4
gpt4 key购买 nike

根据关于 O_DSYNC (http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_flush_method) 的 mysql 文档:

“O_DSYNC:InnoDB 使用 O_SYNC 打开和刷新日志文件,使用 fsync() 刷新数据文件。InnoDB 不直接使用 O_DSYNC,因为它在许多 Unix 上都存在问题。”

但是调用fsync()强制文件进入同步I/O文件完整性完成状态(数据和元数据),而fdatasync()只强制文件进入同步I/O数据完整性完成状态。 (无元数据)

所以根据这个 mysql 应该使用 fdatasync() 而不是 fsync() 来模拟 O_DSYNC(这会导致写入根据同步 I/O 数据完整性完成的要求执行,如 fdatasync())。旗帜。我在这里缺少什么?

最佳答案

我认为您在这里没有遗漏任何东西。

InnoDB 开发人员比较保守。我希望他们在各种 Unix 平台上测试 fdatasync,并发现这有时会导致某些系统损坏。与他们在 O_DSYNC 中发现的相似。

InnoDB 开发人员通过使用经过测试的内容在他们测试的平台上“工作”来权衡数据损坏与性能,以确保安全。

关于Mysql O_DSYNC 困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28112202/

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