【发布时间】:2019-02-22 00:07:29
【问题描述】:
here 提到“......但请注意:如果数据库文件保存在 NFS 文件系统上,此锁定机制可能无法正常工作。这是因为 fcntl() 文件锁定在许多 NFS 实现中被破坏。您如果多个进程可能尝试同时访问文件,应避免将 SQLite 数据库文件放在 NFS 上..."
但是文档没有提到哪个 NFS 实现在这方面效果很好。有什么建议? sqlite3呢?
【问题讨论】:
here 提到“......但请注意:如果数据库文件保存在 NFS 文件系统上,此锁定机制可能无法正常工作。这是因为 fcntl() 文件锁定在许多 NFS 实现中被破坏。您如果多个进程可能尝试同时访问文件,应避免将 SQLite 数据库文件放在 NFS 上..."
但是文档没有提到哪个 NFS 实现在这方面效果很好。有什么建议? sqlite3呢?
【问题讨论】:
使用fcntl 锁定适用于NFS 版本3 和4。只要您可以使用vers=3 或vers=4 进行挂载,就应该进行设置。您还可以使用locktests 来验证锁定是否有效,并使用nfsstat 来验证客户端和服务器上的可用版本。
【讨论】:
vers=3 的系统上遇到了这个错误github.com/optuna/optuna/issues/815(根据nfsstat -m)