Apache Cassandra是否支持分片?
道歉这个问题看起来似乎微不足道,但我似乎无法找到答案。我已经读到Cassandra是在GAE的Big Table之后部分模仿的,这个Big Table大规模分片。但是我目前在Cassandra上发现的大多数文档似乎暗示Cassandra不会跨多台机器水平分区数据,而是支持许多重复的机器。这意味着Cassandra非常适合高可用性读取,但如果写入量变得非常高,最终会崩溃。
答案 0 :(得分:24)
Cassandra跨节点进行分区(因为如果你不能拆分它,你就无法对其进行扩展)。 Cassandra集群的所有数据都被划分为“环”,环上的每个节点负责一个或多个密钥范围。您可以控制分区程序(例如,随机,有序)以及根据您的要求将密钥/列复制到环上的节点数。
这包含了很好的概述。 Basic architecture
另外,我强烈建议您阅读Dynamo白皮书。虽然Cassandra在很多方面与Dynamo不同,但从概念上讲,它们源于相同的根源。看看:Dynamo White Paper
答案 1 :(得分:-3)
是的,cassandra支持分片,但是以自己的方式。
在Mongodb中,每个辅助节点都包含主节点的完整数据,但在Cassandra中,每个辅助节点都有责任仅保留一些关键数据分区。