SlideShare a Scribd company logo
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode で始める
Spring Data Gemfire
Pivotal ジャパン株式会社 テクニカルサポートエンジニア 北田 顕啓
@quitada
2
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
アジェンダ
 Apache Geode とは?
 Spring Data Gemfire とは?
 Apache Geode で Spring Data Gemfire を使う
 最後に…
3
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode とは?
4
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode とは?
 Pivotal 社のインメモリデータグリッド製品、Pivotal GemFire のオープンソース版
• 2016 年 3 月現在、Apache Geode と Pivotal GemFire の差は C#/C++ クライアン
トモジュール(Native Client、後述)の有無のみ
 インメモリデータグリッド製品 Pivotal GemFire とは?*
• スケールアウトする豪華な HashMap に対して…
• SQL ライクなオブジェクトクエリーとか、コンティニュアスクエリー(後述)とかできます
• データをディスクに永続化とかできます→NoSQL サーバーとしての側面
• MapReduce 的な処理ができます(ファンクション)
• 柔軟な構成がとれます〜peer-to-peer、Client-Server(後述)、WAN Gateway
• 同期&非同期イベント処理(後述)ができます
• 様々なアクセス手段を提供します(独自 API、Memcached、REST API) *= 個人の感想です
5
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Pivotal GemFire の構成例〜Client-Server 構成
 GemFire のキャッシュを専用サーバーとして
起動、データやイベント処理をクライアントより
行う→Geode も同様の構成が可能
 用語
• メンバー:データ格納プロセス
• キャッシュ:データ格納先
• 分散システム:クラスターのこと
• リージョン:データ格納テーブル
• キャッシュサーバー:データサーバー
• プール:サーバーへの接続プール
分散システム
キャッシュ
リージョン
リージョン
キャッシュサーバー
キャッシュ
リージョン
リージョン
キャッシュサーバー
キャッシュ
リージョン
リージョン
キャッシュサーバー
メンバー群
Java
クライアント
C#
クライアント
C++
クライアント
プール プール プール
REST
クライアント
Memcached
クライアント
Native Client
(Geode にはない)
6
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode の特徴的な機能〜イベント処理
 Geode の各種処理に伴いイベントが発生
• RegionEvent、EntryEvent、TransactionEvent、CqEvent、GatewayEvent…
 サブスクリプションによるイベントメッセージ受信設定
• インタレストの登録による受信イベントフィルタリング
• クライアントは受信イベント種別を細かく設定可能
 低レイテンシ(ミリ秒以下)
 受信イベントに応じた処理駆動〜 **Listener
 高可用性・耐障害性
Geode 1 Geode n
…
インタレスト登録
7
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode の特徴的な機能〜コンティニュアスクエリー(CQ)
 サーバーサイドイベントをオブジェクト
クエリーで直接フィルタリングを行い、
クライアントで選択的に受信
 クエリーはサーバーサイドに配備され、
データ更新の度に評価され、条件を満たす
イベントのみクライアントに送信
 クライアントでイベント受信時に
CQListener が駆動され、各種関連
ロジックの実行が可能
Geode キャッシュサーバー
リージョン
Geode クライアント
ローカル
キャッシュ
データ更新
対象リージョンにおいて、
クエリーにヒットする
データが更新
CQ リスナーに CQ
イベントを送信
プール
SELECT * FROM /Stock
WHERE ticker = ‘GPV’ and price > 20
8
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
<client-cache …>
<pool name=”myPool" subscription-enabled="true">
<locator host="172.16.227.2" port="55221"/>
</pool>
<region name=“myRegion" refid="CACHING_PROXY">
<region-attributes pool-name=”myPool">
<cache-listener>
<class-name>io.pivotal.akitada.SimpleCacheListener</class-name>
</cache-listener>
</region-attributes>
</region>
</client-cache>
Apache Geode でクライアントプログラミング
 ソースコード
 キャッシュ設定ファイル(client-cache.xml)
