BT

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

| 作者: Abel Avram フォローする 10 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2015年11月9日. 推定読書時間: 2 分 |

原文(投稿日: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

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

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

このスレッドのメッセージについてEmailでリプライする

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

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT