levelDB, TokuDB, BDB等kv存储引擎性能对比——wiredtree, wiredLSM,LMDB读写很强啊
在:http://www.lmdb.tech/bench/inmem/
2. Small Data Set
Using the laptop we generate a database with 20 million records. The records have 16 byte keys and 100 byte values so the resulting database should be about 2.2GB in size. After the data is loaded a "readwhilewriting" test is run using 4 reader threads and one writer. All of the threads operate on randomly selected records in the database. The writer performs updates to existing records; no records are added or deleted so the DB size should not change much during the test.
The tests in this section and in Section 3 are all run on a tmpfs, just like the RocksDB report. I.e., all of the data is stored only in RAM. Additional tests using an SSD follow in Section 4.
The pertinent results are tabulated here and expanded on in the following sections.
| Engine | Load Time | Overhead | Load Size | Writes/Sec | Reads/Sec | Run Time | Final Size | CPU% | Process Size | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Wall | User | Sys | KB | Wall | User | Sys | KB | KB | |||||
| LevelDB | 00:34.70 | 00:44.72 | 00:06.70 | 1.4818443804 | 2246004 | 10232 | 26678 | 00:49:58.73 | 01:31:48.62 | 00:52:50.95 | 3452388 | 289% | 2138508 |
| Basho | 00:40.41 | 01:24.39 | 00:17.82 | 2.5293244246 | 2368768 | 10232 | 68418 | 00:19:32.94 | 01:14:10.04 | 00:01:19.19 | 2612436 | 386% | 6775376 |
| BerkeleyDB | 02:12.61 | 01:58.92 | 00:13.57 | 0.9990950909 | 5844376 | 00:15:28.44 | 00:42:07.97 | 00:17:27.49 | 5839912 | 385% | 3040716 | ||
| Hyper | 00:38.78 | 00:49.88 | 00:06.43 | 1.4520371325 | 2246448 | 10208 | 138393 | 00:09:38.39 | 00:35:06.12 | 00:02:06.18 | 2292632 | 385% | 2700088 |
| LMDB | 00:10.55 | 00:08.15 | 00:02.37 | 0.9971563981 | 2516192 | 00:00:55.46 | 00:03:37.63 | 00:00:01.67 | 2547968 | 395% | 2550408 | ||
| RocksDB | 00:21.54 | 00:34.70 | 00:05.99 | 1.8890436397 | 2256032 | 10233 | 91544 | 00:14:37.74 | 00:54:06.84 | 00:02:38.04 | 3181764 | 387% | 6713852 |
| TokuDB | 01:45.12 | 01:41.58 | 00:47.37 | 1.4169520548 | 2726168 | 9881 | 109682 | 00:12:12.91 | 00:37:41.45 | 00:07:10.03 | 3920784 | 367% | 5429056 |
| WiredLSM | 01:10.93 | 02:35.55 | 00:18.62 | 2.4555195263 | 2492440 | 00:07:26.24 | 00:28:55.85 | 00:00:07.76 | 2948988 | 390% | 3205396 | ||
| WiredBtree | 00:17.79 | 00:15.68 | 00:02.09 | 0.9988757729 | 2381876 | 00:01:53.46 | 00:06:36.98 | 00:00:14.78 | 4752568 | 362% | 3415468 | ||
3. Larger Data Set
These tests use 100 million records and are run on the 16 core server. Aside from the data set size things are much the same. Here are the tabular results:
| Engine | Load Time | Overhead | Load Size | Writes/Sec | Reads/Sec | Run Time | Final Size | CPU% | Process Size | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Wall | User | Sys | KB | Wall | User | Sys | KB | KB | |||||
| LevelDB | 03:06.75 | 04:41.26 | 00:42.87 | 1.7356358768 | 11273396 | 01:00:02.00 | 01:22:11.46 | 01:52:10.46 | 13734168 | 323% | 3284192 | ||
| Basho | 04:22.96 | 11:09.24 | 02:18.93 | 3.0733571646 | 11449492 | 10211 | 80135 | 01:00:23.00 | 14:32:23.67 | 00:11:49.40 | 13841220 | 1464% | 19257796 |
| BerkeleyDB | 14:59.45 | 13:34.30 | 01:25.15 | 1 | 28381956 | 01:00:02.00 | 03:02:00.69 | 12:42:39.63 | 28387880 | 1573% | 14756768 | ||
| Hyper | 03:43.61 | 05:41.14 | 00:39.02 | 1.7001028577 | 11280092 | 10231 | 11673 | 01:00:04.00 | 01:59:42.09 | 01:53:24.27 | 15149416 | 387% | 6332460 |
| LMDB | 01:04.15 | 00:52.31 | 00:11.82 | 0.9996882307 | 12605332 | 00:11:14.14 | 02:47:58.57 | 00:00:10.06 | 12627692 | 1598% | 12605788 | ||
| RocksDB | 02:28.66 | 03:59.92 | 00:30.97 | 1.8222117584 | 11289688 | 10232 | 129397 | 01:00:22.00 | 12:08:05.94 | 02:51:58.54 | 12777708 | 1490% | 18599544 |
| TokuDB | 07:44.10 | 09:17.31 | 02:54.82 | 1.5775263952 | 12665136 | 4601 | 70208 | 01:00:15.00 | 03:02:37.44 | 11:21:45.00 | 15328956 | 1434% | 23315964 |
| WiredLSM | 07:10.50 | 19:25.80 | 02:31.10 | 3.0590011614 | 12254620 | 01:00:05.00 | 15:51:04.17 | 00:02:09.76 | 16016296 | 1586% | 17723992 | ||
| WiredBtree | 02:07.49 | 01:49.52 | 00:17.97 | 1 | 11932620 | 00:20:58.10 | 05:06:13.60 | 00:05:14.87 | 23865368 | 1560% | 20743232 | ||
看这个pdf里有对kv存储的架构和底层原理的详细介绍:
https://daim.idi.ntnu.no/masteroppgaver/008/8885/masteroppgave.pdf
levelDB, TokuDB, BDB等kv存储引擎性能对比——wiredtree, wiredLSM,LMDB读写很强啊的更多相关文章
- Java模板引擎性能对比
模板引擎性能对比 从Github上翻到对JSP.Thymeleaf 3.Velocity 1.7.Freemarker 2.3.23几款主流模板的性能对比,总体上看,Freemarker.Veloci ...
- 基于淘宝开源Tair分布式KV存储引擎的整合部署
一.前言 Tair支撑了淘宝几乎所有系统的缓存信息(Tair = Taobao Pair,Pair即Key-Value键值对),内置了三个存储引擎:mdb(默认,类似于Memcache).rdb(类似 ...
- MySql存储引擎特性对比
下表显示了各种存储引擎的特性: 其中最常见的两种存储引擎是MyISAM和InnoDB 刚接触MySQL的时候可能会有些惊讶,竟然有不支持事务的存储引擎,学过关系型数据库理论的人都知道,事务是关系型数据 ...
- mysql存储引擎的对比
- MongoDB存储引擎选择
MongoDB存储引擎选择 MongoDB存储引擎构架 插件式存储引擎, MongoDB 3.0引入了插件式存储引擎API,为第三方的存储引擎厂商加入MongoDB提供了方便,这一变化无疑参考了MyS ...
- MongoDB 存储引擎选择
MongoDB存储引擎选择 MongoDB存储引擎构架 插件式存储引擎, MongoDB 3.0引入了插件式存储引擎API,为第三方的存储引擎厂商加入MongoDB提供了方便,这一变化无疑参考了MyS ...
- MySQL性能调优与架构设计——第3章 MySQL存储引擎简介
第3章 MySQL存储引擎简介 3.1 MySQL 存储引擎概述 MyISAM存储引擎是MySQL默认的存储引擎,也是目前MySQL使用最为广泛的存储引擎之一.他的前身就是我们在MySQL发展历程中所 ...
- MySql(十一):MySQL性能调优——常用存储引擎优化
一.前言 MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌握的知识也会增加很多.本章将介绍最为常用的两种存储引擎进行针对性的优化建议. 二.MyISAM存储 ...
- MySQL性能优化(一)-- 存储引擎和三范式
一.MySQL存储引擎 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存 ...
随机推荐
- DOM 常见事件
onclick //当用户点击某个对象时调用的事件句柄. ondblclick //当用户双击某个对象时调用的事件句柄. onfocus //元素获得焦点. onblur //元素失去焦点. 应用场景 ...
- hadoop学习第四天-Writable和WritableComparable序列化接口的使用&&MapReduce中传递javaBean的简单例子
一. 为什么javaBean要继承Writable和WritableComparable接口? 1. 如果一个javaBean想要作为MapReduce的key或者value,就一定要实现序列化,因为 ...
- echarts3.8.4实现模拟迁移
动态接受城市的经纬度https://zhidao.baidu.com/question/1384875311724922940.html 调用百度api获得ip对应的城市https://www.cnb ...
- ES集群性能调优链接汇总
1. 集群稳定性的一些问题(一定量数据后集群变得迟钝) https://elasticsearch.cn/question/84 2. ELK 性能(2) — 如何在大业务量下保持 Elasticse ...
- ES6 随记(2)-- 解构赋值
上一章请见: 1. ES6 随记(1)-- let 与 const 3. 解构赋值 a. 数组的解构赋值 let [a1, b1, c1] = [1, 2, 3]; console.log(a1, b ...
- CSS实现三角形图标的原理!!!!今天总算弄懂了。
网页中经常有一种三角形的图标,鼠标点一下会弹出一个下拉菜单之类的(之前淘宝也有,不过现在改版好像没有了) 之前以为是个png图标背景,后来在bootstrap中看到有一个图标样式叫做caret的用来实 ...
- awk遇到windows 的^M
windows在编辑的文档,在linux中显示会在行尾出现一个^M window下编辑的文档:末尾带^M$ linux下编辑的文档:末尾带$ awk中如果存在^M,则会限制print的输出列数(只能输 ...
- 20145240《Java程序设计》课程总结
20145240<Java程序设计>课程总结 每周读书笔记链接汇总 20145240 <Java程序设计>第一周学习总结:http://www.cnblogs.com/2014 ...
- 各种排序算法-用Python实现
冒泡排序 # 冒泡排序 def bubble_sort(l): length = len(l) # 外层循环 length遍,内层循环少一遍 while length: for j in range( ...
- HDU3047 Zjnu Stadium
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...