Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

インメモリーデータグリッドの選択肢

5,543 views

Published on

Apache GEODE Meetup Tokyo #3 の資料です。

Published in: Technology
  • Sex in your area is here: ❤❤❤ http://bit.ly/2Qu6Caa ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❶❶❶ http://bit.ly/2Qu6Caa ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

インメモリーデータグリッドの選択肢

  1. 1. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by Apache GEODE Meetup Tokyo #3 インメモリーデータグリッドの選択肢 2017/2/16 ウルシステムズ株式会社 http://www.ulsystems.co.jp mailto:info@ulsystems.co.jp Tel: 03-6220-1420 Fax: 03-6220-1402
  2. 2. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 1 About Me 山河 征紀 Business Private • GEODE歴:9年(Since 2008) • GEODEバグ報告数:nnn 件 • マラソン • 横浜マラソン2016:4h17m • 目標は2017年度中のサブ4 • 登山 • 目標はココ
  3. 3. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 2 おしらせ Apache Geodeのハンズオンやります! 3/14(火)19:00~ 六本木ヒルズ森タワー20F Pivotal Japan • 一緒に運営していただける方 • スピーカーをお願いできる方 大募集中
  4. 4. ULS 3 Copyright © 2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by インメモリーデータグリッドの選択肢
  5. 5. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 4 2007年 2017年 データグリッドの昔と今 (ex-GemFire) (ex-GridGain)
  6. 6. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 5 たくさんあるのはありがたい でも・・・ どれを使えば いいんだろう?
  7. 7. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 6 今日、お話したいこと In-Memory DataGrid
  8. 8. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 7 おことわり 本日、お話する内容は、あくまで個人の見解 です ただし、Geode Meetupだからといって Apache Geodeに有利になるような見方はし ておりません
  9. 9. ULS 8 Copyright © 2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by インメモリーデータグリッドの選択肢
  10. 10. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 9 サーバ サーバ サーバ アプリケーションのスケールアウトは容易になったが、RDB がボトルネックに マイクロサービス時代では、ここがスケールしないときつい 良くあるシステムの課題 JVM JVM JVM アプリケーション アプリケーション アプリケーション RDB スループット だけでなくレ イテンシーも 重要
  11. 11. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 10 そんなときに… インメモリー データグリッド
  12. 12. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 11 インメモリーデータグリッドに必要な3大要素+1 複数ノードのメモリーに データを分散して保持していること メモリー中のデータと 外部データストアとの連携が シームレスにできること メモリー中のデータへ トランザクション処理ができること ① ② ③ メモリー中のデータに関するイベントが 容易にハンドリングできること
  13. 13. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 12 ということで… 3つの観点で、どれが良いのかを比較してみます!
  14. 14. ULS 13 Copyright © 2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by ラウンド1 データの分散
  15. 15. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 14 データ分散?
  16. 16. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 15 データ分散とは… クラスター全体を論理的に1つのまとまりとして見たとき、 データをどのノードのメモリーにもつか、ということ データの特性によって分散スタイルを選ぶ必要があるため、 この選択肢が充足していることは重要 パーティションレプリケーション すべてのマシンで同一のデータ を保持する 何れかのマシンにデータが存在 する
  17. 17. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 16 データの分散:比較結果(1) 呼び方は違えど、主要な分散スタイルに差はない レプリケーション パーティション Geode ○ Replicated ○ Partitioned Ignite ○ REPLICATED ○ PARTITIONED Hazelcast ○ ReplicatedMap ○ Map Infinispan ○ Replicated-cache ○ Distributed-cache Coherence ○ Replicated Cache ○ Partitioned Cache
  18. 18. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 17 データの分散:比較結果(2) 細かい部分では特色がある ただし、これらは「あったら嬉しい」というレベルのもの その他の分散スタイル 補足 Geode Local Preloaded Distributed non-replicated レプリケーションでは、書き込み 時のオプションが選べる (distributed-ack,distributed- no-ack,global) Ignite LOCAL Near Cache パーティションのバックアップを 全ノードで保持したものがレプリ ケーション、というコンセプト Hazelcast Near Cache レプリケーションでの書き込みは 結果整合性 KeyValue以外のデータ構造も選択 できる Infinispan Local mode cache Near Caching 機能やAPIは非常に多い Coherence Local Cache Near Cache Optimistic Cache 各種Schemeを組み合わせて キャッシュを構成できる
  19. 19. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 18 パーティションのデータ分散(1) パーティションに関しては、こんな風にデータを保持したい 時もある(カスタムパーティショニング) ノード#1 Order-1 User-A Order-3 User-B Order-5 User-A Order-7 User-A ノード#2 Order-2 User-B Order-4 User-A Order-6 User-A Key Value Key Value ノード#1 Order-1 User-A Order-5 User-A Order-7 User-A ノード#2 Order-2 User-B Order-4 User-A Order-6 User-A Key Value Key Value Order-3 User-B データは均等 に分散しいて いるが… 処理内容によっては User毎にまとまって いた方がノード間通 信がなく、都合が良 い場合もある
  20. 20. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 19 加えて、異なるデータの種類も同一ノードに配置したい時も ある(コロケーション) OrderUser パーティションのデータ分散(2) ノード#1 Order-1 User-A Order-4 User-A User-B User-B属性 Key Value OrderUser ノード#2 Order-2 User-B Order-3 User-B User-A User-A属性 Key Value OrderUser ノード#1 Order-1 User-A Order-4 User-A User-A User-A属性 Key Value OrderUser ノード#2 Order-2 User-B Order-3 User-B User-B User-B属性 Key Value User-Aの データがな いのでノー ド#2にとり にいかない といけない … ノードを跨 いでデータ を取得しな くて良い
  21. 21. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 20 パーティションのデータ分散:比較結果 こちらも差はなし カスタム パーティショニング コロケーション Geode ○ Partition Resolver ○ Co-Location Ignite ○ Affinity Collocation ○ Affinity Collocation Hazelcast ○ Partition AwareKey ○ Partition AwareKey Infinispan ○ Grouping API KeyAffinityService ○ Grouping API KeyAffinityService Coherence ○ KeyPartitioning Strategy ○ Key Association
  22. 22. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 21 ラウンド1:データの分散対決 結果発表 過去バージョンではできないものがあったが、現時点では大 きな差なし
  23. 23. ULS 22 Copyright © 2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by ラウンド2 シームレスな外部データストア連携
  24. 24. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 23 シームレスな外部データストア連携とは… 全てのデータはメモリーにのりきらない のりきらないデータは外部データストアとの連携が必要 外部データストア との自動連携 データ グリッド RDB等 APPが意識するのは メモリー上のデータ だけ  メモリー中のデータを参照して、データが 存在しない場合(キャッシュミス)は自動 的にメモリー上に読み込んでほしい  メモリー中のデータを追加・変更した場合 は、自動的にデータストアに書き込んでほ しい
  25. 25. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 24 キャッシュミスが発生した場合は、データストアよりデータ を読み取りメモリーに保持する リードスルー RDB等 データグリッド データグリッド 参照 (Read A) リード スル― リード スル― A B C D D D A A B B 参照 (Read B) APP APP
  26. 26. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 25 メモリー上のデータを更新した場合は、自動的にデータスト アに書き込む ライトスルー/ライトビハインド RDB等 データグリッド データグリッド 追加 (Write A) ライトスルー ライトビハインド (Insert) A B D D D A A B B 更新 (Write B) ライトスルー ライトビハインド (Update) APP APP
  27. 27. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 26 外部データストア連携:比較結果 出来ないものはなし リードスルー ライトスルー ライトビハインド Geode ○ Cache Loader ○ Cache Writer ○ Async Event Listener Ignite ○ Cache Store ○ Cache Store ○ Cache Store Hazelcast ○ Cache Loader ○ Map Store ○ Map Store Infinispan ○ Cache Loader ○ Cache Store ○ Cache Store Coherence ○ Cache Loader ○ Cache Store ○ Cache Store
  28. 28. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 27 これも、過去バージョンではできないものがあったが、現時 点では大きな差なし  あえていうなら、各種データストア用のデフォルト実装が揃っているInfinispan が使いやすいかもしれない ラウンド2:外部データストア連携対決 結果発表
  29. 29. ULS 28 Copyright © 2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by ラウンド3 トランザクション
  30. 30. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 29 トランザクション インメモリーデータグリッドを採用する場合、更新処理の高 速性、スケーラビリティを求めて採用するケースがある ベースは、トランザクション不要なように設計すべきである が、少なからずトランザクション処理が必要となるケースが ある
  31. 31. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 30 トランザクション:比較結果 Ignite、Infinispanが出来ることは多い トランザクション対象 分離レベル ロック 方式レプリケー ション パーティ ション MIX Geode ○ △ △ READ_COMMITED 楽観 Ignite ○ ○ ○ READ_COMMITED REPEATABLE_READ SERIALIZABLE 楽観 悲観 Hazelcast ○ ○ ○ READ_COMMITED 楽観 Infinispan ○ ○ ○ READ_COMMITTED REPEATABLE_READ 楽観 悲観 Coherence ○ ○ ○ READ_COMMITED 楽観
  32. 32. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 31 トランザクション機能で選ぶなら、Ignite、Infinispanが出 来ることは多い 高速性を目指すときに必要かどうかは微妙なとこではあるが ラウンド3:トランザクション対決 結果発表
  33. 33. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 32 まとめ インメモリーデータグリッド機能対決 結果 –RDBと同じようなトランザクション機能が必要ならIgnite やInfinispanを選んだ方が良い –GeodeとCoherenceは10年前から出来ないことがわかって いるが対応していないので、おそらく今後も対応されない –それ以外は以前は差があったが、現時点では大差なし ラウンド 結果 1. データ分散 DRAW(差なし) 2. 外部データストア連携 DRAW(差なし) 3. トランザクション 1. Apache Ignite 2. Infinispan
  34. 34. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 33 最後に 今回は、残念ながらGeodeだけ「出来ない」 がでちゃいました! それでも、今後もGeodeを使い続けます! 別の観点の比較はまた別の機会にでも…

×