数据库磁盘映像因许多并发写入而格式错误

时间:2013-08-14 17:03:45

标签: python sqlite

我在具有Lustre文件系统的群集上运行许多(18k)批处理作业。作业同时提交,每个约需3秒,并使用sqlite3 python模块编写结果。代码的写入部分非常简单:

with sqlite3.connect(name, timeout=900) as conn: 
    conn.execute(
        "insert into someTable values (?, ?)", (value1, value2))   

但很多工作都会引发异常:

sqlite3.DatabaseError: database disk image is malformed

有时候

sqlite3.OperationalError: unable to open database file

我猜这与许多工作有关,当他们写文件时会锁定文件,但我的印象是sqlite3应该知道耐心地等待文件是自由。我的错误可能是由于并发写入太多而导致的?我该如何解决?

1 个答案:

答案 0 :(得分:4)

SQLite 支持分布式文件系统上的存储。并发访问需要锁定,而不是通过这样的系统传输。

您必须转移到支持网络模型的数据库,例如MySQL或PostgreSQL。