我在网站上做了很多后端工作。我使用 mysql 来存储这些作业的结果以及所有中间步骤。无论 mysql 是否启动,这些作业都能够完成。问题是,如果 mysql 在任何给定时间出现问题,正在运行的作业状态就会被搞砸,并且它们的结果是无用的(因为它们是不同位置的编码文件)。
是否有某种分布式存储引擎可以用来存储中间数据和最终结果作为 mysql 的备份,所以如果 mysql 选择废话,我可以理解结果数据。
我在网站上做了很多后端工作。我使用 mysql 来存储这些作业的结果以及所有中间步骤。无论 mysql 是否启动,这些作业都能够完成。问题是,如果 mysql 在任何给定时间出现问题,正在运行的作业状态就会被搞砸,并且它们的结果是无用的(因为它们是不同位置的编码文件)。
是否有某种分布式存储引擎可以用来存储中间数据和最终结果作为 mysql 的备份,所以如果 mysql 选择废话,我可以理解结果数据。
老实说,这听起来像是您整个架构设计的问题,但是如果您正在寻找替代存储引擎,则有多种选择。以下是可能适合的内容的快速列表,具体取决于您的应用程序。这里列出了更多。
CouchDB、Hadoop、MemcacheDB、伏地魔
nosql 数据库旨在提供高可用性的分布式存储子系统 - 但是我发现缺乏关系功能相当受限。
sqlite 是用于关系数据库的简单进程内工具。
我想很大程度上取决于您使用什么来实现您的逻辑 - 以及它将与什么对话。
我必须承认我有点惊讶你似乎对 mysql 的可靠性有问题 - 我已经将它用于一些非常严重/大容量的东西,并且发现它非常稳定 - 我遇到的唯一问题是:
1) 当我在 md-raid 上运行旧版本时 - 大量删除后偶尔会出现损坏
2)在myisam中更新大型数据集的表级锁定问题(使用innodb可以避免)
您可能要考虑继续使用 mysql,但使用主-主复制并在顶部放置一个容错层 - 例如mysqlproxy