Auf*_*ind 12 python sqlite nfs locking
假设有两个python脚本想要将数据写入同一个表,该表使用该sqlite3模块存储在SQLite文件中.SQLite文件存储在NFS文件系统中.在SQLite-FAQ中我读到:
SQLite使用读取器/写入器锁来控制对数据库的访问.[...]但请注意:如果数据库文件保存在NFS文件系统上,则此锁定机制可能无法正常工作.这是因为许多NFS实现都会破坏fcntl()文件锁定.如果多个进程可能同时尝试访问该文件,则应避免将SQLite数据库文件放在NFS上.
这是否意味着它根本不可能或者是否有某种方法可以确保一个进程等待另一个进程完成?
INSERT并不复杂.一些:
INSERT_STATEMENT = "INSERT INTO some_table (row, col, val) VALUES (?, ?, ?)"
connection.executemany(INSERT_STATEMENT, triples)
Run Code Online (Sandbox Code Playgroud)
并且插入的集合是不相交的.
另一个问题:当两个进程尝试写入同一个表或尝试写入同一个数据库(这是一个文件)时,是否会出现NFS问题?让每个进程在同一个数据库(文件)中创建自己的表并写入该表是否是一种解决方法?
Rog*_*nns 21
不要将SQLite与NFS一起使用.它是如此简单.NFS语义与常规文件系统不同,并且更宽松.你最终会腐败.SQLite用户邮件列表中的某个人偶尔发布他们的"变通办法".他们从不工作,虽然他们似乎在短期内.
| 归档时间: |
|
| 查看次数: |
7322 次 |
| 最近记录: |