我正在寻找一种最终一致性数据存储方式,看起来可能会选择Riak或Cassandra。有没有人对此有经验或意见?
你可能知道,它们在架构上都受到Dynamo的强烈影响(最终一致性,无单点故障等)。两者都超越了Dynamo,提供了“比纯K / V更丰富”的数据模型-在Cassandra的情况下,提供了类似Bigtable的ColumnFamily模式,在Riak中则是面向文档的模型。我见过理智的人选择两者。
我认为支持Cassandra的因素包括:
支持Riak的因素包括:
/Cassandra dev,供参考
Riak被以下公司使用:
我认为它们都通过了可信参考客户/用户的测试。
Cassandra似乎更成熟,并且在基准测试中表现更好。Riak似乎更容易随着您的集群增长添加节点。
为了完整性:可以在http://docs.basho.com/riak/1.3.2/references/appendices/comparisons/Riak-Compared-to-Cassandra/找到一个很好的(可能有偏见的)比较这两者之间的差异。
使用和下载是不同的。最好获取参考资料。
也许可以进行私人对话,分享这些公司中Riak的参考资料?不确定如何在Cassandra中获得这样的资料,但是有一些支持Cassandra的公司社区似乎是一个很好的起点。由于这些公司可能有Cassandra开发的社区参与者,因此这可能是一个非常合理的起点。
我想听听Riak对最近和大规模部署的回答,以及客户是否满意。
我还想看到每个产品的路线图。在我看来,Cassandra要比Riak更容易跟踪(http://wiki.apache.org/cassandra/),因为Cassandra的维基讨论了限制和未来可能会改变的事情,但两者都没有很好地概述未来。我可以理解开源社区的做法...也许...但对于我必须支付费用的产品,我无法理解。
我喜欢这个Cloudant网页(https://cloudant.com/the-data-layer/)。看到嵌入的Erlang功能让我感到惊讶...我不知道CouchDB是用Erlang编写的,因为在Apache社区中这似乎很不寻常(我的无知);CouchDB似乎比我现在了解到的其他nosql产品要旧,它们都是用Erlang编写的。无论他们的策略是什么,至少他们将Amazon EC2和Microsoft Azure列为托管合作伙伴,表明他们对Microsoft和!Microsoft世界的赞赏 - 如果适当地认识到这些类型的数据存储可能具有的中间件价值潜力(超出缓存或哈希表应用),这一点非常重要。
最后,虽然我不太了解这个委员会,但安迪·帕尔默的指导似乎非常有价值。他可以通过VoltDB为结构化数据提供一些指导,以应对一个被公正或不公正地贴上KVP哈希表标签的非结构化数据世界。人们正在认识到需要结构和生态系统来支持nosql“数据库”...请看谷歌在Spanner方面的努力... KVP / 少量结构 / 需要可搜索性促使谷歌投资于Spanner领域。虽然我们可能并不需要像Spanner这样的东西,但我们可能确实需要在这些nosql数据库中具备改进和强大的“企业”管理和互操作能力,以便将它们合理地纳入现代云架构中。所需的结构可以来自互操作性和功能丰富性的易用性。它也可以来自支持将非结构化数据转换为结构化数据的新功能(例如索引,使用NLP创建KVP blob内部事物的结构化和解析呈现等等),如果将其列入路线图并发布,就可以吸引和扩大用户群。Cloudant看起来有很好的成功机会...我会仔细研究它...看看我发现的CouchDB...
CouchDB带有一系列功能,例如即时文档转换和实时更改通知,使Web应用程序开发变得轻松。它甚至配备了易于使用的Web管理控制台。你猜对了,直接从CouchDB提供!我们非常关心分布式扩展。CouchDB高度可用且具有分区容错性,但最终是一致的。我们非常关心您的数据。CouchDB具有容错存储引擎,将您的数据安全放在首位。