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
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
• 登山
• 目標はココ
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 2
おしらせ
Apache Geodeのハンズオンやります!
3/14(火)19:00~
六本木ヒルズ森タワー20F
Pivotal Japan
• 一緒に運営していただける方
• スピーカーをお願いできる方
大募集中
ULS 3
Copyright © 2011-2013 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
インメモリーデータグリッドの選択肢
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 4
2007年
2017年
データグリッドの昔と今
(ex-GemFire)
(ex-GridGain)
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 5
たくさんあるのはありがたい
でも・・・
どれを使えば
いいんだろう?
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 6
今日、お話したいこと
In-Memory DataGrid
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 7
おことわり
本日、お話する内容は、あくまで個人の見解
です
ただし、Geode Meetupだからといって
Apache Geodeに有利になるような見方はし
ておりません
ULS 8
Copyright © 2011-2013 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
インメモリーデータグリッドの選択肢
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 9
サーバ
サーバ
サーバ
アプリケーションのスケールアウトは容易になったが、RDB
がボトルネックに
マイクロサービス時代では、ここがスケールしないときつい
良くあるシステムの課題
JVM
JVM
JVM
アプリケーション
アプリケーション
アプリケーション
RDB
スループット
だけでなくレ
イテンシーも
重要
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 10
そんなときに…
インメモリー
データグリッド
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 11
インメモリーデータグリッドに必要な3大要素+1
複数ノードのメモリーに
データを分散して保持していること
メモリー中のデータと
外部データストアとの連携が
シームレスにできること
メモリー中のデータへ
トランザクション処理ができること
①
②
③
メモリー中のデータに関するイベントが
容易にハンドリングできること
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 12
ということで…
3つの観点で、どれが良いのかを比較してみます!
ULS 13
Copyright © 2011-2013 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
ラウンド1
データの分散
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 14
データ分散?
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 15
データ分散とは…
クラスター全体を論理的に1つのまとまりとして見たとき、
データをどのノードのメモリーにもつか、ということ
データの特性によって分散スタイルを選ぶ必要があるため、
この選択肢が充足していることは重要
パーティションレプリケーション
すべてのマシンで同一のデータ
を保持する
何れかのマシンにデータが存在
する
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
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を組み合わせて
キャッシュを構成できる
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毎にまとまって
いた方がノード間通
信がなく、都合が良
い場合もある
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にとり
にいかない
といけない
…
ノードを跨
いでデータ
を取得しな
くて良い
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
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 21
ラウンド1:データの分散対決 結果発表
過去バージョンではできないものがあったが、現時点では大
きな差なし
ULS 22
Copyright © 2011-2013 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
ラウンド2
シームレスな外部データストア連携
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 23
シームレスな外部データストア連携とは…
全てのデータはメモリーにのりきらない
のりきらないデータは外部データストアとの連携が必要
外部データストア
との自動連携
データ
グリッド
RDB等
APPが意識するのは
メモリー上のデータ
だけ
 メモリー中のデータを参照して、データが
存在しない場合(キャッシュミス)は自動
的にメモリー上に読み込んでほしい
 メモリー中のデータを追加・変更した場合
は、自動的にデータストアに書き込んでほ
しい
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
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
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
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 27
これも、過去バージョンではできないものがあったが、現時
点では大きな差なし
 あえていうなら、各種データストア用のデフォルト実装が揃っているInfinispan
