NFS 共享上的文件移动是否是原子操作

NFS 共享上的文件移动是否是原子操作

我们有一个在 NFS 共享上生成新文件的系统(我相信提供商是 NetApp)。我们的应用程序是用 Java 编写的。Java 规范说 FileSystem 移动是原子的,但不确定 NFS 驱动器上的移动是否同样是原子的。

“制作人”应用程序:

  1. 将文件写入 /my/nfs/share/temp/
  2. 然后将文件从 /my/nfs/share/temp/ 移动到 /my/nfs/share/saved/

(文件始终具有唯一的名称,我们在临时文件名和已保存的文件名中都使用 GUID。)

“消费者”应用程序:

  1. 在 /my/nfs/share/saved/ 中查找新文件
  2. 如果发现新文件,它就会读取它。

只有一个“生产者”应用程序实例。

我的问题是:“消费者”应用程序是否总是能看到完整写入的文件?或者部分写入的文件或空文件是否可能对“消费者”可见。

任何帮助,将不胜感激。

相关内容