目录
产品简介
RocksDB是一个使用键值数据的嵌入式数据库,由Facebook开发,目的是为了提高性能。
RocksDB是从LevelDB衍生而来的,LevelDB是谷歌开发的,它利用了许多CPU核的最佳性能,以及像SSD这样的快速存储,用于I/O负载。基于日志结构的合并树,RocksDB能够实现非常高的性能,并且能够适应不同的工作负载(可以用于各种数据需求)。RocksDB还支持基本和高级的数据库操作,包括合并和压缩过滤器。
RocksDB是用c编写的,它支持c、C、Java、Python、PHP的API绑定,以及许多其他第三方语言绑定。RocksDB已被Facebook、Yahoo!, LinkedIn。
发展历史
为了将HDFS的成功从数据分析扩展到查询服务工作负载(这种工作负载需要低延迟),Dhruba Borthakur对HBase进行了增强,使其延迟速度比MySQL服务器慢两倍。然后当闪存出现时,很明显需要一种新的存储引擎来有效地服务于随机工作负载。
他开始寻找新技术来构建下一代键值存储,特别是为存储在快速存储器上的数据提供服务。由于他使用了闪存,网络数据访问的开销比本地数据访问高50%,这意味着应用程序中的嵌入式数据库可能比通过网络访问数据的应用程序有更慢的延迟。
当时,已有几个嵌入式数据库:BerkeleyDB, SQLite3,还有leveldb,它是开源基准测试中最快的,加上它是用c++编写的,因此leveldb成为他基准测试的首选。
很快,他发现leveldb不适合用于查询服务工作负载。leveldb只在数据库大小小于RAM大小时工作。此外,leveldb的单线程压缩过程不足以驱动服务器的工作负载,并且它无法消耗底层闪存提供的所有I/ o。
最后,他认为最好的方法是分叉leveldb代码,并根据需要改变其架构(使用能够驱动快速存储硬件的数据库),然后便诞生了RocksDB。
所属公司
相关资料
官网:http://rocksdb.org/