Upgrade to Pro — share decks privately, control downloads, hide ads and more …

In-memory Data Gridとは 何なのか?

Chihiro Ito
October 22, 2020

In-memory Data Gridとは 何なのか?

この資料では In-memory Data Grid がどのような製品なのかを簡単に紹介しています。

Chihiro Ito

October 22, 2020
Tweet

More Decks by Chihiro Ito

Other Decks in Technology

Transcript

  1. Copyright 2019 Red Hat K.K. • Key Value Store •

    複数のノードを跨いだ分散データストア • 高可用性や高性能など高い非機能要件にも対応可能 • Red Hat では Red Hat Data Grid(RHDG、旧JDG、旧JBoss Data Grid) In-memory Data Grid とは
  2. Copyright 2019 Red Hat K.K. システム In-memory Data Grid が解決できるよくある課題

    日々増加していくアクセスで データストアのスケールが 上限に達してしまう。また、 維持管理するコストが非常に 高価になってしまう。 データストアの障害や定期の メンテナンスにより、他の コンポーネントに問題がなく てもシステム全体が利用不可 となる。 データストアのデータ量が 増加することでネットワーク を流れるデータ量および データを使用するアプリケー ションが消費するメモリ量が 限界に達する。 アプリケーション DB DB スケール アップ (コスト増) アプリケーション DB 障害・メンテ アプリケーション DB データロード
  3. Copyright 2019 Red Hat K.K. In-memory Data Gridのよくある使われ方 耐障害性の データストア

    アプリケーション データストアの オフロード DB DG DB JDG or 拡張可能な データストア DG DG DG 追加 分散処理基盤 task アプリケーション task task 障害・メンテ アプリケーション
  4. Copyright 2019 Red Hat K.K. In-memory Data Gridの全体像 分散データ処理 分散データ管理

    クラスタ管理 DG アプリケーション DB DG DG キャッシュ バックエンド システム
  5. Copyright 2019 Red Hat K.K. 分散データ処理 DG アプリケーション DB DG

    DG キャッシュ バックエンド システム データ連携 データアクセス
  6. Copyright 2019 Red Hat K.K. 分散データ処理: データアクセスパターン アプリケーション キャッシュ キーを指定してアクセス:

    • get/put/remove/replace • getAll/putAll タスクを指定してアクセス: タスクはキャッシュ上で実行 される。 • タスク (キーも指定できる) • クエリー • ストリーム イベントに応じて処理: キャッシュ上のデータが 操作されたら通知する。 • リスナー アプリケーション キャッシュ アプリケーション キャッシュ task 1 2 3 1 Get 1 taskの結果 通知 1 2 3 1 2 3
  7. Copyright 2019 Red Hat K.K. 分散データ処理: バックエンドシステムとのデータ連係 キャッシュローダ アプリケーションがキャッシュ上のデータへアクセス する際に、指定したキーのデータがキャッシュ上に存

    在しなければ、キャッシュはバックエンドからデータ を取得を試みて、データがあればキャッシュ上に キャッシュし、データをアプリケーションへ返す。 キャッシュストア アプリケーションからキャッシュ上へデータを追加ま たは既にあるデータを更新時に、バックエンドに追加 または更新に該当する処理を行う。これを まとめることでバックエンドの負荷を低減できる。 アプリケーション キャッシュ 3 A B バックエンド システム 1 3 1 A B C 1.キー2を取得 2 2.キー2はキャッシュにない 3.キー2を取得 4.取得したデータを キャッシュ 2 C 1.キーCを更新 3.キーCを更新 2.キャッシュのデータを更新 キャッシュローダ キャッシュストア C C 2 DB
  8. Copyright 2019 Red Hat K.K. 分散データ管理 DG アプリケーション DB DG

    DG キャッシュ バックエンド システム ノードの変化と キャッシュ上のデータ データモデル
  9. Copyright 2019 Red Hat K.K. マシン1 マシン2 分散データ管理: 分散データモデル キャッシュ

    1 3 2 DG メモリ 3 1 DG メモリ 2 DG メモリ 2 3 DG メモリ 1 ディストリビューションキャッシュのデータの配置例 アプリケーションから見たキャッシュ 分散データモデル データの持ち方を表すモデル。 性能や可用性に違いがある。 どれを選んでもアプリケーションから の見え方は変わらない。 • ローカルキャッシュ • レプリケーションキャッシュ • ディストリビューションキャッシュ • インバリデーションキャッシュ
  10. Copyright 2019 Red Hat K.K. 分散データ管理: ノードの変化とキャッシュ上のデータ DG3 メモリ 3

    1 DG4 メモリ 2 DG2 メモリ 2 3 DG1 メモリ 1 障害前のキャッシュ上のデータの配置例 DG3 メモリ 3 1 DG2 メモリ 2 3 DG1 メモリ 1 2 DG4 メモリ 3 1 障害後のキャッシュ上のデータの配置例 障害 生きているノードからデータを複製し再配置 データ復旧 ディストリビューションキャッシュを選択している場 合、ノードの障害時に生存しているノードにあるデー タを使用してデータを復旧し、可用性を担保します。 データ再配置 ディストリビューションキャッシュの場合は、復旧後 も可用性を高めるためデータが再配置されます。再配 置はノード追加時にも行われ、性能および可用性のさ らなるスケールアウトが実現できます。
  11. Copyright 2019 Red Hat K.K. クラスタ管理 DG アプリケーション DB DG

    DG キャッシュ バックエンド システム 3つの障害検知 ノードの増減
  12. Copyright 2019 Red Hat K.K. クラスタ管理: ノードの増減 DG DG DG

    DG DG 追加 キャッシュ キャッシュ 離脱 縮小 拡張 拡張 ノードを追加することでキャッシュに割り当てるCPU のリソースとメモリのリソースが増加する。これによ りキャッシュが処理できるアクセス数や格納できる データ量が増加する。 縮小 障害やメンテナンスなどでノードが離脱しキャッシュ が縮小しても自動で減少を検知し正常な状態を保つ。
  13. Copyright 2019 Red Hat K.K. クラスタ管理: 3つの障害検知 マシン1 DG DG

    マシン2 DG DG マシン1 DG DG マシン2 DG DG マシン1 DG DG マシン2 DG DG プロセス死活監視: 定期的にハートビートを マルチキャストすることで プロセスの生存を確認する。 プロセス障害検知: メンバー間で作成されたTCP リングを使用して障害を検知 する。 ホスト監視: ICMP pingを使用してホストの クラッシュおよびハングを 検知する
  14. linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Red Hat is the world’s leading

    provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank You Q&A 15