gpt4 book ai didi

Linux ext3 readdir 和并发更新

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:26 27 4
gpt4 key购买 nike

我们每小时收到大约 10000 条消息。我们将它们作为单独的文件存储在 ext3 文件系统上的每小时目录中。文件名包括序列号。我们使用 rsync 每 20 秒在另一个位置镜像这些文件(通过 SAN,但这并不重要)。

有时 rsync 运行会选取文件 n-3、n-2、n-1、n+1,然后下一次 rsync 运行会继续运行 n、n+2、n+3、n+4 等等。

是否有可能当一个进程在目录中以特定顺序创建文件时,另一个使用 readdir() 的进程会看到文件以不同的顺序出现?

亲切的问候,塞巴斯蒂安

最佳答案

我想您的问题可以重述为:

If process A creates file d/x and then creates file d/y, is it possible for process B to peform a concurrent readdir() on directory d and see an entry d/y, but not see an entry d/x?

答案是肯定的。 readdir 的排序保证确实非常薄弱。

如果你想强制排序,你需要在创建每个文件后显式fsync()目录d本身的文件描述符。

关于Linux ext3 readdir 和并发更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2928459/

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