2

如果我是正确的,crate (crate.io) 由 Elasticsearch (Lucene) 支持。一个月前不是有几篇文章说ES在重负载下丢了一些写吗?还有其他顾虑吗?

4

2 回答 2

1

你是对的,Crate 是由 Elasticsearch 支持的。我们认为 elasticsearch 的人在提高数据一致性方面做得很好。一个很好的阅读是http://www.elasticsearch.org/blog/resiliency-elasticsearch/,它很好地概述了可靠性方面的努力。我们 Crate 相信这个存储引擎可以安全地用作主存储。我们还看到,Lucene 和 Elasticsearch 社区正在积极处理有关该领域的问题。

于 2014-08-11T13:01:02.037 回答
0

我目前正在评估 Crate.io 作为工作的主要数据存储。由于上述答案含糊不清,也许是时候在这里更新这个问题了。Jepsen 的作者 Kyle Kingsbury 在Youtube 上有一个 2016 年 12 月的主题演讲,他调查了 Crate.io 的 Elasticsearch 弹性问题。前 8 分钟是介绍,Crate.io 部分是从 23:50 到 31:10。

对于那些不想观看完整视频的人,这里有一个简短的摘要。首先,测试设置。他们使用随机查询建立数据库和随机模式的客户端。此外,他们自愿为数据库引入了问题,例如网络分区。其次,结果。根据 Kingsbury 的说法,ES 弹性存在两个问题。他们俩都继续使用 Crate.io。让我们来看看细节......

脏读

第一个 - ES #20031 - 如果发生网络分区,ES 可能会导致脏读、分歧和丢失更新。截至目前 - 2017 年 12 月 - 此问题仍未解决。在我看来,如果节点对极其繁重的任务(例如在大量查询、重新索引或垃圾收集期间)没有响应,则可能会出现相同的问题。

丢失更新

根据 Kingsbury 的说法,ES 还存在另一个问题(“可以促进陈旧的二进制文件”),当网络分区发生时,会导致更新完全丢失。它已被标记为 #20384 并且有一种修复,Kingsbury 将其总结为“部分”。因此,ES 在写入时仍有可能导致数据丢失。

ES 说什么?

ES 关于弹性的官方网站上,只提到了两个问题之一 - #20384 -。它在5.0 版本的发行说明中被标记为已解决,尽管官方网站说只有部分修复。

Crate.io 是怎么说的?

有关弹性的 Crate.io 文档中,有一个 Crate.io 弹性的已知问题列表。ES 错误 #20384 被评论为部分修复,但仍会导致未解决的问题。未提及 ES 错误 #20031。但是,有一段关于网络分区的问题,Crate.io 将其标记为已修复 - 所以官方页面在这里有点不确定。

结论

Kingsbury 在 2016 年 12 月得出结论,不应将 Crate.io 用作主要数据存储。它当然可以用作原始数据的复制,以从 Crate.io 提供的时间序列数据库功能中受益。他还建议,对于 5% 的数据丢失不是严重问题的机器数据,Crate.io 作为主存储是一个可行的选择。我的印象是 Kingsbury 报告的一些错误可能已经修复,但不是全部。

于 2017-12-07T13:27:08.370 回答