【发布时间】:2010-10-14 16:15:21
【问题描述】:
我正在执行一项计算量非常大的科学工作,时不时地输出结果。这项工作基本上只是模拟同一件事很多次,所以它被分配给几台使用不同操作系统的计算机。我想将所有这些实例的输出定向到同一个文件,因为所有计算机都可以通过 NFS/Samba 看到同一个文件系统。以下是限制条件:
- 必须允许安全的并发追加。如果另一台计算机上的其他实例当前正在附加到文件,则必须阻止。
- 性能不计算在内。每个实例的 I/O 仅为每分钟几个字节。
- 简单确实很重要。这样做的全部意义(除了纯粹的好奇心之外)是这样我就可以停止让每个实例写入不同的文件并手动将这些文件合并在一起。
- 不得依赖于文件系统的详细信息。必须在 NFS 或 Samba 挂载上使用未知文件系统。
我使用的语言是 D,以防万一。我看过,标准库中似乎没有任何东西可以做到这一点。 D 特定和一般、与语言无关的答案都是完全可以接受和赞赏的。
【问题讨论】:
标签: file-io concurrency locking d samba