BT

InfoQ ホームページ ニュース LinkedIn、リードオンリーキーバリュー型ストアのPalDBをオープンソース化

LinkedIn、リードオンリーキーバリュー型ストアのPalDBをオープンソース化

ブックマーク

原文(投稿日:2015/10/27)へのリンク

LinkedInhが組み込み可能なリードオンリー・キーバリュー型ストア、PalDBをオープンソース化した。PalDBはLevelDBよりも8倍高速で、HashSetよりも数倍消費メモリが小さいという。

PalDBはJavaで書かれたライトワンス・キーバリュー型ストアで、LinkedInによってオープンソース化された。ストアを作成した後、すべての操作はリードオンリーだ。目的は、リード操作の改善とより小さなメモリフットプリントにある。LinkedInが推奨している用途は、サイドデータ(side data)の格納だ。彼らはサイドデータのことを「目的を果たすためプロセスが必要としている追加のリードオンリーデータ」と定義している。「自然言語処理アルゴリズムが使うストップワードのリストは、サイドデータの一例です。」

PalDBは組み込み可能で、スキーマを使わずに、データをバイナリファイルに保持する。そして、API経由のランダムデータアクセスを提供する。

PalDBはリード操作に最適化されており、LinkedInによると、そのパフォーマンスはHashMapやHashSetのような他のインメモリデータ構造に匹敵しつつ、使用メモリを大幅に削減しているという。これがLinkedInがPalDBの設計時に求めていた、大きなメリットの一つだ。例えば、100MのキーHashSetには500MB以上が必要になるが、PalDBであれば約80MBだけで済む。また、35MのメンバーIDにはHashSetで1.8GBのRAMが必要になるが、PalDBでは290MBしか必要としない。PalDBはフットプリントをより小さくするため、Snappyを使ってデータを圧縮する。

スピードに関して、LinkedInが実施したテストによると、PalDBは毎秒2Mリード、HashSetの6倍高速で、LevelDBやRocksDBの8倍高速だという。(MacBook Pro 3.1 GHz及び10Mのキーインデックスを使用)。

PalDBはメモリアクセスに最適化されている。データがディスクに保持されていると、パフォーマンスは大幅に低下するだろう。データサイズに制限はないが、インデックスのサイズには2GBの制限がある。PalDBはスレッドセーフでないことも知っておくべき重要なことだ。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。