Cassandra HBase和MongoDb性能比较

                   
banq
14-02-11 5 19148 7



这是一篇基于亚马逊云平台上对三个主流的NoSQL数据库性能比较,在读写两个操作不同的组合情况下性能表现不同。

横坐标是吞吐量,纵坐标是延迟,这是一对矛盾,吞吐量越大,延迟越低,代表越好。

1. 纯粹插入,Cassandra领先,见下图:


2.WorkloadA: 读修改操作各占一半情况下的修改性能:MongoDB明显延迟增加,落败:


3.WorkloadB:读修改操作各占一半情况下的读性能:Cassandra落后


4.WorkloadB: 95%的read和5%的update以读为主的场景下修改性能:MongoDB落后:


5.WorkloadB: 95%的read和5%的update以读为主的场景下读取性能:
三者差不多,HBase好些:


6.WorkloadC 100%的read:


7.WorkloadD 5%的插入和95%的读的场景下插入性能,Cassandra表现最好。


8.WorkloadD 5%的插入和95%的读的场景下读性能,Cassandra表现最好。


9.WorkloadF 50%的read-modify-write 和50%的read,读取性能:


10.WorkloadF 50%的read-modify-write 和50%的read,修改性能,MongoDB表现最差


11.WorkloadF 50%的read-modify-write 和50%的read,read-modify-write性能,MongoDB表现最差


12.WorkloadG 90%的插入insert和10%的读取,插入性能:


总体个人总结:HBase比较中庸些,适合各种场景,Cassandra适合读写分离的场景,写入场景使用Cassandra,比如插入操作日志,或领域事件日志的写入;而MongoDB适合做读写分离场景中的读取场景,Cassandra与MongoDB之间使用定时同步,适合一致性要求不是特别强的业务。

原文链接: https://jaxenter.com/evaluating-nosql-performance-which-database-is-right-for-your-data-107481.html

[该贴被admin于2015-12-11 10:11修改过]

7
junsiyang
2014-02-13 14:57

不是很懂如何让Cassandra运用在读写分离的场景中?

banq
2014-02-13 15:05

2014-02-13 14:57 "@junsiyang"的内容
如何让Cassandra运用在读写分离的场景中 ...


在一个大型复杂系统中,以读操作为主的业务和以写操作为主的业务一般总是需要分离,比如CQRS架构,Cassandra可以用来对EventSourcing的领域事件进行记录,而报表等各种复杂条件的实时查询可以使用MongoDB。

参考:
纽约证券交易所的实时Map/Reduce大数据分析

大数据的Reactive之道

junsiyang
2014-02-13 15:47

谢谢您的答复,我是不是可以这么理解,事件数据先存入Cassandra,定期批量地从Cassandra转移到MongoDB,使用MangoDB来做报表等复杂的查询

sinaID66613
2015-12-10 17:11

您好,请问您还有这篇文章的原文么,中文版的也可以,因为图片都显示不出来,看不到比较的结果

2Go 1 2 下一页