dsi*_*cha 6 concurrency file-io samba locking d
我正在运行一项计算量很大的科学工作,不时地吐出结果.这项工作基本上只是为了模拟相同的事情,所以它分为几台使用不同操作系统的计算机.我想将所有这些实例的输出定向到同一个文件,因为所有计算机都可以通过NFS/Samba看到相同的文件系统.以下是约束:
我正在使用的语言是D,如果重要的话.我看,标准库中似乎没有任何东西可以做到这一点.D语言和一般语言无关的答案都是完全可以接受和赞赏的.
在NFS上,您遇到了客户端缓存和陈旧数据的一些问题.我之前已经编写了一个独立于操作系统的锁模块来处理NFS.创建[datafile] .lock文件的简单想法在NFS上不起作用.解决它的基本思想是创建一个锁文件[datafile] .lock,如果存在意味着文件未被锁定,并且想要获取锁的进程将文件重命名为不同的名称,如[datafile] .lock.[主机名].[PID].重命名是一个足够原子的操作,在NFS上运行良好,可以保证锁的独占性.其余的基本上是一堆故障安全,循环,错误检查和锁定检索,以防过程在释放锁定并将锁定文件重命名回[datafile] .lock之前死亡.
归档时间: |
|
查看次数: |
2894 次 |
最近记录: |