有兴趣了解你的经历(5年后)。根据Eric Grange的有用提示:
-
“SQLite使用POSIX建议锁在Unix上实现锁定”。。。“众所周知,POSIX建议锁定存在缺陷,甚至在许多NFS实现中没有实现”。。。“最好的防御措施是不要对网络文件系统上的文件使用SQLite。”
-
话虽如此,如果您的NFS服务器坚如磐石(即NetApp),而您的客户端坚如磐石(即,可能不是Linux;请参阅示例)http://nfsworld.blogspot.co.at/2006/10/review-of-why-nfs-sucks-paper-from.html).
-
NFS上的POSIX建议锁定也依赖于强制:来自文件锁定维基百科文章:“在2.6.12之前的Linux上,对NFS文件的群集调用只能在本地进行。内核2.6.12及更高版本使用POSIX字节范围锁对NFS文件执行群集调用。这些锁对其他实现fcntl样式POSIX锁的NFS客户端可见,但对那些不实现fcntl样式POSIX锁的客户端不可见。”如果有疑问,你可以使用
nfstrace
来确定你的操作系统试图做什么。
-
如果节点A启动了一个事务,锁定了表文件,然后崩溃了,会发生什么?节点B是否会看到通知锁并拒绝写入文件?