Infinispan - Open Source Data Grid rev2

1,385 views

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,385
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
20
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Infinispan - Open Source Data Grid rev2

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

×