当前位置: 首页 > 面试题库 >

可以在NFS文件系统上锁定sqlite文件吗?

柳才良
2023-03-14
问题内容

假设有两个Python脚本想要将数据写入到使用该sqlite3模块存储在SQLite文件中的同一表中。SQLite文件存储在NFS文件系统上。在SQLite-
FAQ中,
我读到:

SQLite使用读取器/写入器锁来控制对数据库的访问。[…]但请小心:如果数据库文件保存在NFS文件系统上,则此锁定机制可能无法正常工作。这是因为fcntl()文件锁定在许多NFS实现中都被破坏了。如果多个进程可能试图同时访问文件,则应避免将SQLite数据库文件放在NFS上。

这是否意味着根本不可能,还是有某种方法可以确保一个过程等待另一个过程完成?

INSERT并不复杂。一些:

INSERT_STATEMENT = "INSERT INTO some_table (row, col, val) VALUES (?, ?, ?)"
connection.executemany(INSERT_STATEMENT, triples)

并且插入的集合是不相交的。

进一步的问题:当两个进程试图写入同一表或试图写入同一数据库(文件)时,是否会出现NFS问题?让每个进程在同一个数据库(文件)中创建自己的表并将其写入的方法是否可行?


问题答案:

请勿将SQLite与NFS一起使用。它是如此简单。NFS语义不同于常规文件系统,并且较宽松。您最终将获得腐败。SQLite用户邮件列表中的某人时不时地发布带有“解决方法”的信息。尽管从短期来看,它们从未起作用。



 类似资料:
  • NFS(网络文件系统) [NFS] lockd.nlm_grace_period=秒数 为NFS锁管理器指定宽限时间,单位是秒。取值范围在[0-240]? [NFS] lockd.nlm_tcpport=端口号 为NFS锁管理器指定TCP端口 [NFS] lockd.nlm_timeout=秒数 为NFS锁管理器指定默认超时时间,单位是秒。默认值是10秒。取值范围在[3-20]? [NFS] lo

  • 问题内容: 我很确定答案是 否定的 ,因此使用了Google Gears,adobe AIR等。 如果我是对的,那么如何工作?它是持久性的,并使用javascript编写。它也只是一个没有外部(服务器端)依赖关系的HTML文件。WTF?它在哪里/如何存储其状态? 问题答案: Tiddlywiki有几种保存数据的方法,具体取决于所使用的浏览器。如您所见。 如果启用了ActiveX,它将使用Scrip

  • 问题内容: 是否可以在任何操作系统(例如Windows,Linux,Mac OS X)上执行JAR文件?我想构建一个要在Linux,Windows和Mac OS X上运行的简单应用程序。JAR文件可以在安装了Java的任何操作系统上运行吗? 问题答案: Jar文件可在存在JVM的任何OS上运行。

  • 文件系统是负责文件管理的操作系统的一部分。 它提供了一种机制来存储数据和访问文件内容,包括数据和程序。一些操作系统将所有内容视为Ubuntu文件。 文件系统处理以下问题 - 文件结构 - 前面已经了解可存储文件的各种数据结构。文件系统的任务是保持最佳的文件结构。 恢复可用空间 - 每当文件从硬盘中删除时,磁盘中都会创建一个可用空间。 可能有很多这样的空间需要被恢复,以便将它们重新分配给其他文件。

  • 简单的文件读写是通过uv_fs_*函数族和与之相关的uv_fs_t结构体完成的。 note libuv 提供的文件操作和 socket operations 并不相同。套接字操作使用了操作系统本身提供了非阻塞操作,而文件操作内部使用了阻塞函数,但是 libuv 是在线程池中调用这些函数,并在应用程序需要交互时通知在事件循环中注册的监视器。 所有的文件操作函数都有两种形式 - 同步(synchron

  • 文件系统提供弹性扩展的高性能文件存储服务,可为公有云上的虚拟机提供共享存储服务。 文件系统提供弹性扩展的高性能文件存储服务,可为公有云上的虚拟机提供共享存储服务。 目前已对接阿里云的NAS文件系统以及华为云的SFS弹性文件服务。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “存储/文件存储/文件系统” 菜单项,进入文件系统页面。 新建文件系统 该功能用于创建文件系统。 在文件系统