Infinispan - Open Source Data Grid

  • 10,476 views
Uploaded on

A slide used for Okayama OpenLab Vol.19 …

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

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
10,476
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
27
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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