
cassandra
yuanchao99
这个作者很懒,什么都没留下…
展开
-
cassandra1.2的新功能
1.新增了虚拟节点的功能:在此之前的版本,集群中每个节点只能有一个token,每个节点只能拥有一个连续range。1.2版允许一个节点拥有多个token和多个range。虚拟节点提供了以下优点: 1.1 不必再为每个节点计算和分配token。 1.2 增加和删除节点时不再需要rebalance,当节点加入和删除时会自动与其他节点均分自己的负载。 1.3 重建一个死原创 2013-02-15 17:12:34 · 3723 阅读 · 0 评论 -
cassandra体系结构(概述)
cassandra集群中每个节点都是平等的,没有中心节点或管理节点,因此不会有单点失败问题。某节点是否属于集群只取决于自己的配置。 每个节点每秒会和其它某些节点通讯(gossip协议). 每个节点都以日志方式记录每次写操作,以实现数据的持久性。 实际数据并非直接写入磁盘,而是先写入内存(memtable),memtable写满后一次性写入磁盘(SStable)。写入磁盘时自动实现数据分片(p原创 2013-02-15 18:32:49 · 4043 阅读 · 0 评论 -
cassandra的数据分布和副本策略
由于cassandra集群的每个节点是对等的,所以数据的分布和副本是在一起的。 数据是通过表组织起来的,通过行键(主键)标识,主键决定了数据存储在哪个节点。每一行会有多个副本(replica),注意第一份数据也被称为副本。 当建立一个集群时,必须指定以下内容: 虚拟节点:把数据分配到物理机器节点 分片器:在整个集群中对数据进行分片 副本策略:决定每行数据的副本 Snitch: 决定副本原创 2013-02-16 16:40:32 · 7682 阅读 · 0 评论 -
cassandra snitch (version 1.2)
snitch有两个功能: 1. 它根据网络拓扑确定数据应该从哪个节点读或者向哪个节点写。 2. 尽量使不同的副本不分布在同一个机架上。 如果在集群已经存储数据后再改变snitch策略,则必须运行full repair,因为snitch决定实际的数据副本位于哪些节点。 共有3种snitch: 1.SimpleSnitch:这是默认方式,它不会尝试识别节点是否位于不同的机架或数据中心,可用于原创 2013-02-16 20:42:04 · 4656 阅读 · 0 评论 -
cassandra gossip通讯协议简述
cassandra的各个节点通过gossip协议了解彼此的状态。 每个节点每隔1秒钟与其它节点交换消息,每个节点每次与不超过3个邻居节点交换消息,每个消息除了包含自己的状态信息外还包含自己知道的其它节点的状态。每个消息都有一个版本号,这样旧的消息就会被更新。 当一个节点初次启动时,它会通过cassandra.yaml配置文件知道自己所加入的集群的名字,并得到一个种子(seed)节点列表,种子节原创 2013-02-16 16:14:21 · 4133 阅读 · 0 评论 -
cassandra的table结构分析
组合键(Compound keys)和聚类(clustering) 组合键提供了聚类功能。例如定义(a, b) PRIMARY KEY是一个组合键。 建议使用uuid类型作为key,便于进行序列化操作。 cassandra规定组合键的第一个成员a用于分区(partition),后面的成员b则用于聚类。 实际存储时,a值相同的行存储在一起,并按照b进行排序,这就使查询等操作十分高效。 a值原创 2013-02-18 12:54:07 · 6571 阅读 · 1 评论 -
cassandra架构学习
架构概述 1. 节点关系 cassandra的所有节点都是对等的,没有master和slave之分,数据分布集群内的各个节点上,因此没有单点失败问题。每个节点每一秒都会和集群保持通讯。 2. 数据写入 每个节点都会维护一个写提交日志文件,每次写入动作都会记录在日志中,以此保证写入数据的持久性。实际的数据会首先写入位于内存中的memtable结构,写入的数据是进行索引处理过的翻译 2015-05-18 09:52:06 · 1315 阅读 · 0 评论