嵌入式数据库rocksdb是facebook基于leveldb开发的一种嵌入式key-value存储系统,该数据库能够充分利用闪存的性能,大大提升应用服务器的速度。
rocksdb. 这个开源引擎是基于 google 的 leveldb 1.5 版本, 但据称做了许多优化, 性能相对 leveldb 有了很大的提升, 而且解决了 leveldb 主动限制写的问题.
facebook 用rocksdb来驱动一些面向用户的应用,这些应用由于需要通过网络访问外部存储而性能低下,此外facebook还用rocksdb来解决固态硬盘 io利用率不高相关的一些问题。facebook的数据库工程师dhruba borthakur在其个人博客介绍了rocksdb的设计原由和原理,但实际上催生rocksdb的最大动力来自服务器闪存存储卡的价格大幅下滑,facebook的定制服务器已经开始全面采用闪存。
随着闪存存储时代的到来,一些新的应用可以在闪存中管理并快速访问自己的数据集,无需通过网络访问外部数据。这些新应用使用的就是我们所说的嵌入式数据库。
数据库查询如果在本地闪存中进行,速度理论上会比通过数据中心内部网络查询快一倍,因为数据库中心内部网络有50微妙的延迟。
rocksdb 的能够充分利用闪存的高iops性能,同时也能利用多核服务器的计算性能,facebook目前已经在rocksdb的github页面上发布了 rocksdb在fusion-io服务器上的跑分基准测试结果,facebook声称其速度比google的leveldb嵌入式key-value存储系统快很多。
rocksdb官网:http://www.rocksdb.org/
rocksdb源码:https://github.com/facebook/rocksdb/
调用方法:
$dbpath = /tmp/test;$rocksdb = new rocksdb($dbpath);$rocksdb->set(key, value);$rocksdb->get(key);$rocksdb->del(key);$rocksdb->close();
项目主页:http://www.open-open.com/lib/view/home/1449999664000
