Cassandra 数据分区

Cassandra数据分区

当启动Cassandra集群时,需要选择数据如何在集群中划分,这个由partitioner来完成。

Cluster中管理的所有数据被表示成环(ring).环被划分为和节点数量等同的范围(range). 每个节点加入集群时候,都要发放一个令牌(token),它决定了节点在环中的位置以及负责的数据的range.

Column Family(也就是对应关系数据库的表)就是按照分区来的。

 

Cassandra 数据分区

 

配置partitioner,则需要指定分区策略:

RandomPartitioner(随机分区):这是Cassandra集群中默认的分区策略,它使用了一致性hash的算法。这个算法说明详细见:

http://www.cnblogs.com/coser/archive/2011/11/06/2238359.html

这种策略优点是:一旦你token被分配了,那么column family的数据会被平均的分配到多个集群节点中,并且简化了负载均衡。对于column family数据的读写也是平均的。

 

OrderedPartitioner(排序的分区):这个Cassandra集群并不推荐。

这必须保证所有的key已经排序了。

 

我们查看下我们系统的分区策略选择:

Cassandra 数据分区





本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/865191,如需转载请自行联系原作者

上一篇:海量数据下的注册中心 - SOFARegistry 架构介绍


下一篇:路由器LED闪灯泄露数据