Infinispan - Open Source Data Grid

11,675 views

Published on

A slide used for Okayama OpenLab Vol.19

http://openlab.okaya.ma/wiki.cgi?page=%CA%D9%B6%AF%B2%F1%2F%C2%E8019%B2%F3

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
11,675
On SlideShare
0
From Embeds
0
Number of Embeds
50
Actions
Shares
0
Downloads
31
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Infinispan - Open Source Data Grid

  1. 1. InfinispanOpen Source Data Grid Red Hat Senior Software Maintenance Engineer Takayoshi Kimura
  2. 2. Data Grid って?• 複数のマシンに分散されている大量の データに高速にアクセスできるミドル ウェア• 何ができるの? – 同上
  3. 3. Infinispan とは• JBoss で使われていたクラスタリング ライブラリ JBoss Cache を起源とする データグリッドソフトウェア• JSR-107 JCache サポート• JSR-347 Data Grids for Java – スペックリードは Infinispan の Manik Surtani – Java EE 7 で JSR-347 が収録される可能 性が高い
  4. 4. ユースケース• キャッシュとして利用する• 分散キャッシュとして利用する• クラスタリングライブラリとして利用 する• インメモリデータグリッドとして利用 する
  5. 5. キャッシュ• ConcurrentHashMap の代わりに – より高い並列性 – 古いエントリを消す – 古いエントリをディスクや DB へ – イベントリスナサポート – トランザクション連携
  6. 6. キャッシュ• データベースのキャッシュ – Hibernate の 2nd level キャッシュ• ビューのキャッシュ – Seam のビューフラグメントキャッシュ• とにかく読み込むコストの高いデータ に適用 – Read-most が原則 – そうではない場合逆に遅くなる可能性
  7. 7. 分散キャッシュ• クラスタ対応キャッシュ – 使い方はローカルキャッシュと一緒 – ローカルキャッシュでは複数 VM からは利 用できない – 例えば DB のキャッシュとして利用してい て、別ノードが DB とキャッシュを更新し たらどうする?
  8. 8. クラスタリングライブラリ• 「クラスタ対応」したいときに – 複数ノード間でのデータの共有 – イベントリスナを利用して各ノードで処理 をトリガ• JBoss AS でも利用
  9. 9. インメモリデータグリッド• データの分散配置 – コンシステントハッシュと仮想ノード – 遠隔地クラスタリレー、ディザスターリカ バリ• データの分散処理 – Distributed Executor – MapReduce
  10. 10. データ分散配置デモ• https://github.com/nekop/infinispan-scala-swing-demo
  11. 11. Eviction• アクセスされないデータを追い出す – Passivation モードだとディスクなどに書 き出す – そうではない場合は消す• キャッシュアルゴリズム – どのように「アクセスされない」を決定 するか – LRU, MRU, LFU, LIRS
  12. 12. LRU• Least Recently Used• 最もアクセスが無い期間が長いデータ を追い出す – 最新のものをキープする – 単純なユースケースに最適
  13. 13. LRU• 最新 != ホット – 1000 のデータ、 200 のキャッシュ – 例えばバッチ処理で全データ一回舐めるだ けでキャッシュがめちゃくちゃに• 一回だけたまたまアクセスされたエン トリが長く生き残る• アクセスが偏るとホットなエントリが 消される
  14. 14. LIRS• Low Inter-reference Recency set• 二つの領域 – LIR エリア – ホットなキー – HIR エリア – 最近のキー• シンプルなアクセス履歴を保持 – ホットなキーを長期保持
  15. 15. Distributed Execution Framework• Distributed Executor – DistributedCallable• MapReduce – Mapper – Reducer – Collator
  16. 16. 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

×