infinispan - open source data grid rev2
DESCRIPTION
TRANSCRIPT
Infinispan
Open Source Data Grid
Red HatSenior Software Maintenance Engineer
Takayoshi Kimura
Memory is the new disk, disk is the new tape.
What is Data Grid?
• 複数のマシンに分散配置されている大量のデータに高速にアクセスできるミドルウェア
• 何ができるの?– 同上
• メモリ上の RAID
Infinispan とは
• JBoss で使われていたクラスタリングライブラリ JBoss Cache が起源
• JSR-107 JCache
• JSR-347 Data Grids for Java– スペックリードは Infinispan 作者の Manik
Surtani– Java EE 7 で JSR-347 が収録される可能
性が高い
ユースケース
• キャッシュとして利用する• 分散キャッシュとして利用する• クラスタリングライブラリとして利用
する• インメモリデータグリッドとして利用
する
キャッシュ
• ConcurrentHashMap の代わりに– より高い並列性– 古いエントリを消す– 古いエントリをディスクや DB へ– イベントリスナサポート– トランザクション連携
キャッシュ
• データベースのキャッシュ– Hibernate の 2nd level キャッシュ
• ビューのキャッシュ– Seam のビューフラグメントキャッシュ
• 読み込むコストの高いデータに適用– Read-most が原則– そうではない場合逆に遅くなる可能性
分散キャッシュ
• クラスタ対応キャッシュ– 使い方はローカルキャッシュと一緒– ローカルキャッシュでは複数 VM からは利
用できない– 例えば DB のキャッシュとして利用してい
て、別ノードが DB とキャッシュを更新したらどうする?
クラスタリングライブラリ
• 「クラスタ対応」したいときに– 複数ノード間でのデータの共有– イベントリスナを利用して各ノードで処理
をトリガ• JBoss AS でも利用
インメモリデータグリッド
• 大量のデータ• 高速アクセス• 非同期でディスク書き出し• 分散処理
インメモリデータグリッド
• データの分散配置– コンシステントハッシュと仮想ノード– 遠隔地クラスタリレー、ディザスターリカ
バリ• データの分散処理
– Distributed Executor– MapReduce
データ分散配置デモ
• infinispan-scala-swing-demo
Eviction
• アクセスされないデータを追い出す– Passivation モードだとディスクなどに書
き出す– そうではない場合は単に消す
• キャッシュアルゴリズム– どのように「アクセスされない」を決定
するか– LRU, MRU, LFU, LIRS
LRU
• Least Recently Used
• 最もアクセスが無い期間が長いデータを追い出す– 最新のものをキープする– 単純なユースケースに最適
LRU
• 最新 != ホット– 1000 のデータ、 200 のキャッシュ– 例えばバッチ処理で全データ一回舐めるだ
けでキャッシュがめちゃくちゃに• 一回だけたまたまアクセスされたエン
トリが長く生き残る• アクセスが偏るとホットなエントリが
消される
LIRS
• Low Inter-reference Recency set
• 二つの領域– LIR エリア – ホットなキー– HIR エリア – 最近のキー
• シンプルなアクセス履歴を保持– ホットなキーを長期保持
Distributed Execution Framework
• Distributed Executor
• MapReduce
Infinispan Query
• key-value ストアに格納した value に対する全文検索
• Hibernate Search を内部的に利用• Hibernate Search とほぼ同じ API
Hibernate OGM
• Object Grid Mapping
• JPA インタフェースで Grid からデータを取得
• Hibernate プロジェクト下で開発• Infinispan が最初にサポートされる
Grid
• 他の Grid にも対応予定
References
• Infinispan ユーザガイド– https://docs.jboss.org/author/display/ISPN/User+Guide
• JBoss World 2011– http://www.redhat.com/summit/2011/presentations/jbossworld/
• JUDCon 2011– http://www.jboss.org/events/JUDCon/presentations.html
Memory is the new disk, disk is the new tape.