ClientCache cache = new ClientCacheFactory()
.set("cache-xml-file", "client-cache.xml")
.create();
Region<String, String> region = cache.getRegion(“myRegion");
region.put(“key1”, “value1”);
クライアントキャッシュ生成
(サーバーアクセスのために
必要)
アクセス先のリージョン取得
生成プール情報
(分散システム接続情報)
リージョン情報
(プール名指定、
キャッシュリスナー付与)
データ put
9
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
(参考) SnppyData〜もう一つの GemFire オープンソース製品
 2016 年 1 月に、Pivotal からスピンアウトした
SnappyData 社よりリリース
 Pivotal GemFire をベースに、HDFS データストア連携、
SQL インターフェース、Spark、AQP(Approximate
Query Processing)技術を実装した、OLAP + OLTP
基盤
 2016 年 3 月現在、v0.1 preview バージョンがリリース
済み
 URL: http://www.snappydata.com
10
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Demo
Unless otherwise indicated, these slides are
© 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license:
http://creativecommons.org/licenses/by-nc/3.0/
gfsh による
Geode 分散
システムの起動、
データ操作
Apache Geode
11
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Data Gemfire とは?
12
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Data Gemfire とは?(1/2)
 Spring Data とは?
• あらゆるデータソースに対して Spring フレームワークベースの一貫した容易な
アクセス手段を提供
 Spring Data Gemfire は Spring Data の “umbrella project”
• Spring による GemFire リソースの生成・設定を行う XML ネームスペースのサ
ポート
• GemFire の Spring Data Repositories による抽象化
• アノテーションベースのファンクション実行
• インタレスト登録、コンティニュアス・クエリーの xml 設定
サポート
• Spring Data GemFire 1.7 より、Apache Geode サポート
13
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Data Gemfire によるコーディング例(1/2)
 再掲) Geode API を用いたクライアント実装
