Cassandra和HBase主要设计思路对比
来源:互联网 发布:淘宝上买双肩包的店铺 编辑:程序博客网 时间:2024/04/27 11:42
xiaofeng 2011-04-13
CassandraHBase一致性Quorum NRW策略
通过Gossip协议同步Merkle Tree,维护集群节点间的数据一致性
单节点,无复制,强一致性可用性1,基于Consistent Hash相邻节点复制数据,数据存在于多个节点,无单点故障。2,某节点宕机,hash到该节点的新数据自动路由到下一节点做 hinted handoff,源节点恢复后,推送回源节点。
3,通过Gossip协议维护集群所有节点的健康状态,并发送同步请求,维护数据一致性。
4,SSTable,纯文件,单机可靠性一般。
1,存在单点故障,Region Server宕机后,短时间内该server维护的region无法访问,等待failover生效。2,通过Master维护各Region Server健康状况和Region分布。
3,多个Master,Master宕机有zookeeper的paxos投票机制选取下一任Master。Master就算全宕机,也不影响Region读写。Master仅充当一个自动运维角色。
4,HDFS为分布式存储引擎,一备三,高可靠,0数据丢失。
5,HDFS的namenode是一个SPOF。
伸缩性1,Consistent Hash,快速定位数据所在节点。2,扩容需在Hash Ring上多个节点间调整数据分布。
1,通过Zookeeper定位目标Region Server,最后定位Region。2,Region Server扩容,通过将自身发布到Master,Master均匀分布。
负载均衡
请求Zookeeper取得整个集群地址,然后根据Consistent Hash选择合适的节点。client会缓存集群地址。请求Zookeeper取读写数据路由表定位Region Server,Master会修改这个路由表。Client自身也会缓存一部分路由信息。数据差异比较算法Merkle Tree , Bloom FilterBloom Filter锁与事务Client Timestap(Dynamo使用vector lock)Optimistic Concurrency Control读写性能数据读写定位非常快。数据读写定位可能要通过最多6次的网络RPC,性能较低。CAP点评1,弱一致性,数据可能丢失。2,可用性高。
3,扩容方便。
1,强一致性,0数据丢失。2,可用性低。
3,扩容方便。
At 2011.09.20 12:24, schubert zhang said:
作为大规模存储系统,Cassandra有几个致命架构问题,做小规模存储还行:
1. 用Merkle Tree来比较和保证一致性,基本上会造成的局面是,永元有数据不同步。算一遍Markle Tree要遍历数据,如果一个节点有几个TB如何了得。。。
2. 说Cassandra扩容方便的一定会误导别人。试试就知道了,如果系统负载很大了,加个节点会把整个环破坏,迁移大量数据,进一步把系统拖垮。
。。。。
- Cassandra和HBase主要设计思路对比
- Cassandra和HBase主要设计思路对比
- Cassandra和HBase主要设计思路对比
- Cassandra和HBase主要设计思路对比
- HBase 和 Cassandra的使用对比
- HBase 和 Cassandra的浅谈
- HBase 和 Cassandra的浅谈
- Hbase与BDBMS对比的主要缺点
- NoSQL数据库对比-Cassandra,Mongodb,CouchDB,Redis,Riak,HBase
- 对比Cassandra、 Mongodb、CouchDB、Redis、Riak、 Membase、Neo4j、HBase
- Cassandra HBase和MongoDb性能比较
- Cassandra HBase和MongoDb性能比较
- Cassandra HBase和MongoDb性能比较
- 分布式存储系统(GlusterFS,Swift,Cassandra)设计对比
- Hadoop主要子项目介绍(Pig Zookeeper Hbase Hive Sqoop Avro Chukwa Cassandra )
- Hbase和Oracle的对比
- Hbase和Oracle的对比
- HBase数据模型特性及表设计思路
- php进制转换函数
- 主函数main中变量(int argc,char *argv[])的含义 --一个例子
- DataGrid 的 ItemDataBound 中如何获取匿名类型数据源的Item
- 黑马 交通灯管理系统
- 高通平台android串口没有输出
- Cassandra和HBase主要设计思路对比
- Mybatis多参数传入问题
- ANDROID Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER
- Java基本数据类型
- AT91RM9200的U-BOOT启动烧写过程
- 转:40个迹象表明你还是PHP菜鸟
- maven使用的总结
- 程序员的职业道德
- Linux 目录结构