首页 > 其他 > 详细

Cassandra1.2文档学习(3)——数据分配和复制

时间:2014-01-22 15:55:50      阅读:455      评论:0      收藏:0      [点我收藏+]

参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/architectureDataDistributeAbout_c.html#concept_ds_g43_g3f_fk

在Cassandra中,数据分配和复制是同时进行的。这是因为Cassandra被设计为一个点对点的系统,数据有多个复制,被分发到一组节点上。数据按照表的形式构建以主键进行标识。主键决定了数据存储在那一个节点上面。Cassandra是一个面向行的数据库,行的副本就称其为复制。当数据第一次被写入的时候,就被称为是一个复制。

当你创建集群的时候,你需要指定一下属性:

Virtual nodes(虚拟结点): 指定数据属于那个物理机器

Partitioner(分区器): 决定了集群中数据如何分区

Replication strategy(复制策略): 决定如何进行每个数据行的复制

Snitch(告密者): 定义了复制策略放置数据复制所采用的拓扑信息

 

一、一致性哈希

详细说明在Cassandra集群中,一致性哈希机制是如何分发数据的。

 

采用一致性哈希对数据进行分析是基于主键的。以以下数据为例:

jim age: 36 car: camaro gender: M
carol age: 37 car: bmw gender: F
johnny age: 12 gender: M  
suzy age: 10 gender: F  

 

Cassandra 通过计算为每个主键分配了一个hash值。

Primary key Murmur3 hash value
jim -2245462676723223822
carol 7723358927203680754
johnny -6723372854036780875
suzy 1168604627387940318

 

在集群中的每个节点基于哈希值负责一段连续范围内的数据。

Node Murmur3 start range Murmur3 end range
A -9223372036854775808 -4611686018427387903
B -4611686018427387904 -1
C 0 4611686018427387903
D 4611686018427387904 9223372036854775807

 

Cassandra根据主键的哈希值将数据放置在主键所在范围内的节点。

Node Start range End range Primary key Hash value
A -9223372036854775808 -4611686018427387903 johnny -6723372854036780875
B -4611686018427387904 -1 jim -2245462676723223822
C 0 4611686018427387903 suzy 1168604627387940318
D 4611686018427387904 9223372036854775807 carol 7723358927203680754

Cassandra1.2文档学习(3)——数据分配和复制

原文:http://www.cnblogs.com/dyf6372/p/3529511.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!