我正在一个具有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
应该知道要耐心等待文件被释放。我的错误可能是由于并发写入过多造成的吗?如何解决?