末岡洋子シェア米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など圧縮形式を切り替えることができるという。typeの2種類があり、インクリメンタルのオンラインバックアップ用のインターフェイスなども用意する。FacebookではRocksDBが適している分野として、ユーザー向けのアプリケーションで閲覧履歴やステータスを保持するもの、高速なアクセスが必要とされるスパム検出アプリケーション、リアルタイムでのデータスキャンが要求されるグラフ検索クエリ、リアルタイムでHadoopにクエリをかけるアプリ、大量の追加・削除をサポートするメッセージキューなどを挙げている。RocksDBはプロジェクトのWebサイトより入手できる。