が使いやすいかもしれない
ラウンド2:外部データストア連携対決 結果発表
ULS 28
Copyright © 2011-2013 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by
ラウンド3
トランザクション
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 29
トランザクション
インメモリーデータグリッドを採用する場合、更新処理の高
速性、スケーラビリティを求めて採用するケースがある
ベースは、トランザクション不要なように設計すべきである
が、少なからずトランザクション処理が必要となるケースが
ある
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 楽観
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 31
トランザクション機能で選ぶなら、Ignite、Infinispanが出
来ることは多い
高速性を目指すときに必要かどうかは微妙なとこではあるが
ラウンド3:トランザクション対決 結果発表
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
ULS
Copyright © 2011-2017 UL Systems, Inc. All rights reserved.
Proprietary & Confidential Powered by 33
最後に
今回は、残念ながらGeodeだけ「出来ない」
がでちゃいました!
それでも、今後もGeodeを使い続けます!
別の観点の比較はまた別の機会にでも…

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

  • 1.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 2 おしらせ Apache Geodeのハンズオンやります! 3/14(火)19:00~ 六本木ヒルズ森タワー20F Pivotal Japan • 一緒に運営していただける方 • スピーカーをお願いできる方 大募集中
  • 4.
    ULS 3 Copyright ©2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by インメモリーデータグリッドの選択肢
  • 5.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 4 2007年 2017年 データグリッドの昔と今 (ex-GemFire) (ex-GridGain)
  • 6.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 5 たくさんあるのはありがたい でも・・・ どれを使えば いいんだろう?
  • 7.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 6 今日、お話したいこと In-Memory DataGrid
  • 8.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 7 おことわり 本日、お話する内容は、あくまで個人の見解 です ただし、Geode Meetupだからといって Apache Geodeに有利になるような見方はし ておりません
  • 9.
    ULS 8 Copyright ©2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by インメモリーデータグリッドの選択肢
  • 10.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 9 サーバ サーバ サーバ アプリケーションのスケールアウトは容易になったが、RDB がボトルネックに マイクロサービス時代では、ここがスケールしないときつい 良くあるシステムの課題 JVM JVM JVM アプリケーション アプリケーション アプリケーション RDB スループット だけでなくレ イテンシーも 重要
  • 11.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 10 そんなときに… インメモリー データグリッド
  • 12.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 11 インメモリーデータグリッドに必要な3大要素+1 複数ノードのメモリーに データを分散して保持していること メモリー中のデータと 外部データストアとの連携が シームレスにできること メモリー中のデータへ トランザクション処理ができること ① ② ③ メモリー中のデータに関するイベントが 容易にハンドリングできること
  • 13.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 12 ということで… 3つの観点で、どれが良いのかを比較してみます!
  • 14.
    ULS 13 Copyright ©2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by ラウンド1 データの分散
  • 15.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 14 データ分散?
  • 16.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 15 データ分散とは… クラスター全体を論理的に1つのまとまりとして見たとき、 データをどのノードのメモリーにもつか、ということ データの特性によって分散スタイルを選ぶ必要があるため、 この選択肢が充足していることは重要 パーティションレプリケーション すべてのマシンで同一のデータ を保持する 何れかのマシンにデータが存在 する
  • 17.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 21 ラウンド1:データの分散対決 結果発表 過去バージョンではできないものがあったが、現時点では大 きな差なし
  • 23.
    ULS 22 Copyright ©2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by ラウンド2 シームレスな外部データストア連携
  • 24.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 23 シームレスな外部データストア連携とは… 全てのデータはメモリーにのりきらない のりきらないデータは外部データストアとの連携が必要 外部データストア との自動連携 データ グリッド RDB等 APPが意識するのは メモリー上のデータ だけ  メモリー中のデータを参照して、データが 存在しない場合(キャッシュミス)は自動 的にメモリー上に読み込んでほしい  メモリー中のデータを追加・変更した場合 は、自動的にデータストアに書き込んでほ しい
  • 25.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 27 これも、過去バージョンではできないものがあったが、現時 点では大きな差なし  あえていうなら、各種データストア用のデフォルト実装が揃っているInfinispan が使いやすいかもしれない ラウンド2:外部データストア連携対決 結果発表
  • 29.
    ULS 28 Copyright ©2011-2013 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by ラウンド3 トランザクション
  • 30.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 29 トランザクション インメモリーデータグリッドを採用する場合、更新処理の高 速性、スケーラビリティを求めて採用するケースがある ベースは、トランザクション不要なように設計すべきである が、少なからずトランザクション処理が必要となるケースが ある
  • 31.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 31 トランザクション機能で選ぶなら、Ignite、Infinispanが出 来ることは多い 高速性を目指すときに必要かどうかは微妙なとこではあるが ラウンド3:トランザクション対決 結果発表
  • 33.
    ULS Copyright © 2011-2017UL 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.
    ULS Copyright © 2011-2017UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 33 最後に 今回は、残念ながらGeodeだけ「出来ない」 がでちゃいました! それでも、今後もGeodeを使い続けます! 別の観点の比較はまた別の機会にでも…