本周四Facebook宣布开源其嵌入式数据库RocksDB(一种嵌入式Key-value存储系统),该数据库能够充分利用闪存的性能,大大提升应用服务器的速度。
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存储系统快很多。