【问题标题】:which NFS implementation is safe for sqlite database accessed by multiple processes哪个 NFS 实现对于多进程访问的 sqlite 数据库是安全的
【发布时间】:2019-02-22 00:07:29
【问题描述】:

here 提到“......但请注意:如果数据库文件保存在 NFS 文件系统上,此锁定机制可能无法正常工作。这是因为 fcntl() 文件锁定在许多 NFS 实现中被破坏。您如果多个进程可能尝试同时访问文件,应避免将 SQLite 数据库文件放在 NFS 上..."

但是文档没有提到哪个 NFS 实现在这方面效果很好。有什么建议? sqlite3呢?

【问题讨论】:

    标签: c++ sqlite


    【解决方案1】:

    使用fcntl 锁定适用于NFS 版本3 和4。只要您可以使用vers=3vers=4 进行挂载,就应该进行设置。您还可以使用locktests 来验证锁定是否有效,并使用nfsstat 来验证客户端和服务器上的可用版本。

    【讨论】:

    • 感谢您的信息。顺便说一句,只需使用“nfsstat -m”来检查 NFS 版本
    • 嗨,我在带有vers=3 的系统上遇到了这个错误github.com/optuna/optuna/issues/815(根据nfsstat -m
    猜你喜欢
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    • 2011-10-04
    • 2020-07-29
    • 1970-01-01
    • 2011-03-17
    相关资源
    最近更新 更多