Transcript
Page 1: Infinispan - Open Source Data Grid

Infinispan

Open Source Data Grid

Red HatSenior Software Maintenance Engineer

Takayoshi Kimura

Page 2: Infinispan - Open Source Data Grid

Data Grid って?

• 複数のマシンに分散されている大量のデータに高速にアクセスできるミドルウェア

• 何ができるの?– 同上

Page 3: Infinispan - Open Source Data Grid

Infinispan とは

• JBoss で使われていたクラスタリングライブラリ JBoss Cache を起源とするデータグリッドソフトウェア

• JSR-107 JCache サポート• JSR-347 Data Grids for Java

– スペックリードは Infinispan の Manik Surtani

– Java EE 7 で JSR-347 が収録される可能性が高い

Page 4: Infinispan - Open Source Data Grid

ユースケース

• キャッシュとして利用する• 分散キャッシュとして利用する• クラスタリングライブラリとして利用

する• インメモリデータグリッドとして利用

する

Page 5: Infinispan - Open Source Data Grid

キャッシュ

• ConcurrentHashMap の代わりに– より高い並列性– 古いエントリを消す– 古いエントリをディスクや DB へ– イベントリスナサポート– トランザクション連携

Page 6: Infinispan - Open Source Data Grid

キャッシュ

• データベースのキャッシュ– Hibernate の 2nd level キャッシュ

• ビューのキャッシュ– Seam のビューフラグメントキャッシュ

• とにかく読み込むコストの高いデータに適用– Read-most が原則– そうではない場合逆に遅くなる可能性

Page 7: Infinispan - Open Source Data Grid

分散キャッシュ

• クラスタ対応キャッシュ– 使い方はローカルキャッシュと一緒– ローカルキャッシュでは複数 VM からは利

用できない– 例えば DB のキャッシュとして利用してい

て、別ノードが DB とキャッシュを更新したらどうする?

Page 8: Infinispan - Open Source Data Grid

クラスタリングライブラリ

• 「クラスタ対応」したいときに– 複数ノード間でのデータの共有– イベントリスナを利用して各ノードで処理

をトリガ• JBoss AS でも利用

Page 9: Infinispan - Open Source Data Grid

インメモリデータグリッド

• データの分散配置– コンシステントハッシュと仮想ノード– 遠隔地クラスタリレー、ディザスターリカ

バリ• データの分散処理

– Distributed Executor– MapReduce

Page 10: Infinispan - Open Source Data Grid

データ分散配置デモ

• https://github.com/nekop/infinispan-scala-swing-demo

Page 11: Infinispan - Open Source Data Grid

Eviction

• アクセスされないデータを追い出す– Passivation モードだとディスクなどに書

き出す– そうではない場合は消す

• キャッシュアルゴリズム– どのように「アクセスされない」を決定

するか– LRU, MRU, LFU, LIRS

Page 12: Infinispan - Open Source Data Grid

LRU

• Least Recently Used

• 最もアクセスが無い期間が長いデータを追い出す– 最新のものをキープする– 単純なユースケースに最適

Page 13: Infinispan - Open Source Data Grid

LRU

• 最新 != ホット– 1000 のデータ、 200 のキャッシュ– 例えばバッチ処理で全データ一回舐めるだ

けでキャッシュがめちゃくちゃに• 一回だけたまたまアクセスされたエン

トリが長く生き残る• アクセスが偏るとホットなエントリが

消される

Page 14: Infinispan - Open Source Data Grid

LIRS

• Low Inter-reference Recency set

• 二つの領域– LIR エリア – ホットなキー– HIR エリア – 最近のキー

• シンプルなアクセス履歴を保持– ホットなキーを長期保持

Page 15: Infinispan - Open Source Data Grid

Distributed Execution Framework

• Distributed Executor– DistributedCallable

• MapReduce– Mapper

– Reducer– Collator

Page 16: Infinispan - Open Source Data 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

Page 17: Infinispan - Open Source Data Grid

Top Related