gpt4 book ai didi

sqlite - 群集中NFS上的SQLite DB。我会损坏数据吗?

转载 作者:行者123 更新时间:2023-12-03 14:56:49 28 4
gpt4 key购买 nike

我将SQLite用于要保留在NFS上的数据库。我群集中的任何VM都可能在某个时间点关闭,在这种情况下,docker swarm将在另一个VM上旋转副本以接管。

不幸的是,NFS似乎不支持文件锁定,因此我将其关闭(通过使用“ nolock”挂载),现在我担心是否可以确定数据不会被破坏。

我能想到的场景是:其中一个VM断开了与互联网的连接,时间足够长,足以使另一个副本启动并接管流量,然后又返回并写入数据库->损坏的数据

如果支持文件锁定,使用这样的NFS是否可以保存?
我是否可以假设在指定“ nolock”时不是?

最佳答案

documentationnolock


这对于访问不支持锁定的文件系统上的数据库很有用。警告:如果两个或多个进程写入同一数据库,并且其中任何一个进程使用nolock = 1,则可能导致数据库损坏。


一种替代方法是使用unix-dotfile VFS,该VFS通过创建单独的文件来实现锁定。即使在无锁NFS上也可以使用,但是


它比“真实”锁定要慢;
它可以防止任何类型的并发(即使读取,也只有一个客户端可以访问数据库);和
如果您的客户在交易过程中去世,则锁定文件会保留下来,必须手动删除。

关于sqlite - 群集中NFS上的SQLite DB。我会损坏数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46159099/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com