米Facebook、フラッシュストレージ向けのキーバリューデータストア「RocksDB」を発表

 米Facebookが永続的Key-Value型データストア「RocksDB」をオープンソースで公開した。フラッシュストレージ向けに設計されており、高速なストレージの効果的利用、拡張性などを特徴とする。

 同社のデータベースエンジニアリングチームが11月22日に詳細を発表した。RocksDBは米GoogleのKey-Value型データストア「LevelDB」からフォークしたもので、C++で実装されている。Facebook社内で利用されており、12億人のFacebookユーザーに対し、動的に生成された独自のページを表示するのを技術的に支援しているという。

 開発目標は、1)マルチコアCPUを持つサーバーでの拡張性、2)高速なストレージの効果的利用、3)技術革新のための柔軟性、4)I/Oバウンドやインメモリ、ライトワンスなどの作業のサポート、の4つ。中でもフラッシュストテージの高速性に対するボトルネックにならない点が強調されており、LevelDBと比較すると読み込みおよびバルクアップロードでは10倍高速など、パフォーマンスを大きく改善できるという。

 RocksDBはプラガブルアーキテクチャを持ち、システム全体に影響を与えることなくコンポーネントの取り替えが可能。たとえば、コードを書き換えることなくsnappy、zlib、bzipなど圧縮形式を切り替えることができるという。圧縮はlevel typeとuniversal typeの2種類があり、インクリメンタルのオンラインバックアップ用のインターフェイスなども用意する。

 FacebookではRocksDBが適している分野として、ユーザー向けのアプリケーションで閲覧履歴やステータスを保持するもの、高速なアクセスが必要とされるスパム検出アプリケーション、リアルタイムでのデータスキャンが要求されるグラフ検索クエリ、リアルタイムでHadoopにクエリをかけるアプリ、大量の追加・削除をサポートするメッセージキューなどを挙げている。

RocksDBはプロジェクトのWebサイトより入手できる。ライセンスはBSD License。

RocksDB
http://rocksdb.org/

米Facebook
http://www.facebook.com/