我们每小时收到大约10000条信息。我们将它们作为单独的文件存储在ext3文件系统的小时目录中。文件名包含序列号。我们使用rsync每隔20秒在另一个位置(通过san)镜像这些文件,但这无关紧要。
有时,rsync运行会接收文件n-3、n-2、n-1、n+1,然后下一次rsync运行继续执行n、n+2、n+3、n+4等等。
当一个进程在一个目录中以特定的顺序创建文件时,另一个使用readdir()的进程是否可以看到文件以不同的顺序出现?
谨致问候,
塞巴斯蒂安

最佳答案

我想你的问题可以重述为:
如果进程a创建文件d/x并且
然后创建文件d/y,是吗
过程B可能形成A
在目录readdir()上并发d,请参见
条目d/y,但看不到条目
d/x
答案是肯定的。readdir的订购保证确实很弱。
如果要强制排序,则需要在创建每个文件后显式地为目录本身指定一个文件描述符。

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

10-11 04:28