BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Googleは、Key-ValueデータストアであるLevelDBをオープンソース化した

Googleは、Key-ValueデータストアであるLevelDBをオープンソース化した

原文(投稿日:2011/07/29)へのリンク

Googleは、新しいBSDライセンス下でLevelDBをオープンソース化した。LevelDBは、置き換え可能なソートメカニズムによってソートされた任意のバイト配列で、キーと集約された値による埋め込み型のkey-valueデータベースである。データストアは非常にシンプルで、PutGetDeleteによる前方、後方への反復コマンドが許可されている。

データはSnappyを使って自動的に圧縮している。圧縮ライブラリは、GoogleのBigTable、MapReduce、RPC で使用されており、4月にオープンソース化されている。 LevelDBにはいくつかの制限がある。SQLクエリやインデックスをサポートしない、ひとつのプロセスでマルチスレッドをサポートしており、他のプロジェクトとその問題に対する利点である。

LevelDBは、バッチ書き込み操作に最適化されている。複数の変更はメモリ上で蓄積され、ソートされて、構成されたファイルサイズに達したときにディスクに書き込まれる。 結果として、シーケンシャルとランダム書き込み、シーケンシャル読み込みでよいパフォーマンスを発揮しており、Googleのパフォーマンスベンチマークによるといくつかのテストでは、SQLLiteと比較して2桁をたたき出している。 SQLiteは、ランダムリードではLevelDBよりも若干早く、大きな値の書き込みでは少なくても2倍高速である。 LevelDBはまた、同じようなkey-valueストアであるKyoto Cabinetよりもよいが、SQLiteとは比較にならない。 またRiakによるLevelDBとInnoDBとのいくつかの比較テストでは、GoogleのDBがInnoDBよりも優れており、いくつかのテストでは、近いパフォーマンスであった。

LevelDBは、C++で書かれており、少しの外部依存があるが、Windows、Mac OS X、Android、そしていくつかのUNIXへの移植に成功している。LevelDBは、IndexDB APIを実装した実験バージョンのChrome、ストレージノードレベルのRiakと、3Dマッピングソフトウェアの会社であるUpNextによって使われている。

この記事に星をつける

おすすめ度
スタイル

BT