|
| HBase(dfs三副本,syncwal) | Cassandra(N=3,W=2,R=2, batch commitlog) |
| CAP | CP | CA |
| 数据存储模型 | LSM | LSM |
| 数据写入网络开销 | Rpc 没有压缩,1份原始数据,占用大约3倍流量 | Rpc 有压缩,1份原始数据,占用大概([三份数据写入流量,一份coordinator流量]4*0.2)倍网络流量(1:5压缩比,三份) |
| 内存使用效率 |
|
|
| sql支持 | None,有第三方phoenix实现,操作不透明,业务场景简单的场景下推荐使用原生客户端 | CQL,primarykey机制稍复杂,支持二级索引,但是性能不高,官方不推荐使用 |
| 数据模型 | 稀疏表 | cql,有限兼容sql |
| Compaction开销 | 1. 计算量1倍,网络3倍压缩数据量 2. flush文件偏小,一般需要多做一层compaction,最大会有几G级别的hfile文件 |
|
| 水平扩展开销 | 1. 一次性加入机器,水平扩展完成,需要一定的时间通过compaciton做数据本地化,写性能可以做到瞬间扩展 | 1. 一台一台加入,数据需要通过Streaming模块从原节点流向新节点,加入比较缓慢 |
| 可用性【短时间单机宕机场景】 | 1. 需要几分钟级别的故障恢复时间,故障恢复期间,宕机服务器上原来提供服务的region暂时不可用 | 1. 单机宕机,不影响读写,写操作会通过hinted handoff写入其他节点,恢复后再写回;读操作从其他节点获取 |
| 数据一致性 | 1. 保证一致 |
|
| 跨机房复制 | 1. 类似binlog的异步复制 | 1. 设置多DC,可以通过写入策略调整是多机房同步写入还是类异步写入 |
| 写入性能(同步wal模式) | 1. 忽略内存操作,写三个dn节点的pipeline,并行写入 | (r=2, w=2, n=3) 1. 忽略内存操作,并行写2节点成功即可 |
| 读性能(冷数据) | 1. 一个节点磁盘io操作 2. 磁盘io数目一般10个以内 | (r=2, w=2, n=3)
|
| 运维成本 |
|
|
| TTL |
|
|
| 多版本 |
|
|
| 前缀扫描 |
|
|
转载于:https://www.cnblogs.com/igloo1986/p/7803240.html
最后
以上就是坚强斑马最近收集整理的关于Cassandra VS HBase的全部内容,更多相关Cassandra内容请搜索靠谱客的其他文章。
发表评论 取消回复