SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
2© 2014 Pivotal Software, Inc. All rights reserved.
Presenter
John Blum
@john_blum jxblum
Senior Software Engineer
Spring Data Team
Pivotal Software, Inc.
Roles
✧ Spring Data Team
✧ Spring Data GemFire Lead
✧ Spring Data Cassandra Lead
✧ Apache Geode Committer
✧ Previously Pivotal GemFire Engineer
& Technical Lead
3© 2014 Pivotal Software, Inc. All rights reserved. 3© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire
Past, Present & Future
John Blum
Spring Data Team
4© 2014 Pivotal Software, Inc. All rights reserved.
Agenda
✧ Background
✧ Project-Release Management
✧ Project Intent
✧ Recommended Practices (Tips)
✧ Improvements
✧ What’s next?
✧ QA
5© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data Team
✧ John Blum
✧ Spring Data GemFire
✧ Spring Data Cassandra
✧ Mark Paluch
✧ Spring Data Redis
✧ Spring Data Cassandra
✧ Christoph Strobl
✧ Spring Data Redis
✧ Spring Data MongoDB
✧ Greg Turnquist
✧ Spring Data REST
✧ Oliver Gierke
✧ Spring Data Team Lead
Spring
Data
✧ Spring Data Commons
✧ Spring Data JPA
✧ Spring Data MongoDB
✧ Spring Data Redis
✧ Spring Data Solr
✧ Spring Data GemFire
✧ Spring Data KeyValue
✧ Spring Data REST
✧ Spring Data Cassandra
http://projects.spring.io/spring-data/
6© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire Leadership
✧ Costin Leau – Spring Team
✧ June 2010 – July 2012
✧ David Turanski – Spring Data/XD Teams
✧ August 2012 – August 2013
✧ John Blum – Spring Data Team
✧ August 2013 – Present Spring
Data
7© 2014 Pivotal Software, Inc. All rights reserved.
July 2013
July 2014
July 2015
July 2016
2012 - 2013
SDG 1.2 – 1.3.2
GemFire 7.0
David Turanski
2010-06-29
Initial Commit
GemFire 6.0.1
Costin Leau
2013-08
SDG 1.3.x
GemFire 7.0.1
John Blum
2013-11-12
SDG 1.3.3
GemFire 7.0.1
2014-04-03
SDG 1.3.4
GemFire 7.0.1
2014-05-20
SDG 1.4 GA
Dijkstra (1.4.6)
GemFire 7.0.2
2014-09-05
SDG 1.5 GA
Evans (1.5.4)
GemFire 7.0.2
2015-03-23
SDG 1.6 GA
Fowler (1.6.3)
GemFire 8.0.0
2015-09-01
SDG 1.7 GA
Gosling (1.7.4)
GemFire 8.1.0
2016-04-06
SDG 1.8 GA
Hopper (1.8.2)
GemFire 8.2.0
2016-07 ?
SDG 1.9 M1
Ingalls
GemFire 8.2.1
2015-06-12
SDG 1.7
(1.7.0.APACHE-GEODE-EA-SNAPSHOT)
Apache Geode
1.0.0-incubating.SNAPSHOT
2016-02-10
SDG 1.7
(1.7.0.APACHE-GEODE-EA-M1)
Apache Geode
1.0.0-incubating-M1
2016-04-28
Spring Data Geode 1.0.0
(1.0.0.APACHE-GEODE-INCUBATING-M2)
Apache Geode
1.0.0-incubating.M2
2016-07 ?
Spring Data Geode 1.0.0
(1.0.0.APACHE-GEODE-
INCUBATING-M3)
Apache Geode
1.0.0-incubating.M3
8© 2014 Pivotal Software, Inc. All rights reserved.
2013
2014
2015
2016
2017
2015
2016
2017
2015-09-01
SDG 1.7 GA
Gosling (1.7.4)
GemFire 8.1.0
2016-04-06
SDG 1.8 GA
Hopper (1.8.2)
GemFire 8.2.0
2016-12 ?
SDG 1.9 GA
Ingalls
GemFire 8.2.1
…
2015-06-12
SDG 1.7.0.APACHE-GEODE-EA-SNAPSHOT
Apache Geode 1.0.0-incubating.SNAPSHOT
2016-02-10
SDG 1.7.0.APACHE-GEODE-EA-M1
Apache Geode 1.0.0-incubating-M1
2016-04-28
Spring Data Geode 1.0.0.APACHE-GEODE-INCUBATING-M2
Apache Geode 1.0.0-incubating.M2
2016-07 ?
Spring Data Geode 1.0.0
(1.0.0.APACHE-GEODE-
INCUBATING-M3)
Apache Geode
1.0.0-incubating.M3
SDG forks April 27, 2015
SGF-398 – Support for Apache Geode
apache-geode GitHub branch
SDG with Apache Geode support
Released June 12th
, 2015
Announcement on spring.io/blog
SDG for Apache Geode name/version change
Spring Data Geode/1.0.0
Announcement on spring.io/blog
Artifact in Maven Central
Spring Data GemFire
Spring Data Geode
9© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire / Geode
Maven Artifacts
Spring Data GemFire
<dependency>
<groupId>org.springframework.data </groupId>
<artifactId>spring-data-
gemfire</artifactId>
<version>1.8.2.RELEASE </version>
</dependency>
Spring Data Geode
<dependency>
<groupId>org.springframework.data </groupId>
<artifactId>spring-data- geode</artifactId>
<version>1.0.0.APACHE-GEODE-INCUBATING-
M2</version>
</dependency>
Pivotal
GemFire
http://search.maven.org/#artifactdetails%7Corg.springframework.data%7Cspring-data-
gemfire%7C1.8.2.RELEASE%7Cjar
http://search.maven.org/#artifactdetails%7Corg.springframework.data%7Cspring-data-geode%7C1.
0.0.APACHE-GEODE-INCUBATING-M2%7Cjar
10© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire
Spring Data Release Train
Dijkstra
Evans
Fowler
Gosling
Hopper
Ingalls
Spring Data Release Planning Page
SDG 1.4 SDG 1.5 SDG 1.6 SDG 1.7 SDG 1.8 SDG 1.9
M1
RC1
RELEASE (GA)
SR1
SR2
…
SR-N
✧ M – Milestone
✧ RC – Release Candidate
✧ SR – Service Release
11© 2014 Pivotal Software, Inc. All rights reserved.
Release Timeline
Spring Data Geode
✧ Spring Data Geode is not part of the Spring Data Release Train.
✧ Spring Data Geode releases correspond to Apache Geode releases.
✧ Release Management Wiki Page
12© 2014 Pivotal Software, Inc. All rights reserved.
Version Support
Spring Data GemFire
SDG Version Latest Version Spring Framework Spring Boot GemFire
1.3.x 1.3.4.RELEASE 3.0.x -- 7.0.1
1.4.x
(Dijkstra)
1.4.6.RELASE 3.1.x 1.1.x 7.0.2
1.5.x
(Evans)
1.5.4.RELEASE 3.2.x (3.2.17.
RELEASE)
1.2.x (1.2.8.
RELEASE)
7.0.2
1.6.x
(Fowler)
1.6.3.RELEASE 4.0.x -- 8.0.0
1.7.x
(Gosling)
1.7.4.RELEASE 4.1.x 1.3.x (1.3.6.
RELEASE)
8.1.0
1.8.x
(Hopper)
1.8.2.RELEASE 4.2.x (4.2.7.
RELEASE)
1.4.0.RC1 8.2.0
1.9.x
(Ingalls)
1.9.0.BUILD-SNAPSHOT 4.2.x (4.2.7.
RELEASE)
-- 8.2.1
https://github.com/spring-projects/spring-data-
gemfire/wiki/Spring-Data-GemFire-to-GemFire-Version-
Compatibility
13© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data Support
Spring Boot
1.2
(1.2.8.RELEASE)
1.3
(1.3.6.RELEASE)
1.4
(1.4.0.RC1)
Spring Data Evans
SDG 1.5.4.RELEASE
Spring Data Gosling
SDG 1.7.4.RELEASE
Spring Data Hopper
SDG 1.8.2.RELEASE
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-gemfire</artifactId>
<version>1.4.0.RC1</version>
</dependency>`
14© 2014 Pivotal Software, Inc. All rights reserved.
“Simple things should be simple;
complex things should be possible”
– Alan Kay
15© 2014 Pivotal Software, Inc. All rights reserved.
Intent & Purpose
Spring Data GemFire / Geode
1. Focus on integrating the core Spring Framework’s powerful, non-
invasive programming model & concepts to simplify the configuration
and development of highly-scalable, distributed Spring applications
using either Pivotal GemFire or Apache Geode.
2. Integration with the Spring portfolio…
16© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire / Geode
Spring Framework
+ +
Using Pivotal GemFire or Apache Geode
With Spring’s Transaction Management and Spring Data GemFire/Geode
To support both Local & Global (JTA) Transactions
|
17© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire / Geode
Spring Framework
+ +
Using Pivotal GemFire or Apache Geode
With Spring’s Cache Abstraction and Spring Data GemFire/Geode
To serve as a JCache (JSR-107) caching provider
|
18© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire / Geode
Spring Data Commons
+
Using Pivotal GemFire or Apache Geode
With SD Commons Repository Infrastructure and SD GemFire/Geode
To rapidly build Data Access Objects (CRUD + Mapping + Querying)
|
19© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire / Geode
Spring Data REST + Spring HATEAOS
+
Using Pivotal GemFire or Apache Geode
With SDC Repositories, Spring Data REST and Spring HATEAOS
To easily create mature, hypermedia-driven REST web services
| +
20© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire
Spring Integration
+
Using Pivotal GemFire with Spring Integration
For Inbound (Cache Events & CQ) and Outbound Channel Adapters,
Message Store, Lock Registry, Metadata Store
21© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire
Spring Session
+
Using Pivotal GemFire with Spring Session (Data GemFire)
To simplify (HTTP) Session State Management
+
22© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire
Spring XD
+
Using Pivotal GemFire with Spring XD (CQ, source & sink)
To simplify Big Data applications
Performing Ingest, Analytics, Batch Jobs and Data Export
23© 2014 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire
Spring Boot
+
Using Pivotal GemFire with Spring Boot
To get up and running as quickly as possible
+
24© 2014 Pivotal Software, Inc. All rights reserved.
Pivotal GemFire
& Spring Cloud
+
Use Spring Cloud (Connectors)
To build Cloud Native Applications and Microservices
Using Pivotal GemFire
25© 2014 Pivotal Software, Inc. All rights reserved.
Recommendations
Spring Data GemFire
• Use Spring Boot
• Do not mix Spring (Java/XML) config with cache.xml or GemFire’s Cluster Config
• Prefer Java-based container configuration over XML
• Prefer the GemFireTemplate, Cache Abstraction and Repositories over direct use of
GemFire’s API
• Do not use GemFire’s JTA Transaction Manager implementation; use Atomikos or another
(OSS) JTA provider
• Know the difference between client/server and embedded peer cache Spring applications
26© 2014 Pivotal Software, Inc. All rights reserved.
Recommendations continued…
Spring Data GemFire
• Learn GemFire forward (doc) and backwards (wiki), inside (source) and out (API)
• Make sure you really understand Spring’s core concepts and the programming model
– DI, AOP, Templates, Data Access, Integration, MVC, Testing, etc…
27© 2014 Pivotal Software, Inc. All rights reserved.
Repository Query (Method) Extensions via Annotations (1.7)
Improvement
interface CustomerRepository extends GemfireRepository<Customer, Long> {
@Trace
@Limit(25)
@Import(“org.example.app.domain.Customer”)
@Hint({ “CustomerIdIdx”, “CustomerLastNameIdx” })
List<Customer> findByLastName(String lastName);
}
http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#gemfire-repositories.oql-extension
SGF-392 – Add support for OQL Query statement extensions in Repository Query methods via Annotations
28© 2014 Pivotal Software, Inc. All rights reserved.
Custom Expiration Annotation Support (1.7)
Improvement
@TimeToLiveExpiration(timeout=“@expirationSettings[‘spel-defined-timeout’]” , action=“DESTROY”)
@IdleTimeout(timeout=“300”, action=“${property.placeholder.defined.action}” )
@Region(“Example”)
class ApplicationDomainObject { .. }
http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#bootstrap:region:expiration:annotation
SGF-404 – Enable Expiration settings and policies to be specified per application domain object using…
29© 2014 Pivotal Software, Inc. All rights reserved.
Custom Expiration Annotation Support (Java config)
Improvement
@Bean(name = “Example”)
public PartitionedRegionFactoryBean exampleRegion(GemFireCache gemfireCache
@Qualifier(“exampleRegionAttributes”) RegionAttributes<?,?> exampleRegionAttributes) {
PartitionedRegionFactoryBean exampleRegion =new PartitionedRegionFactoryBean();
exampleRegion.setCache(gemfireCache);
exampleRegion.setAttributes(exampleRegionAttributes);
return exampleRegion;
}
@Bean
public RegionAttributesFactoryBean exampleRegionAttributes() {
RegionAttributesFactoryBean exampleRegionAttributes =new RegionAttributesFactoryBean();
exampleRegionAttributes.setCustomEntryIdleTimeout(AnnotationBasedExpiration.forIdleTimeout());
return exampleRegionAttributes;
}
30© 2014 Pivotal Software, Inc. All rights reserved.
Custom Expiration Annotation Support (XML)
Improvement
<bean id="ttlExpiration" class="org.springframework.data.gemfire.support.AnnotationBasedExpiration"
factory-method="forTimeToLive"/>
<gfe:partitioned-region id="Example" persistent="false">
<gfe:custom-entry-ttl ref="ttlExpiration"/>
</gfe:partitioned-region>
31© 2014 Pivotal Software, Inc. All rights reserved.
Data Snapshot Import/Export Support (1.7)
Improvement
<gfe:partitioned-region id=“Users” persistent=“true” … />
<gfe:partitioned-region id=“GuestUsers” persistent=“false” … />
<gfe-data:snapshot-service id=“cacheSnapshotService”>
<gfe-data:snapshot-import location=“/path/to/users.zip”/>
<gfe-data:snapshot-export location=“/path/to/snapshot/directory”/>
</gfe-data:snapshot-service/>
<gfe-data:snapshot-service id=“guestUsersSnapshotService” region-ref=“GuestUsers”>
<gfe-data:snapshot-import location=“/path/to/users.snapshot”>
<bean class=“example.GuestUsersSnapshotFilter”/>
</gfe-data:snapshot-import>
<gfe-data:snapshot-export location=“/path/to/activeUsers.snapshot”
filter-ref=“activeUsersFilter”/>
</gfe-data:snapshot-service>
http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#bootstrap:snapshot
SGF-408 – Provide support in the SDG XML namespace to load pre-defined data set…
32© 2014 Pivotal Software, Inc. All rights reserved.
Other Notables (1.8)
Improvements
• SGF-469 – Support for CDI
• SGF-504 – Support Repositories with multiple Spring Data modules on the CLASSPATH
• Follow the link for a list of all SDG 1.7 & 1.8 Bug Fixes, Improvements and New
Features.
– 96 in total
33© 2014 Pivotal Software, Inc. All rights reserved.
Improve Java-based Configuration Support
Next
@ClientCacheApplication(..)
class ExampleClientCacheApplication {
}
@PeerCacheApplication(..)
class ExamplePeerCacheApplication {
}
@CacheServerApplication(..)
class ExampleCacheServerApplication {
}
SGF-492 – Improve GemFire Java-based configuration support
34© 2014 Pivotal Software, Inc. All rights reserved.
Annotation Support for GemFire Callbacks, CQs, Indexes
Next
@Component
public class ExampleApplicationCallbacks {
@CacheListener(region = “Example”)
public void afterCreate(EntryEvent<K, V> entryEvent) {
..
}
@CacheListener(region = “AnotherExample”)
public void afterUpdate(EntryEvent<K, V> entryEvent) {
..
}
}
SGF-453 – Add annotation support for GemFire callbacks
SGF-110 – Add annotation support for CQ Listeners
SGF-106 – Add annotation support for creating Indexes
35© 2014 Pivotal Software, Inc. All rights reserved.
Other Notables…
Next
• SGF-301 – Refactor SDG Examples to use Spring Boot
– Move to Spring Data Examples project
• SGF-377 – Implement Reactive Streams API for GemFire’s CQs
• SGF-451 – Support Function context aware Repositories
• SGF-452 – Support Function Executions on Repositories
• Follow the link for a complete list of all open Spring Data GemFire JIRA tickets.
• Design/Development on spring-data-gemfire-extensions.
• But wait, there is more…
36© 2014 Pivotal Software, Inc. All rights reserved.
PR #6224 – Auto-configuration support for SDG Repositories
Spring Boot
interface CustomerRepository extends Repository<Customer, Long> {
}
@Region(“Customers”)
class Customer {
}
compile “org.springframework.boot:spring-boot-starter-data-gemfire:1.4.0.RC1”
@SpringBootApplication
@EnableGemfireRepositories
class ExampleSpringBootApplication {
}
No longer necessary…
37© 2014 Pivotal Software, Inc. All rights reserved.
PR #5445 – Spring Boot Starter Data Geode
Spring Boot
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-geode</artifactId>
<version>???</version>
</dependency>`
38© 2014 Pivotal Software, Inc. All rights reserved.
PR #366 – Spring Session Data Geode
Spring Session
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-geode</artifactId>
<version>???</version>
</dependency>`
39© 2014 Pivotal Software, Inc. All rights reserved.
References
✧ Spring Data GemFire (SDG) project page
✧ SDG GitHub source code
✧ SDG Reference Guide
✧ SDG API
✧ SDG Wiki page
✧ SDG Examples
✧ SDG JIRA Issue Tracking
✧ SDG StackOverflow spring-data-gemfire tag
✧ spring-data Pivotal Slack Channel
✧ spring-data Gitter IM Channel
40© 2014 Pivotal Software, Inc. All rights reserved.
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 and In-Memory Data
Management in Action
August 1 – 4, 2016, Aria, Las Vegas, NV
By John Blum, Luke Shannon
@john_blum, @lukewshannon
41© 2014 Pivotal Software, Inc. All rights reserved. 41© 2014 Pivotal Software, Inc. All rights reserved.
Questions
Answers
42© 2014 Pivotal Software, Inc. All rights reserved. 42© 2014 Pivotal Software, Inc. All rights reserved.
Thank you
Spring Data (GemFire) Overview

Weitere ähnliche Inhalte

Was ist angesagt?

Apache Geode: an efficient alternative to Kafka-Storm-Spark for Data Analytic
Apache Geode: an efficient alternative to Kafka-Storm-Spark for Data AnalyticApache Geode: an efficient alternative to Kafka-Storm-Spark for Data Analytic
Apache Geode: an efficient alternative to Kafka-Storm-Spark for Data Analytic
VMware Tanzu
 
GemFire In Memory Data Grid
GemFire In Memory Data GridGemFire In Memory Data Grid
GemFire In Memory Data Grid
Dmitry Buzdin
 
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARN
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARNHadoop {Submarine} Project: Running Deep Learning Workloads on YARN
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARN
DataWorks Summit
 
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
VMware Tanzu
 
Gemfire
GemfireGemfire
Gemfire
FNian
 

Was ist angesagt? (20)

Apache Geode: an efficient alternative to Kafka-Storm-Spark for Data Analytic
Apache Geode: an efficient alternative to Kafka-Storm-Spark for Data AnalyticApache Geode: an efficient alternative to Kafka-Storm-Spark for Data Analytic
Apache Geode: an efficient alternative to Kafka-Storm-Spark for Data Analytic
 
GemFire In Memory Data Grid
GemFire In Memory Data GridGemFire In Memory Data Grid
GemFire In Memory Data Grid
 
ApexMeetup Geode - Talk1 2016-03-17
ApexMeetup Geode - Talk1 2016-03-17ApexMeetup Geode - Talk1 2016-03-17
ApexMeetup Geode - Talk1 2016-03-17
 
Not all open source is the same
Not all open source is the sameNot all open source is the same
Not all open source is the same
 
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARN
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARNHadoop {Submarine} Project: Running Deep Learning Workloads on YARN
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARN
 
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
 
Geode Meetup Apachecon
Geode Meetup ApacheconGeode Meetup Apachecon
Geode Meetup Apachecon
 
Gemfire
GemfireGemfire
Gemfire
 
Pivotal Greenplum in Action on AWS, Azure, and GCP - Greenplum Summit 2018
Pivotal Greenplum in Action on AWS, Azure, and GCP - Greenplum Summit 2018Pivotal Greenplum in Action on AWS, Azure, and GCP - Greenplum Summit 2018
Pivotal Greenplum in Action on AWS, Azure, and GCP - Greenplum Summit 2018
 
Apache Geode - The First Six Months
Apache Geode -  The First Six MonthsApache Geode -  The First Six Months
Apache Geode - The First Six Months
 
Running Enterprise Workloads in the Cloud
Running Enterprise Workloads in the CloudRunning Enterprise Workloads in the Cloud
Running Enterprise Workloads in the Cloud
 
Apache Geode Meetup, Cork, Ireland at CIT
Apache Geode Meetup, Cork, Ireland at CITApache Geode Meetup, Cork, Ireland at CIT
Apache Geode Meetup, Cork, Ireland at CIT
 
Oracle Code in Seoul: Provisioning of Cloud Resource
Oracle Code in Seoul: Provisioning of Cloud ResourceOracle Code in Seoul: Provisioning of Cloud Resource
Oracle Code in Seoul: Provisioning of Cloud Resource
 
Introduction to Apache Accumulo
Introduction to Apache AccumuloIntroduction to Apache Accumulo
Introduction to Apache Accumulo
 
HDF: Hortonworks DataFlow: Technical Workshop
HDF: Hortonworks DataFlow: Technical WorkshopHDF: Hortonworks DataFlow: Technical Workshop
HDF: Hortonworks DataFlow: Technical Workshop
 
Infrastructure-as-Code with Puppet Enterprise in the Cloud - PuppetConf 2014
Infrastructure-as-Code with Puppet Enterprise in the Cloud - PuppetConf 2014Infrastructure-as-Code with Puppet Enterprise in the Cloud - PuppetConf 2014
Infrastructure-as-Code with Puppet Enterprise in the Cloud - PuppetConf 2014
 
UKOUG Tech 15 - Migration from Oracle Warehouse Builder to Oracle Data Integr...
UKOUG Tech 15 - Migration from Oracle Warehouse Builder to Oracle Data Integr...UKOUG Tech 15 - Migration from Oracle Warehouse Builder to Oracle Data Integr...
UKOUG Tech 15 - Migration from Oracle Warehouse Builder to Oracle Data Integr...
 
MySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt IntroMySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt Intro
 
MySQL Manchester TT - Replication Features
MySQL Manchester TT  - Replication FeaturesMySQL Manchester TT  - Replication Features
MySQL Manchester TT - Replication Features
 
times ten in-memory database for extreme performance
times ten in-memory database for extreme performancetimes ten in-memory database for extreme performance
times ten in-memory database for extreme performance
 

Andere mochten auch

Tracee Owens - Resume 100615
Tracee Owens - Resume 100615Tracee Owens - Resume 100615
Tracee Owens - Resume 100615
Tracee Owens
 
075 - The Names You Know, The People You Don't - James Douglas Ogilby (Tank T...
075 - The Names You Know, The People You Don't - James Douglas Ogilby (Tank T...075 - The Names You Know, The People You Don't - James Douglas Ogilby (Tank T...
075 - The Names You Know, The People You Don't - James Douglas Ogilby (Tank T...
Derek Tustin
 
FEA - Simple Analysis example
FEA - Simple Analysis exampleFEA - Simple Analysis example
FEA - Simple Analysis example
Michael Davis
 
Laparoscopy-assisted distal gastrectomy with D1+β compared with D1+α lymph no...
Laparoscopy-assisted distal gastrectomy with D1+β compared with D1+α lymph no...Laparoscopy-assisted distal gastrectomy with D1+β compared with D1+α lymph no...
Laparoscopy-assisted distal gastrectomy with D1+β compared with D1+α lymph no...
Goto Pablo
 
Matthew Hartman cv.docx (1)
Matthew Hartman cv.docx (1)Matthew Hartman cv.docx (1)
Matthew Hartman cv.docx (1)
matthew hartman
 

Andere mochten auch (19)

JBPM Past Present Future
JBPM Past Present FutureJBPM Past Present Future
JBPM Past Present Future
 
Cache presentation
Cache presentationCache presentation
Cache presentation
 
Jbpm online training
Jbpm online trainingJbpm online training
Jbpm online training
 
Cpu Cache and Memory Ordering——并发程序设计入门
Cpu Cache and Memory Ordering——并发程序设计入门Cpu Cache and Memory Ordering——并发程序设计入门
Cpu Cache and Memory Ordering——并发程序设计入门
 
Cache memory
Cache memoryCache memory
Cache memory
 
Cache memory
Cache memoryCache memory
Cache memory
 
Thesis Project - Prodega Volume One: Through the Lens of the Individual
Thesis Project - Prodega Volume One: Through the Lens of the IndividualThesis Project - Prodega Volume One: Through the Lens of the Individual
Thesis Project - Prodega Volume One: Through the Lens of the Individual
 
Tracee Owens - Resume 100615
Tracee Owens - Resume 100615Tracee Owens - Resume 100615
Tracee Owens - Resume 100615
 
075 - The Names You Know, The People You Don't - James Douglas Ogilby (Tank T...
075 - The Names You Know, The People You Don't - James Douglas Ogilby (Tank T...075 - The Names You Know, The People You Don't - James Douglas Ogilby (Tank T...
075 - The Names You Know, The People You Don't - James Douglas Ogilby (Tank T...
 
White Genocide In South Africa - Here Are The Names
White Genocide In South Africa - Here Are The NamesWhite Genocide In South Africa - Here Are The Names
White Genocide In South Africa - Here Are The Names
 
Group 18
Group 18Group 18
Group 18
 
Basel III - Implications of Implementation
Basel III - Implications of ImplementationBasel III - Implications of Implementation
Basel III - Implications of Implementation
 
Corporate Gifts India
Corporate Gifts IndiaCorporate Gifts India
Corporate Gifts India
 
M025128139
M025128139M025128139
M025128139
 
FEA - Simple Analysis example
FEA - Simple Analysis exampleFEA - Simple Analysis example
FEA - Simple Analysis example
 
Privacy of patient information
Privacy of patient informationPrivacy of patient information
Privacy of patient information
 
Laparoscopy-assisted distal gastrectomy with D1+β compared with D1+α lymph no...
Laparoscopy-assisted distal gastrectomy with D1+β compared with D1+α lymph no...Laparoscopy-assisted distal gastrectomy with D1+β compared with D1+α lymph no...
Laparoscopy-assisted distal gastrectomy with D1+β compared with D1+α lymph no...
 
Spring Data and In-Memory Data Management in Action
Spring Data and In-Memory Data Management in ActionSpring Data and In-Memory Data Management in Action
Spring Data and In-Memory Data Management in Action
 
Matthew Hartman cv.docx (1)
Matthew Hartman cv.docx (1)Matthew Hartman cv.docx (1)
Matthew Hartman cv.docx (1)
 

Ähnlich wie Spring Data (GemFire) Overview

Guiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise landGuiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise land
Dariusz Łuksza
 
SAP Inside Track Singapore 2014
SAP Inside Track Singapore 2014SAP Inside Track Singapore 2014
SAP Inside Track Singapore 2014
mharkus
 

Ähnlich wie Spring Data (GemFire) Overview (20)

#GeodeSummit - Spring Data GemFire API Current and Future
#GeodeSummit - Spring Data GemFire API Current and Future#GeodeSummit - Spring Data GemFire API Current and Future
#GeodeSummit - Spring Data GemFire API Current and Future
 
Session State Caching with Spring
Session State Caching with SpringSession State Caching with Spring
Session State Caching with Spring
 
Panda Cloud
Panda CloudPanda Cloud
Panda Cloud
 
Scaling UI5 Projects via Standardized Project & Infrastructure Setup (Ui5Con ...
Scaling UI5 Projects via Standardized Project & Infrastructure Setup (Ui5Con ...Scaling UI5 Projects via Standardized Project & Infrastructure Setup (Ui5Con ...
Scaling UI5 Projects via Standardized Project & Infrastructure Setup (Ui5Con ...
 
Springboot introduction
Springboot introductionSpringboot introduction
Springboot introduction
 
Implementing a highly scalable stock prediction system with R, Geode, SpringX...
Implementing a highly scalable stock prediction system with R, Geode, SpringX...Implementing a highly scalable stock prediction system with R, Geode, SpringX...
Implementing a highly scalable stock prediction system with R, Geode, SpringX...
 
#GeodeSummit - Large Scale Fraud Detection using GemFire Integrated with Gree...
#GeodeSummit - Large Scale Fraud Detection using GemFire Integrated with Gree...#GeodeSummit - Large Scale Fraud Detection using GemFire Integrated with Gree...
#GeodeSummit - Large Scale Fraud Detection using GemFire Integrated with Gree...
 
Guiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise landGuiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise land
 
GitOps and Its tools.pptx
GitOps and Its tools.pptxGitOps and Its tools.pptx
GitOps and Its tools.pptx
 
GitOps and Its tools.pptx
GitOps and Its tools.pptxGitOps and Its tools.pptx
GitOps and Its tools.pptx
 
Fuel, Puppet and OpenStack
Fuel, Puppet and OpenStackFuel, Puppet and OpenStack
Fuel, Puppet and OpenStack
 
SamSegalResume
SamSegalResumeSamSegalResume
SamSegalResume
 
Efficiently Implementing INSPIRE & Creating INSPIRE Mashups with FME
Efficiently Implementing INSPIRE & Creating INSPIRE Mashups with FMEEfficiently Implementing INSPIRE & Creating INSPIRE Mashups with FME
Efficiently Implementing INSPIRE & Creating INSPIRE Mashups with FME
 
Open Data Science Conference Big Data Infrastructure – Introduction to Hadoop...
Open Data Science Conference Big Data Infrastructure – Introduction to Hadoop...Open Data Science Conference Big Data Infrastructure – Introduction to Hadoop...
Open Data Science Conference Big Data Infrastructure – Introduction to Hadoop...
 
Gimel at Dataworks Summit San Jose 2018
Gimel at Dataworks Summit San Jose 2018Gimel at Dataworks Summit San Jose 2018
Gimel at Dataworks Summit San Jose 2018
 
Dataworks | 2018-06-20 | Gimel data platform
Dataworks | 2018-06-20 | Gimel data platformDataworks | 2018-06-20 | Gimel data platform
Dataworks | 2018-06-20 | Gimel data platform
 
QCon 2018 | Gimel | PayPal's Analytic Platform
QCon 2018 | Gimel | PayPal's Analytic PlatformQCon 2018 | Gimel | PayPal's Analytic Platform
QCon 2018 | Gimel | PayPal's Analytic Platform
 
Google App Engine Developer - Day1
Google App Engine Developer - Day1Google App Engine Developer - Day1
Google App Engine Developer - Day1
 
SAP Inside Track Singapore 2014
SAP Inside Track Singapore 2014SAP Inside Track Singapore 2014
SAP Inside Track Singapore 2014
 
Greenplum Database Open Source December 2015
Greenplum Database Open Source December 2015Greenplum Database Open Source December 2015
Greenplum Database Open Source December 2015
 

Kürzlich hochgeladen

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Kürzlich hochgeladen (20)

MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 

Spring Data (GemFire) Overview

  • 1.
  • 2. 2© 2014 Pivotal Software, Inc. All rights reserved. Presenter John Blum @john_blum jxblum Senior Software Engineer Spring Data Team Pivotal Software, Inc. Roles ✧ Spring Data Team ✧ Spring Data GemFire Lead ✧ Spring Data Cassandra Lead ✧ Apache Geode Committer ✧ Previously Pivotal GemFire Engineer & Technical Lead
  • 3. 3© 2014 Pivotal Software, Inc. All rights reserved. 3© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire Past, Present & Future John Blum Spring Data Team
  • 4. 4© 2014 Pivotal Software, Inc. All rights reserved. Agenda ✧ Background ✧ Project-Release Management ✧ Project Intent ✧ Recommended Practices (Tips) ✧ Improvements ✧ What’s next? ✧ QA
  • 5. 5© 2014 Pivotal Software, Inc. All rights reserved. Spring Data Team ✧ John Blum ✧ Spring Data GemFire ✧ Spring Data Cassandra ✧ Mark Paluch ✧ Spring Data Redis ✧ Spring Data Cassandra ✧ Christoph Strobl ✧ Spring Data Redis ✧ Spring Data MongoDB ✧ Greg Turnquist ✧ Spring Data REST ✧ Oliver Gierke ✧ Spring Data Team Lead Spring Data ✧ Spring Data Commons ✧ Spring Data JPA ✧ Spring Data MongoDB ✧ Spring Data Redis ✧ Spring Data Solr ✧ Spring Data GemFire ✧ Spring Data KeyValue ✧ Spring Data REST ✧ Spring Data Cassandra http://projects.spring.io/spring-data/
  • 6. 6© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire Leadership ✧ Costin Leau – Spring Team ✧ June 2010 – July 2012 ✧ David Turanski – Spring Data/XD Teams ✧ August 2012 – August 2013 ✧ John Blum – Spring Data Team ✧ August 2013 – Present Spring Data
  • 7. 7© 2014 Pivotal Software, Inc. All rights reserved. July 2013 July 2014 July 2015 July 2016 2012 - 2013 SDG 1.2 – 1.3.2 GemFire 7.0 David Turanski 2010-06-29 Initial Commit GemFire 6.0.1 Costin Leau 2013-08 SDG 1.3.x GemFire 7.0.1 John Blum 2013-11-12 SDG 1.3.3 GemFire 7.0.1 2014-04-03 SDG 1.3.4 GemFire 7.0.1 2014-05-20 SDG 1.4 GA Dijkstra (1.4.6) GemFire 7.0.2 2014-09-05 SDG 1.5 GA Evans (1.5.4) GemFire 7.0.2 2015-03-23 SDG 1.6 GA Fowler (1.6.3) GemFire 8.0.0 2015-09-01 SDG 1.7 GA Gosling (1.7.4) GemFire 8.1.0 2016-04-06 SDG 1.8 GA Hopper (1.8.2) GemFire 8.2.0 2016-07 ? SDG 1.9 M1 Ingalls GemFire 8.2.1 2015-06-12 SDG 1.7 (1.7.0.APACHE-GEODE-EA-SNAPSHOT) Apache Geode 1.0.0-incubating.SNAPSHOT 2016-02-10 SDG 1.7 (1.7.0.APACHE-GEODE-EA-M1) Apache Geode 1.0.0-incubating-M1 2016-04-28 Spring Data Geode 1.0.0 (1.0.0.APACHE-GEODE-INCUBATING-M2) Apache Geode 1.0.0-incubating.M2 2016-07 ? Spring Data Geode 1.0.0 (1.0.0.APACHE-GEODE- INCUBATING-M3) Apache Geode 1.0.0-incubating.M3
  • 8. 8© 2014 Pivotal Software, Inc. All rights reserved. 2013 2014 2015 2016 2017 2015 2016 2017 2015-09-01 SDG 1.7 GA Gosling (1.7.4) GemFire 8.1.0 2016-04-06 SDG 1.8 GA Hopper (1.8.2) GemFire 8.2.0 2016-12 ? SDG 1.9 GA Ingalls GemFire 8.2.1 … 2015-06-12 SDG 1.7.0.APACHE-GEODE-EA-SNAPSHOT Apache Geode 1.0.0-incubating.SNAPSHOT 2016-02-10 SDG 1.7.0.APACHE-GEODE-EA-M1 Apache Geode 1.0.0-incubating-M1 2016-04-28 Spring Data Geode 1.0.0.APACHE-GEODE-INCUBATING-M2 Apache Geode 1.0.0-incubating.M2 2016-07 ? Spring Data Geode 1.0.0 (1.0.0.APACHE-GEODE- INCUBATING-M3) Apache Geode 1.0.0-incubating.M3 SDG forks April 27, 2015 SGF-398 – Support for Apache Geode apache-geode GitHub branch SDG with Apache Geode support Released June 12th , 2015 Announcement on spring.io/blog SDG for Apache Geode name/version change Spring Data Geode/1.0.0 Announcement on spring.io/blog Artifact in Maven Central Spring Data GemFire Spring Data Geode
  • 9. 9© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire / Geode Maven Artifacts Spring Data GemFire <dependency> <groupId>org.springframework.data </groupId> <artifactId>spring-data- gemfire</artifactId> <version>1.8.2.RELEASE </version> </dependency> Spring Data Geode <dependency> <groupId>org.springframework.data </groupId> <artifactId>spring-data- geode</artifactId> <version>1.0.0.APACHE-GEODE-INCUBATING- M2</version> </dependency> Pivotal GemFire http://search.maven.org/#artifactdetails%7Corg.springframework.data%7Cspring-data- gemfire%7C1.8.2.RELEASE%7Cjar http://search.maven.org/#artifactdetails%7Corg.springframework.data%7Cspring-data-geode%7C1. 0.0.APACHE-GEODE-INCUBATING-M2%7Cjar
  • 10. 10© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire Spring Data Release Train Dijkstra Evans Fowler Gosling Hopper Ingalls Spring Data Release Planning Page SDG 1.4 SDG 1.5 SDG 1.6 SDG 1.7 SDG 1.8 SDG 1.9 M1 RC1 RELEASE (GA) SR1 SR2 … SR-N ✧ M – Milestone ✧ RC – Release Candidate ✧ SR – Service Release
  • 11. 11© 2014 Pivotal Software, Inc. All rights reserved. Release Timeline Spring Data Geode ✧ Spring Data Geode is not part of the Spring Data Release Train. ✧ Spring Data Geode releases correspond to Apache Geode releases. ✧ Release Management Wiki Page
  • 12. 12© 2014 Pivotal Software, Inc. All rights reserved. Version Support Spring Data GemFire SDG Version Latest Version Spring Framework Spring Boot GemFire 1.3.x 1.3.4.RELEASE 3.0.x -- 7.0.1 1.4.x (Dijkstra) 1.4.6.RELASE 3.1.x 1.1.x 7.0.2 1.5.x (Evans) 1.5.4.RELEASE 3.2.x (3.2.17. RELEASE) 1.2.x (1.2.8. RELEASE) 7.0.2 1.6.x (Fowler) 1.6.3.RELEASE 4.0.x -- 8.0.0 1.7.x (Gosling) 1.7.4.RELEASE 4.1.x 1.3.x (1.3.6. RELEASE) 8.1.0 1.8.x (Hopper) 1.8.2.RELEASE 4.2.x (4.2.7. RELEASE) 1.4.0.RC1 8.2.0 1.9.x (Ingalls) 1.9.0.BUILD-SNAPSHOT 4.2.x (4.2.7. RELEASE) -- 8.2.1 https://github.com/spring-projects/spring-data- gemfire/wiki/Spring-Data-GemFire-to-GemFire-Version- Compatibility
  • 13. 13© 2014 Pivotal Software, Inc. All rights reserved. Spring Data Support Spring Boot 1.2 (1.2.8.RELEASE) 1.3 (1.3.6.RELEASE) 1.4 (1.4.0.RC1) Spring Data Evans SDG 1.5.4.RELEASE Spring Data Gosling SDG 1.7.4.RELEASE Spring Data Hopper SDG 1.8.2.RELEASE <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-gemfire</artifactId> <version>1.4.0.RC1</version> </dependency>`
  • 14. 14© 2014 Pivotal Software, Inc. All rights reserved. “Simple things should be simple; complex things should be possible” – Alan Kay
  • 15. 15© 2014 Pivotal Software, Inc. All rights reserved. Intent & Purpose Spring Data GemFire / Geode 1. Focus on integrating the core Spring Framework’s powerful, non- invasive programming model & concepts to simplify the configuration and development of highly-scalable, distributed Spring applications using either Pivotal GemFire or Apache Geode. 2. Integration with the Spring portfolio…
  • 16. 16© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire / Geode Spring Framework + + Using Pivotal GemFire or Apache Geode With Spring’s Transaction Management and Spring Data GemFire/Geode To support both Local & Global (JTA) Transactions |
  • 17. 17© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire / Geode Spring Framework + + Using Pivotal GemFire or Apache Geode With Spring’s Cache Abstraction and Spring Data GemFire/Geode To serve as a JCache (JSR-107) caching provider |
  • 18. 18© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire / Geode Spring Data Commons + Using Pivotal GemFire or Apache Geode With SD Commons Repository Infrastructure and SD GemFire/Geode To rapidly build Data Access Objects (CRUD + Mapping + Querying) |
  • 19. 19© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire / Geode Spring Data REST + Spring HATEAOS + Using Pivotal GemFire or Apache Geode With SDC Repositories, Spring Data REST and Spring HATEAOS To easily create mature, hypermedia-driven REST web services | +
  • 20. 20© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire Spring Integration + Using Pivotal GemFire with Spring Integration For Inbound (Cache Events & CQ) and Outbound Channel Adapters, Message Store, Lock Registry, Metadata Store
  • 21. 21© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire Spring Session + Using Pivotal GemFire with Spring Session (Data GemFire) To simplify (HTTP) Session State Management +
  • 22. 22© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire Spring XD + Using Pivotal GemFire with Spring XD (CQ, source & sink) To simplify Big Data applications Performing Ingest, Analytics, Batch Jobs and Data Export
  • 23. 23© 2014 Pivotal Software, Inc. All rights reserved. Spring Data GemFire Spring Boot + Using Pivotal GemFire with Spring Boot To get up and running as quickly as possible +
  • 24. 24© 2014 Pivotal Software, Inc. All rights reserved. Pivotal GemFire & Spring Cloud + Use Spring Cloud (Connectors) To build Cloud Native Applications and Microservices Using Pivotal GemFire
  • 25. 25© 2014 Pivotal Software, Inc. All rights reserved. Recommendations Spring Data GemFire • Use Spring Boot • Do not mix Spring (Java/XML) config with cache.xml or GemFire’s Cluster Config • Prefer Java-based container configuration over XML • Prefer the GemFireTemplate, Cache Abstraction and Repositories over direct use of GemFire’s API • Do not use GemFire’s JTA Transaction Manager implementation; use Atomikos or another (OSS) JTA provider • Know the difference between client/server and embedded peer cache Spring applications
  • 26. 26© 2014 Pivotal Software, Inc. All rights reserved. Recommendations continued… Spring Data GemFire • Learn GemFire forward (doc) and backwards (wiki), inside (source) and out (API) • Make sure you really understand Spring’s core concepts and the programming model – DI, AOP, Templates, Data Access, Integration, MVC, Testing, etc…
  • 27. 27© 2014 Pivotal Software, Inc. All rights reserved. Repository Query (Method) Extensions via Annotations (1.7) Improvement interface CustomerRepository extends GemfireRepository<Customer, Long> { @Trace @Limit(25) @Import(“org.example.app.domain.Customer”) @Hint({ “CustomerIdIdx”, “CustomerLastNameIdx” }) List<Customer> findByLastName(String lastName); } http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#gemfire-repositories.oql-extension SGF-392 – Add support for OQL Query statement extensions in Repository Query methods via Annotations
  • 28. 28© 2014 Pivotal Software, Inc. All rights reserved. Custom Expiration Annotation Support (1.7) Improvement @TimeToLiveExpiration(timeout=“@expirationSettings[‘spel-defined-timeout’]” , action=“DESTROY”) @IdleTimeout(timeout=“300”, action=“${property.placeholder.defined.action}” ) @Region(“Example”) class ApplicationDomainObject { .. } http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#bootstrap:region:expiration:annotation SGF-404 – Enable Expiration settings and policies to be specified per application domain object using…
  • 29. 29© 2014 Pivotal Software, Inc. All rights reserved. Custom Expiration Annotation Support (Java config) Improvement @Bean(name = “Example”) public PartitionedRegionFactoryBean exampleRegion(GemFireCache gemfireCache @Qualifier(“exampleRegionAttributes”) RegionAttributes<?,?> exampleRegionAttributes) { PartitionedRegionFactoryBean exampleRegion =new PartitionedRegionFactoryBean(); exampleRegion.setCache(gemfireCache); exampleRegion.setAttributes(exampleRegionAttributes); return exampleRegion; } @Bean public RegionAttributesFactoryBean exampleRegionAttributes() { RegionAttributesFactoryBean exampleRegionAttributes =new RegionAttributesFactoryBean(); exampleRegionAttributes.setCustomEntryIdleTimeout(AnnotationBasedExpiration.forIdleTimeout()); return exampleRegionAttributes; }
  • 30. 30© 2014 Pivotal Software, Inc. All rights reserved. Custom Expiration Annotation Support (XML) Improvement <bean id="ttlExpiration" class="org.springframework.data.gemfire.support.AnnotationBasedExpiration" factory-method="forTimeToLive"/> <gfe:partitioned-region id="Example" persistent="false"> <gfe:custom-entry-ttl ref="ttlExpiration"/> </gfe:partitioned-region>
  • 31. 31© 2014 Pivotal Software, Inc. All rights reserved. Data Snapshot Import/Export Support (1.7) Improvement <gfe:partitioned-region id=“Users” persistent=“true” … /> <gfe:partitioned-region id=“GuestUsers” persistent=“false” … /> <gfe-data:snapshot-service id=“cacheSnapshotService”> <gfe-data:snapshot-import location=“/path/to/users.zip”/> <gfe-data:snapshot-export location=“/path/to/snapshot/directory”/> </gfe-data:snapshot-service/> <gfe-data:snapshot-service id=“guestUsersSnapshotService” region-ref=“GuestUsers”> <gfe-data:snapshot-import location=“/path/to/users.snapshot”> <bean class=“example.GuestUsersSnapshotFilter”/> </gfe-data:snapshot-import> <gfe-data:snapshot-export location=“/path/to/activeUsers.snapshot” filter-ref=“activeUsersFilter”/> </gfe-data:snapshot-service> http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#bootstrap:snapshot SGF-408 – Provide support in the SDG XML namespace to load pre-defined data set…
  • 32. 32© 2014 Pivotal Software, Inc. All rights reserved. Other Notables (1.8) Improvements • SGF-469 – Support for CDI • SGF-504 – Support Repositories with multiple Spring Data modules on the CLASSPATH • Follow the link for a list of all SDG 1.7 & 1.8 Bug Fixes, Improvements and New Features. – 96 in total
  • 33. 33© 2014 Pivotal Software, Inc. All rights reserved. Improve Java-based Configuration Support Next @ClientCacheApplication(..) class ExampleClientCacheApplication { } @PeerCacheApplication(..) class ExamplePeerCacheApplication { } @CacheServerApplication(..) class ExampleCacheServerApplication { } SGF-492 – Improve GemFire Java-based configuration support
  • 34. 34© 2014 Pivotal Software, Inc. All rights reserved. Annotation Support for GemFire Callbacks, CQs, Indexes Next @Component public class ExampleApplicationCallbacks { @CacheListener(region = “Example”) public void afterCreate(EntryEvent<K, V> entryEvent) { .. } @CacheListener(region = “AnotherExample”) public void afterUpdate(EntryEvent<K, V> entryEvent) { .. } } SGF-453 – Add annotation support for GemFire callbacks SGF-110 – Add annotation support for CQ Listeners SGF-106 – Add annotation support for creating Indexes
  • 35. 35© 2014 Pivotal Software, Inc. All rights reserved. Other Notables… Next • SGF-301 – Refactor SDG Examples to use Spring Boot – Move to Spring Data Examples project • SGF-377 – Implement Reactive Streams API for GemFire’s CQs • SGF-451 – Support Function context aware Repositories • SGF-452 – Support Function Executions on Repositories • Follow the link for a complete list of all open Spring Data GemFire JIRA tickets. • Design/Development on spring-data-gemfire-extensions. • But wait, there is more…
  • 36. 36© 2014 Pivotal Software, Inc. All rights reserved. PR #6224 – Auto-configuration support for SDG Repositories Spring Boot interface CustomerRepository extends Repository<Customer, Long> { } @Region(“Customers”) class Customer { } compile “org.springframework.boot:spring-boot-starter-data-gemfire:1.4.0.RC1” @SpringBootApplication @EnableGemfireRepositories class ExampleSpringBootApplication { } No longer necessary…
  • 37. 37© 2014 Pivotal Software, Inc. All rights reserved. PR #5445 – Spring Boot Starter Data Geode Spring Boot <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-geode</artifactId> <version>???</version> </dependency>`
  • 38. 38© 2014 Pivotal Software, Inc. All rights reserved. PR #366 – Spring Session Data Geode Spring Session <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-geode</artifactId> <version>???</version> </dependency>`
  • 39. 39© 2014 Pivotal Software, Inc. All rights reserved. References ✧ Spring Data GemFire (SDG) project page ✧ SDG GitHub source code ✧ SDG Reference Guide ✧ SDG API ✧ SDG Wiki page ✧ SDG Examples ✧ SDG JIRA Issue Tracking ✧ SDG StackOverflow spring-data-gemfire tag ✧ spring-data Pivotal Slack Channel ✧ spring-data Gitter IM Channel
  • 40. 40© 2014 Pivotal Software, Inc. All rights reserved. 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 and In-Memory Data Management in Action August 1 – 4, 2016, Aria, Las Vegas, NV By John Blum, Luke Shannon @john_blum, @lukewshannon
  • 41. 41© 2014 Pivotal Software, Inc. All rights reserved. 41© 2014 Pivotal Software, Inc. All rights reserved. Questions Answers
  • 42. 42© 2014 Pivotal Software, Inc. All rights reserved. 42© 2014 Pivotal Software, Inc. All rights reserved. Thank you