Cassandra学习笔记 --- HBase与Cassandra区别于联系

来源:互联网 发布:python reversed函数 编辑:程序博客网 时间:2024/06/05 01:14

HBase vs Cassandra

 HBaseCassandra语言JavaJava出发点BigTableBigTable and DynamoLicenseApacheApacheProtocolHTTP/REST (also Thrift)Custom, binary (Thrift)数据分布表划分为多个region存在不同region server上改进的一致性哈希(虚拟节点)存储目标大文件小文件一致性强一致性最终一致性,Quorum NRW策略架构master/slavep2p高可用性NameNode是HDFS的单点故障点P2P和去中心化设计,不会出现单点故障伸缩性Region Server扩容,通过将自身发布到Master,Master均匀分布Region扩容需在Hash Ring上多个节点间调整数据分布读写性能数据读写定位可能要通过最多6次的网络RPC,性能较低。数据读写定位非常快数据冲突处理乐观并发控制(optimistic concurrency control)向量时钟临时故障处理Region Server宕机,重做HLog数据回传机制:某节点宕机,hash到该节点的新数据自动路由到下一节点做 hinted handoff,源节点恢复后,推送回源节点。永久故障恢复Region Server恢复,master重新给其分配regionMerkle 哈希树,通过Gossip协议同步Merkle Tree,维护集群节点间的数据一致性成员通信及错误检测Zookeeper基于GossipCAP1,强一致性,0数据丢失。2,可用性低。3,扩容方便。1,弱一致性,数据可能丢失。2,可用性高。3,扩容方便。




Facebook为什么放弃Cassandra?

Facebook开发Cassandra初衷是用于Inbox Search,但是后来的Message System则使用了HBase,Facebook对此给出的解释是Cassandra的最终一致性模型,不适合Message System,HBase具有更简单的一致性模型,





0 0