3

我改用 sqlite3 而不是 MySQL,因为我必须在没有 mysql 的 PBS 系统上运行许多作业。当然,在我的机器上我没有 NFS,而 PBS 上存在 NFS。在花了很多时间切换到 sqlite3 之后,我去运行许多工作并且我损坏了我的数据库。当然,在 sqlite3 FAQ 中提到了 NFS,但是当我开始时,我什至没有想到这一点。

我可以在工作开始时复制数据库,但它会变成合并的噩梦!

出于这个简单的原因,我永远不会向我的任何同事推荐 sqlite:“sqlite 不起作用(在重要的机器上)”

我读过关于 NFS 没有达到标准的咆哮,这是他们的错。我尝试了一些解决方法,但正如这篇文章所暗示的那样,这是不可能的。

没有牺牲性能的解决方法吗?

那我该怎么办?试试其他的数据库软件?哪一个?

4

1 回答 1

3

您使用了错误的工具。根据这种经验说“我永远不会推荐 sqlite ...”有点像在你用它们敲钉子时说“我永远不会推荐玻璃瓶”。

您需要更准确地指定您的问题。我尝试在您问题的字里行间阅读给了我这样的信息:

您有许多节点通过一些未指定的路径工作,并产生输出。作业不交互,因为您说您可以复制数据库。所有作业的输出可以在完成后合并。你如何有效地产生合并的输出?

鉴于这个问题,这是我的建议:

让每个作业在结构化文件中生成其输出,每个作业都是唯一的。作业完成后,编写一个程序来解析每个文件并将其插入到 sqlite3 数据库中。这以它可以处理的方式使用 NFS(单个进程按顺序写入文件)并以同样合理的方式使用 sqlite3(单个进程写入本地文件系统上的数据库)。这避免了在运行作业时出现 NFS 锁定问题,并且应该提高吞吐量,因为您没有对 sqlite3 数据库的争用。

于 2012-12-06T22:57:00.347 回答