来自Riak的LevelDB与InnoDB性能对比测试

来自Riak的LevelDB与InnoDB性能对比测试

转载自: http://blog.nosqlfan.com/html/2305.html

Riak默认采用的是Bitcask的数据引擎,Bitcask能够提供高效,高可用的,防崩溃的数据存储。但是它有一个弱点,就是其内存消耗与存储的数据数量成正比(尽管比例系数比较小)。也就是说如果你使用Bitcask引擎来存储大量小体积的数据,可能会比较浪费空间。

而Riak实时了同时提供了Innostore作为InnoDB引擎的封装,以提供对大量小体积数据的存储,但由于InnoDB引擎固有的一些特点,使得其有一些问题,比如相对Bitcask来说,备份InnoDB会比较困难,还有协议上的问题等等。

在Google发布了其Key-Value存储LevelDB后,引起了Riak的注意,他们发现LevelDB好像正好能够弥补Bitcask和InnoDB在大量小体积数据存储中的缺点,于是他们做了如下几个InnoDB和LevelDB的性能测试

机器配置都是普通的低配机:

a fairly basic 2-CPU Linux server with 4G of RAM, mid-range SATA disks

1.以自增的数字为key顺序的写入1亿条数据

来自Riak的LevelDB与InnoDB性能对比测试_第1张图片

2.对上面写入的1亿条数据进行读取,读取策略采用帕累托分布(帕累托分布即大部分数据请求是对小部分数据集的,这更接近到真实应用场景)

来自Riak的LevelDB与InnoDB性能对比测试_第2张图片

3.同时对上面数据进行读写操作,读写比为90:10

来自Riak的LevelDB与InnoDB性能对比测试_第3张图片

4.单纯的写入操作,同样采用帕累托分布,且分布更严重,也就是操作针对的数据集更小

来自Riak的LevelDB与InnoDB性能对比测试_第4张图片

当然,上面的测试场景仅供参考,具体的性能差别最好还是根据自己的应用场景来做测试。

来源:blog.basho.com


你可能感兴趣的:(来自Riak的LevelDB与InnoDB性能对比测试)