ClientCache cache = new ClientCacheFactory()
.set("cache-xml-file", "client-cache.xml")
.create();
Region<String, String> region = cache.getRegion(“myRegion");
region.put(“key1”, “value1”);
<client-cache …>
<pool name=”myPool" subscription-enabled="true">
<locator host="172.16.227.2" port="55221"/>
</pool>
<region name=“myRegion" refid="CACHING_PROXY">
<region-attributes pool-name=”myPool">
<cache-listener>
<class-name>io.pivotal.akitada.SimpleCacheListener</class-name>
</cache-listener>
</region-attributes>
</region>
</client-cache>
ソースコード
キャッシュ
設定ファイル
14
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Data Gemfire によるコーディング例(2/2)
 Spring Data Gemfire を用いたクライアント実装
ApplicationContext context= new ClassPathXmlApplicationContext("META-INF/path-to/cache-config.xml");
Region<String,String> region = context.getBean(Region.class);
region.put("key1", "value1");
<beans ...>
<gfe-data:datasource subscription-enabled="true">
<gfe-data:locator host="172.16.9.1" port="55221" />
</gfe-data:datasource>
<gfe:client-region id="myRegion” shortcut="CACHING_PROXY">
<gfe:cache-listener>
<bean class="io.pivotal.akitada.SimpleCacheListener" />
</gfe:cache-listener>
</gfe:client-region>
</beans>
ソースコード
キャッシュ
設定ファイル
15
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode で
Spring Data Gemfire を使う
16
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
STS を使って Apache Geode + Spring Data Gemfire でアプリ開発
 STS とは? = Spring Tool Suite
• Java IDE Eclipse ベースの Spring
アプリケーション開発ツールスイート
• http://spring.io/tools
• 豊富な Spring プロジェクトテンプレート
• すぐに Spring ベースの開発が始められる
• Spring Data GemFire のプロジェクト
テンプレートも用意
• 無償提供
• Pivotal による有償サポートも提供(Spring Enterprise Support)
17
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode + Spring Data Gemfire プロジェクトの作成
 STS で Spring Data Gemfire プロジェクトを作成
• File > New > Spring Legacy Project にてダイアログ表示
• Templates: にて GemFire テンプレートから何か選択(例えば、Spring Data
GemFire Client Project)
• Maven プロジェクトを作成
 pom.xml の編集
<properties>
<spring.data.gemfire.version>1.7.4.RELEASE</spring.data.gemfire.version>
:
<dependencies>
<dependency>
<groupId>org.apache.geode</groupId>
<artifactId>gemfire-core</artifactId>
<version>1.0.0-incubating.M1</version>
</dependency>
最新版 Spring Data Gemfire
のバージョンを指定
dependencies の先頭
(Spring Data GemFire よりも
前)に、Geode の
dependency を追加
18
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Demo
Unless otherwise indicated, these slides are
© 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license:
http://creativecommons.org/licenses/by-nc/3.0/
Spring Data
Gemfire をちょっ
と使った
CacheListener の
デモ
Apache Geode + Spring Data Gemfire
19
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
最後に…
20
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
今日のまとめとやり残したこと
 今日のまとめ
• Apache Geode の概要紹介
• Spring Data Gemfire の概要紹介
• Apache Geode + Spring Data
Gemfire によるアプリケーション開発
事始め
 やり残したこと
• Apache Geode と Apache Ignite の
比較
• JavaConfig を使ったキャッシュの設定
• アノテーションを使った Spring 的なプ
ログラミングの探求
21
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode / Spring Data Gemfire – 技術情報
 Spring Data Gemfire supports Apache Geode
• https://spring.io/blog/2015/06/12/spring-data-gemfire-supports-apache-geode
 GitHub – spring-projects/spring-gemfire-examples: サンプルコード
• https://github.com/spring-projects/spring-gemfire-examples
 Apache Geode: プロジェクトホーム
• http://geode.incubator.apache.org/
 Spring Data Gemfire: プロジェクトホーム
• http://projects.spring.io/spring-data-gemfire/
 今回使用したデモ用アプリケーションプロジェクト一式
• https://github.com/AkihiroKitada/MySpringDataGemfireSamples

More Related Content

What's hot

これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
Nobuyuki Sasaki
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
kazuhcurry
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
NTT DATA Technology & Innovation
 
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
Insight Technology, Inc.
 
20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstrom20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstrom
Kohei KaiGai
 
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
Kohei KaiGai
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw
Kohei KaiGai
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
Ryusuke Kajiyama
 
20180217 FPGA Extreme Computing #10
20180217 FPGA Extreme Computing #1020180217 FPGA Extreme Computing #10
20180217 FPGA Extreme Computing #10
Kohei KaiGai
 
Data Scientists Love SQL Server
Data Scientists Love SQL ServerData Scientists Love SQL Server
Data Scientists Love SQL Server
Tomoyuki Oota
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
Taro Matsuzawa
 
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
Insight Technology, Inc.
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
NTT DATA Technology & Innovation
 
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
Takeshi Kuramochi
 
OSC.Cloud 2012 分散システムを支えるメッセージングの仕組み
OSC.Cloud 2012 分散システムを支えるメッセージングの仕組みOSC.Cloud 2012 分散システムを支えるメッセージングの仕組み
OSC.Cloud 2012 分散システムを支えるメッセージングの仕組みirix_jp
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
NTT DATA Technology & Innovation
 
CloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/SwiftCloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/Swiftirix_jp
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
 

What's hot (20)

これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみようこれからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
 
20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstrom20171220_hbstudy80_pgstrom
20171220_hbstudy80_pgstrom
 
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw
 
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
[中国地方DB勉強会] 第22回 Webアプリ開発をデータベース側から変革していく - MySQL 8.0新機能
 
20180217 FPGA Extreme Computing #10
20180217 FPGA Extreme Computing #1020180217 FPGA Extreme Computing #10
20180217 FPGA Extreme Computing #10
 
Data Scientists Love SQL Server
Data Scientists Love SQL ServerData Scientists Love SQL Server
Data Scientists Love SQL Server
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
 
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
 
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
OpenStack を 拡張する NetApp Unified Driver の使い方 Vol.001
 
OSC.Cloud 2012 分散システムを支えるメッセージングの仕組み
OSC.Cloud 2012 分散システムを支えるメッセージングの仕組みOSC.Cloud 2012 分散システムを支えるメッセージングの仕組み
OSC.Cloud 2012 分散システムを支えるメッセージングの仕組み
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
 
CloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/SwiftCloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/Swift
 
PostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめPostgreSQLによるデータ分析ことはじめ
PostgreSQLによるデータ分析ことはじめ
 

Similar to Apache Geode で始める Spring Data Gemfire

Heroku java
Heroku javaHeroku java
Heroku java
Kazuyuki Kawamura
 
Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platform
Toru Yamaguchi
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure Functions
Keiji Kamebuchi
 
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
NTT DATA Technology & Innovation
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
Akira Inoue
 
Cloud9で試すAWS IoT Greengrass V2
Cloud9で試すAWS IoT Greengrass V2Cloud9で試すAWS IoT Greengrass V2
Cloud9で試すAWS IoT Greengrass V2
Jun Ichikawa
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Takashi Kanai
 
多要素認証による Amazon WorkSpaces の利用
多要素認証による Amazon WorkSpaces の利用多要素認証による Amazon WorkSpaces の利用
多要素認証による Amazon WorkSpaces の利用
Amazon Web Services Japan
 
Pycon2014 django performance
Pycon2014 django performancePycon2014 django performance
Pycon2014 django performance
hirokiky
 
Firefox5+HTML5×5
Firefox5+HTML5×5Firefox5+HTML5×5
Firefox5+HTML5×5
dynamis
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
NTT DATA Technology & Innovation
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイKazuhiro Hara
 
Long Life Web Performance Optimization
Long Life Web Performance OptimizationLong Life Web Performance Optimization
Long Life Web Performance OptimizationKoji Ishimoto
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
Toshiaki Maki
 
Introduction to New CloudWatch Agent
Introduction to New CloudWatch AgentIntroduction to New CloudWatch Agent
Introduction to New CloudWatch Agent
Noritaka Sekiyama
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
 
Chrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターンChrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターン
Yoichiro Tanaka
 
Microsoft Graph API Library for Go
Microsoft Graph API Library for GoMicrosoft Graph API Library for Go
Microsoft Graph API Library for Go
yaegashi
 
Android勉強会 1
Android勉強会 1Android勉強会 1
Android勉強会 1
shotaueda3
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Hironao Sekine
 

Similar to Apache Geode で始める Spring Data Gemfire (20)

Heroku java
Heroku javaHeroku java
Heroku java
 
Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platform
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure Functions
 
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
Cloud9で試すAWS IoT Greengrass V2
Cloud9で試すAWS IoT Greengrass V2Cloud9で試すAWS IoT Greengrass V2
Cloud9で試すAWS IoT Greengrass V2
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタ
 
多要素認証による Amazon WorkSpaces の利用
多要素認証による Amazon WorkSpaces の利用多要素認証による Amazon WorkSpaces の利用
多要素認証による Amazon WorkSpaces の利用
 
Pycon2014 django performance
Pycon2014 django performancePycon2014 django performance
Pycon2014 django performance
 
Firefox5+HTML5×5
Firefox5+HTML5×5Firefox5+HTML5×5
Firefox5+HTML5×5
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
 
Long Life Web Performance Optimization
Long Life Web Performance OptimizationLong Life Web Performance Optimization
Long Life Web Performance Optimization
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 
Introduction to New CloudWatch Agent
Introduction to New CloudWatch AgentIntroduction to New CloudWatch Agent
Introduction to New CloudWatch Agent
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
Chrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターンChrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターン
 
Microsoft Graph API Library for Go
Microsoft Graph API Library for GoMicrosoft Graph API Library for Go
Microsoft Graph API Library for Go
 
Android勉強会 1
Android勉強会 1Android勉強会 1
Android勉強会 1
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発
 

More from Akihiro Kitada

How to configure the cluster based on Multi-site (WAN) configuration
How to configure the clusterbased on Multi-site (WAN) configurationHow to configure the clusterbased on Multi-site (WAN) configuration
How to configure the cluster based on Multi-site (WAN) configuration
Akihiro Kitada
 
Reactive Streams に基づく非同期処理プログラミング 〜 Reactor を使ってみた
Reactive Streams に基づく非同期処理プログラミング 〜 Reactor を使ってみたReactive Streams に基づく非同期処理プログラミング 〜 Reactor を使ってみた
Reactive Streams に基づく非同期処理プログラミング 〜 Reactor を使ってみた
Akihiro Kitada
 
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
Akihiro Kitada
 
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
Akihiro Kitada
 
Apache Geode の Apache Lucene Integration を試してみた
Apache Geode の Apache Lucene Integration を試してみたApache Geode の Apache Lucene Integration を試してみた
Apache Geode の Apache Lucene Integration を試してみた
Akihiro Kitada
 
Apache Calcite の Apache Geode Adapter を弄った
Apache Calcite の Apache Geode Adapter を弄ったApache Calcite の Apache Geode Adapter を弄った
Apache Calcite の Apache Geode Adapter を弄った
Akihiro Kitada
 
Grafana を使った Apache Geode クラスター監視
Grafana を使った Apache Geode クラスター監視Grafana を使った Apache Geode クラスター監視
Grafana を使った Apache Geode クラスター監視
Akihiro Kitada
 
〜Apache Geode 入門 Multi-site(WAN)構成による クラスター連携
〜Apache Geode 入門 Multi-site(WAN)構成によるクラスター連携〜Apache Geode 入門 Multi-site(WAN)構成によるクラスター連携
〜Apache Geode 入門 Multi-site(WAN)構成による クラスター連携
Akihiro Kitada
 
My first reactive programming - To deliver a deathblow “Shoryuken” with using...
My first reactive programming - To deliver a deathblow “Shoryuken” with using...My first reactive programming - To deliver a deathblow “Shoryuken” with using...
My first reactive programming - To deliver a deathblow “Shoryuken” with using...
Akihiro Kitada
 
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
Akihiro Kitada
 
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
Akihiro Kitada
 

More from Akihiro Kitada (11)

How to configure the cluster based on Multi-site (WAN) configuration
How to configure the clusterbased on Multi-site (WAN) configurationHow to configure the clusterbased on Multi-site (WAN) configuration
How to configure the cluster based on Multi-site (WAN) configuration
 
Reactive Streams に基づく非同期処理プログラミング 〜 Reactor を使ってみた
Reactive Streams に基づく非同期処理プログラミング 〜 Reactor を使ってみたReactive Streams に基づく非同期処理プログラミング 〜 Reactor を使ってみた
Reactive Streams に基づく非同期処理プログラミング 〜 Reactor を使ってみた
 
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
 
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
 
Apache Geode の Apache Lucene Integration を試してみた
Apache Geode の Apache Lucene Integration を試してみたApache Geode の Apache Lucene Integration を試してみた
Apache Geode の Apache Lucene Integration を試してみた
 
Apache Calcite の Apache Geode Adapter を弄った
Apache Calcite の Apache Geode Adapter を弄ったApache Calcite の Apache Geode Adapter を弄った
Apache Calcite の Apache Geode Adapter を弄った
 
Grafana を使った Apache Geode クラスター監視
Grafana を使った Apache Geode クラスター監視Grafana を使った Apache Geode クラスター監視
Grafana を使った Apache Geode クラスター監視
 
〜Apache Geode 入門 Multi-site(WAN)構成による クラスター連携
〜Apache Geode 入門 Multi-site(WAN)構成によるクラスター連携〜Apache Geode 入門 Multi-site(WAN)構成によるクラスター連携
〜Apache Geode 入門 Multi-site(WAN)構成による クラスター連携
 
My first reactive programming - To deliver a deathblow “Shoryuken” with using...
My first reactive programming - To deliver a deathblow “Shoryuken” with using...My first reactive programming - To deliver a deathblow “Shoryuken” with using...
My first reactive programming - To deliver a deathblow “Shoryuken” with using...
 
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
【古いスライド】〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
 
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
 

Apache Geode で始める Spring Data Gemfire

  • 1. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode で始める Spring Data Gemfire Pivotal ジャパン株式会社 テクニカルサポートエンジニア 北田 顕啓 @quitada
  • 2. 2 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ アジェンダ  Apache Geode とは?  Spring Data Gemfire とは?  Apache Geode で Spring Data Gemfire を使う  最後に…
  • 3. 3 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode とは?
  • 4. 4 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode とは?  Pivotal 社のインメモリデータグリッド製品、Pivotal GemFire のオープンソース版 • 2016 年 3 月現在、Apache Geode と Pivotal GemFire の差は C#/C++ クライアン トモジュール(Native Client、後述)の有無のみ  インメモリデータグリッド製品 Pivotal GemFire とは?* • スケールアウトする豪華な HashMap に対して… • SQL ライクなオブジェクトクエリーとか、コンティニュアスクエリー(後述)とかできます • データをディスクに永続化とかできます→NoSQL サーバーとしての側面 • MapReduce 的な処理ができます(ファンクション) • 柔軟な構成がとれます〜peer-to-peer、Client-Server(後述)、WAN Gateway • 同期&非同期イベント処理(後述)ができます • 様々なアクセス手段を提供します(独自 API、Memcached、REST API) *= 個人の感想です
  • 5. 5 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Pivotal GemFire の構成例〜Client-Server 構成  GemFire のキャッシュを専用サーバーとして 起動、データやイベント処理をクライアントより 行う→Geode も同様の構成が可能  用語 • メンバー:データ格納プロセス • キャッシュ:データ格納先 • 分散システム:クラスターのこと • リージョン:データ格納テーブル • キャッシュサーバー:データサーバー • プール:サーバーへの接続プール 分散システム キャッシュ リージョン リージョン キャッシュサーバー キャッシュ リージョン リージョン キャッシュサーバー キャッシュ リージョン リージョン キャッシュサーバー メンバー群 Java クライアント C# クライアント C++ クライアント プール プール プール REST クライアント Memcached クライアント Native Client (Geode にはない)
  • 6. 6 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode の特徴的な機能〜イベント処理  Geode の各種処理に伴いイベントが発生 • RegionEvent、EntryEvent、TransactionEvent、CqEvent、GatewayEvent…  サブスクリプションによるイベントメッセージ受信設定 • インタレストの登録による受信イベントフィルタリング • クライアントは受信イベント種別を細かく設定可能  低レイテンシ(ミリ秒以下)  受信イベントに応じた処理駆動〜 **Listener  高可用性・耐障害性 Geode 1 Geode n … インタレスト登録
  • 7. 7 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode の特徴的な機能〜コンティニュアスクエリー(CQ)  サーバーサイドイベントをオブジェクト クエリーで直接フィルタリングを行い、 クライアントで選択的に受信  クエリーはサーバーサイドに配備され、 データ更新の度に評価され、条件を満たす イベントのみクライアントに送信  クライアントでイベント受信時に CQListener が駆動され、各種関連 ロジックの実行が可能 Geode キャッシュサーバー リージョン Geode クライアント ローカル キャッシュ データ更新 対象リージョンにおいて、 クエリーにヒットする データが更新 CQ リスナーに CQ イベントを送信 プール SELECT * FROM /Stock WHERE ticker = ‘GPV’ and price > 20
  • 8. 8 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ <client-cache …> <pool name=”myPool" subscription-enabled="true"> <locator host="172.16.227.2" port="55221"/> </pool> <region name=“myRegion" refid="CACHING_PROXY"> <region-attributes pool-name=”myPool"> <cache-listener> <class-name>io.pivotal.akitada.SimpleCacheListener</class-name> </cache-listener> </region-attributes> </region> </client-cache> Apache Geode でクライアントプログラミング  ソースコード  キャッシュ設定ファイル(client-cache.xml) ClientCache cache = new ClientCacheFactory() .set("cache-xml-file", "client-cache.xml") .create(); Region<String, String> region = cache.getRegion(“myRegion"); region.put(“key1”, “value1”); クライアントキャッシュ生成 (サーバーアクセスのために 必要) アクセス先のリージョン取得 生成プール情報 (分散システム接続情報) リージョン情報 (プール名指定、 キャッシュリスナー付与) データ put
  • 9. 9 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ (参考) SnppyData〜もう一つの GemFire オープンソース製品  2016 年 1 月に、Pivotal からスピンアウトした SnappyData 社よりリリース  Pivotal GemFire をベースに、HDFS データストア連携、 SQL インターフェース、Spark、AQP(Approximate Query Processing)技術を実装した、OLAP + OLTP 基盤  2016 年 3 月現在、v0.1 preview バージョンがリリース 済み  URL: http://www.snappydata.com
  • 10. 10 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Demo Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ gfsh による Geode 分散 システムの起動、 データ操作 Apache Geode
  • 11. 11 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data Gemfire とは?
  • 12. 12 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data Gemfire とは?(1/2)  Spring Data とは? • あらゆるデータソースに対して Spring フレームワークベースの一貫した容易な アクセス手段を提供  Spring Data Gemfire は Spring Data の “umbrella project” • Spring による GemFire リソースの生成・設定を行う XML ネームスペースのサ ポート • GemFire の Spring Data Repositories による抽象化 • アノテーションベースのファンクション実行 • インタレスト登録、コンティニュアス・クエリーの xml 設定 サポート • Spring Data GemFire 1.7 より、Apache Geode サポート
  • 13. 13 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data Gemfire によるコーディング例(1/2)  再掲) Geode API を用いたクライアント実装 ClientCache cache = new ClientCacheFactory() .set("cache-xml-file", "client-cache.xml") .create(); Region<String, String> region = cache.getRegion(“myRegion"); region.put(“key1”, “value1”); <client-cache …> <pool name=”myPool" subscription-enabled="true"> <locator host="172.16.227.2" port="55221"/> </pool> <region name=“myRegion" refid="CACHING_PROXY"> <region-attributes pool-name=”myPool"> <cache-listener> <class-name>io.pivotal.akitada.SimpleCacheListener</class-name> </cache-listener> </region-attributes> </region> </client-cache> ソースコード キャッシュ 設定ファイル
  • 14. 14 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data Gemfire によるコーディング例(2/2)  Spring Data Gemfire を用いたクライアント実装 ApplicationContext context= new ClassPathXmlApplicationContext("META-INF/path-to/cache-config.xml"); Region<String,String> region = context.getBean(Region.class); region.put("key1", "value1"); <beans ...> <gfe-data:datasource subscription-enabled="true"> <gfe-data:locator host="172.16.9.1" port="55221" /> </gfe-data:datasource> <gfe:client-region id="myRegion” shortcut="CACHING_PROXY"> <gfe:cache-listener> <bean class="io.pivotal.akitada.SimpleCacheListener" /> </gfe:cache-listener> </gfe:client-region> </beans> ソースコード キャッシュ 設定ファイル
  • 15. 15 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode で Spring Data Gemfire を使う
  • 16. 16 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ STS を使って Apache Geode + Spring Data Gemfire でアプリ開発  STS とは? = Spring Tool Suite • Java IDE Eclipse ベースの Spring アプリケーション開発ツールスイート • http://spring.io/tools • 豊富な Spring プロジェクトテンプレート • すぐに Spring ベースの開発が始められる • Spring Data GemFire のプロジェクト テンプレートも用意 • 無償提供 • Pivotal による有償サポートも提供(Spring Enterprise Support)
  • 17. 17 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode + Spring Data Gemfire プロジェクトの作成  STS で Spring Data Gemfire プロジェクトを作成 • File > New > Spring Legacy Project にてダイアログ表示 • Templates: にて GemFire テンプレートから何か選択(例えば、Spring Data GemFire Client Project) • Maven プロジェクトを作成  pom.xml の編集 <properties> <spring.data.gemfire.version>1.7.4.RELEASE</spring.data.gemfire.version> : <dependencies> <dependency> <groupId>org.apache.geode</groupId> <artifactId>gemfire-core</artifactId> <version>1.0.0-incubating.M1</version> </dependency> 最新版 Spring Data Gemfire のバージョンを指定 dependencies の先頭 (Spring Data GemFire よりも 前)に、Geode の dependency を追加
  • 18. 18 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Demo Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data Gemfire をちょっ と使った CacheListener の デモ Apache Geode + Spring Data Gemfire
  • 19. 19 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 最後に…
  • 20. 20 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 今日のまとめとやり残したこと  今日のまとめ • Apache Geode の概要紹介 • Spring Data Gemfire の概要紹介 • Apache Geode + Spring Data Gemfire によるアプリケーション開発 事始め  やり残したこと • Apache Geode と Apache Ignite の 比較 • JavaConfig を使ったキャッシュの設定 • アノテーションを使った Spring 的なプ ログラミングの探求
  • 21. 21 Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode / Spring Data Gemfire – 技術情報  Spring Data Gemfire supports Apache Geode • https://spring.io/blog/2015/06/12/spring-data-gemfire-supports-apache-geode  GitHub – spring-projects/spring-gemfire-examples: サンプルコード • https://github.com/spring-projects/spring-gemfire-examples  Apache Geode: プロジェクトホーム • http://geode.incubator.apache.org/  Spring Data Gemfire: プロジェクトホーム • http://projects.spring.io/spring-data-gemfire/  今回使用したデモ用アプリケーションプロジェクト一式 • https://github.com/AkihiroKitada/MySpringDataGemfireSamples