SlideShare a Scribd company logo
SPRINGONE2GX
WASHINGTON, DC
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attributio n-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Building Highly Scalable Spring
Applications using In-Memory Data Grids
By John Blum & Luke Shannon
@john_blum
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Presenters
2
John Blum - @john_blum
Spring Data GemFire Project Lead
Apache Geode Committer
GemFire Engineer/Technical Lead
Pivotal Software, Inc
Luke Shannon
Field/Community Engineer
Apache Geode Committer
Pivotal Software, Inc.
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Agenda
3
• Introduction to Apache Geode
• Distributed System & In-Memory Database Concepts
• Overview of Spring Data GemFire
• How to build highly scalable applications
• Spring Data GemFire in Action
• Fast Foot Shoes Demo
• Caching Demo (?)
• What’s New
• QA
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Why Apache Geode?
4
Motivation…
1. Volume of Data (Big Data)
2. Velocity of Data (Fast Data)
3. Verity of Data (Data Accuracy)
Enables new and existing Spring applications to operate at cloud-scale in a
consistent, highly-available and predictable manner in order to transact and
analyze big, fast data in real-time thereby achieving meaningful and impactful
business results.
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What is Apache Geode?
5
In a nutshell…
• Open Source core of Pivotal GemFire
• https://pivotal.io/big-data/pivotal-gemfire
• Apache Incubator project
• https://wiki.apache.org/incubator/GeodeProposal
• http://geode.incubator.apache.org/
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What is Apache Geode?
6
“A distributed, in-memory compute and
data management platform that
elastically scales to achieve high-
throughput, low-latency access to big,
fast data powering business critical,
analytical applications in real-time.”
– John Blum, 
Elastic capacity +/-
Nodes
Ops /
SecLinear scalability
Latency optimized
data distribution
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode Use Cases
7
• Persistent, OLTP/OLAP Database (System of Record)
• JSR-107 Cache Provider (Key/Value Store)
• HTTP Session State Management
• Distributed L2 Caching for Hibernate
• Memcached Server (Gemcached)
• Message Bus with guaranteed message delivery
• Glorified version of ConcurrentHashMap
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
China Railway Corporation
GemFire runs on ten primary x86 servers with over two
terabytes of memory and there are ten backup servers –
this has replaced the 72 UNIX boxes and traditional
RDBMS with a more efficient, cost-effective approach.
With so many people relying on the website for travel, it must be
continuously available. Demand has far exceeded expectations
and the future shows as much as 50% growth per year as
mobile phone access is added.
https://pivotal.io/big-data/case-study/scaling-online-sales-for-the-largest-
railway-in-the-world-china-railway-corporation
8
China Railway
Corporation
• 20 million users per day; 40,000
visits per second
• 4.5 million ticket purchases &.
• Spikes of 15,000 tickets sold per
minute
“The system is operating with solid
performance and uptime. Now, we have a
reliable, economically sound production
system that supports record volumes and
has room to grow”
Dr. Jiansheng Zhu, Vice Director of China
Academy of Railway Sciences
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
How Apache Geode Works
9
• Stores data In-Memory
• JVM Heap + Off-Heap
• Functions as a Distributed System, In-Memory Data Grid (IMDG)
• Pools system resources across multiple nodes in a cluster to manage both
application state and behavior
• Includes: Memory, CPU, Network & (optionally) Disk
• (optional) Stores data to Disk
• In OPLOGS | HDFS for Overflow & Persistence
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Memory Management
Apache Geode manages memory using…
• Eviction: LRU
• Expiration: Time-To-Live (TTL), Idle Timeout (TTI)
• Auto resource management: critical/eviction HEAP % thresholds
• (Region) Data Compression: Snappy
• JVM/GC Tuning
10
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Where to begin?
11
Data NodeData Node
Application
What about load?
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Where to begin?
12
Data Node
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Where to begin?
13
Locator
High read throughput What about writes?
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Where to begin?
14
Locator
Partition
X
Y
Z
Partition
X
Y
Z
Partition
A
B
C
Partition
A
B
C
High read/write throughput What about
consistency?
Partition
X
Y
Z
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Partition Region
15
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Where to begin?
16
Locator
Partition
X
Y
Z
Partition
X
Y
Z
Partition
A
B
C
Partition
A
B
C
Partition
X
Y
Z
Partition
A
B
C
Partition
X
Y
Z
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Network Partition Resolution
17
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode Topologies
18
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Summary of Apache Geode
• Open Source
• In-Memory
• Distributed
• Scalable (scale-out)
• High Throughput & Low/Predictable Latency
• Highly Available
• Consistent
• Durable
• Fault Tolerant (resilient)
• Data-Aware / Parallel Compute
19
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Other Features of Apache Geode
• Data Serialization (PDX, Java Serialization)
• Delta Propagation
• Transactions (Local & Global JTA-based TX)
• Querying (OQL) + Continuous Queries
• Functions (Stored Procedures)
• Native Client Support (C#/C++)
• REST API
• Management & Monitoring (JMX with Gfsh & Pulse)
• Security (Auth, Secure Transport with SSL, No Encryption)
• Statistics & Logging (Log4j)
20
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Data GemFire
21
“Simple things should be simple;
complex things should be possible”
– Alan Kay
22
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Data GemFire (SDG)
23
Applies Spring's powerful, non-invasive programming model to simplify
configuration and development of Apache Geode applications.
Spring Ecosystem Integration
– Spring Cache Abstraction / Transaction Management
– Spring Data Commons + REST
– Spring Integration (Inbound/Outbound Channel Adapters)
– Spring Session (coming soon)
– Spring XD (Sources & Sinks)
Apache Geode with Spring Data GemFire and Spring’s Cache
Abstraction is a JSR-107 (JCache) caching provider
24
+ +
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Data GemFire Use Cases
25
• Configure & Bootstrap Apache Geode
– Replacement for cache.xml; Can be used with Cluster Configuration
• Build an Application Peer Cache (Cache)
– Embedded Cache
• Build an Application Cache Client (ClientCache)
– Client/Server
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Data GemFire Features
• Pivotal GemFire / Apache Geode Configuration & Bootstrapping
• Spring Data Repositories
• CRUD + Querying (OQL) + (basic) POJO Mapping
• Annotated-based Function Implementation / Execution
• Transaction Management with Spring Transaction Infrastructure
• Exception Translation into Spring DAO Exception Hierarchy
• Register Interests & Continuous Querying Support
• JSON Region Proxies
• Data Snapshots Imports/Exports
• Client/Server Applications
• WAN Architecture Support
• GemFire / Geode caching provider support in Spring’s Cache Abstraction
26
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Data GemFire / Apache Geode Coordinates
27
<repository>
<id>spring-libs-snapshot</id>
<name>Spring Maven libs-snapshot Repository</name>
<url>https://repo.spring.io/libs-snapshot</url>
</repository>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-gemfire</artifactId>
<version>1.7.0.APACHE-GEODE-EA-SNAPSHOT</version>
</dependency>
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Configuration & Bootstrapping
28
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Configuring Apache Geode with Spring
29
XML Java-based Configuration
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Bootstrapping Apache Geode with Spring
30
@SpringBootApplication
@ImportResource("/spring-gemfire-context.xml")
public class SpringGemFireApplication {
public static void main(String[] args) {
SpringApplication.run(SpringGemFireApplication.class, args);
}
}
gfsh>start server -–name=Example --spring-xml-location=
<classpath-to-spring-application-context.xml>
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
EXAMPLE
31
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Data GemFire in Action
Fast Foot Shoes Demo
32
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Caching
41
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cache Abstraction
Caching is useful in cases when an “expensive” operation (i.e. CPU, IO bound)
produces the same output given identical input; results can be reused.
Spring enables Declarative, Annotation-based Caching…
 @Cacheable – triggers cache population
 @CacheEvict – triggers cache eviction
 @CachePut – updates cache without interfering with method execution
 @Caching – groups multiple cache operations per method
 @CacheConfig – class-level cache-related settings
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Supports JSR-107 (JCache)
Spring JCache
@Cacheable @CacheResult
@CachePut @CachePut
@CacheEvict @CacheRemove
@CacheEvict(allEntries=true) @CacheRemoveAll
@CacheConfig @CacheDefaults
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#cache-jsr-107
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode Caching Provider
@Configuration
@EnableCaching
@Import(GemFireConfiguration.class)
class ApplicationConfiguration {
@Bean
public CacheManager cacheManager(
Cache gemfireCache) {
GemfireCacheManager cacheManager =
new GemfireCacheManager();
cacheManager.setCache(gemfireCache);
return cacheManager;
}
}
<beans …
xmlns:cache=“http://www.springframework.org/schema/cach
e”…>
<gfe:cache properties-
ref="gemfireProperties"/>
<cache:annotation-driven/>
<bean id="cacheManager" class=
”o.s.data.gemfire.support.GemfireCacheManager"
p:cache-ref="gemfireCache"/>
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
EXAMPLE
45
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What’s New – Annotation-based Expiration
46
@TimeToLiveExpiration(timeout=“@expirationSettings[‘spel-defined-timeout’]”, action=“DESTROY”)
@IdleTimeout(timeout=“300”, action=“${property.placeholder.defined.action}”)
class ApplicationDomainObject { .. }
<gfe:partitioned-region id="Example" persistent="false">
<gfe:custom-entry-ttl>
<bean class=“org.springframework.data.gemfire.support.AnnotationBasedExpiration”
factoryMethod=“forTimeToLive”/>
</gfe:custom-etnry-ttl>
<gfe:custom-entry-tti ref="ttiExpiration"/>
</gfe:partitioned-region>
<bean id="ttiExpiration" class=”….AnnotationBasedExpiration” factory-method="forIdleTimeout">
<constructor-arg ref="defaultExpirationAttributes"/>
</bean>
<bean id="defaultExpirationAttributes" class="com.gemstone.gemfire.cache.ExpirationAttributes">
<constructor-arg value="600"/>
<constructor-arg value="#{T(com.gemstone.gemfire.cache.ExpirationAction).DESTROY}"/>
</bean>
http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#bootstrap:region:expiration:annotation
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What’s New – Annotation-based OQL
extensions
interface CustomerRepository extends GemfireRepository<Customer, Long> {
@Trace
@Limit(25)
@Import(“org.example.app.domain.Customer”)
@Hint({ “CustomerIdIdx”, “CustomerLastNameIdx” })
List<Customer> findByLastName(String lastName);
}
47
http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#gemfire-repositories.oql-extension
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What’s New – Data Snapshot Imports/Exports
<gfe:cache/>
<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>
48
http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#bootstrap:snapshot
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Presentation References
 Presentation Slides - http://www.slideshare.net/john_blum
 Configuration / Bootstrapping & Caching Example Source Code -
https://github.com/jxblum/scalable-spring-gemfire
 Fast Foot Shoes Example Source Code - https://github.com/Pivotal-Open-Source-
Hub/geode-demo-application
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Apache Geode References
 Project Page - http://geode.incubator.apache.org/contribute/
 Community Events - http://geode.incubator.apache.org/community/
 Contribute - http://geode.incubator.apache.org/contribute/
– Ideas - https://cwiki.apache.org/confluence/display/GEODE/How+to+Contribute
 Documentation - http://geode.incubator.apache.org/docs/
– Docs Project - https://github.com/project-geode/docs
 Source Code - https://github.com/apache/incubator-geode
 JIRA - https://issues.apache.org/jira/browse/GEODE
 StackOverflow - http://stackoverflow.com/questions/tagged/gemfire+and+geode
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Data GemFire References
 Project Page - http://projects.spring.io/spring-data/
 Documentation –
– Reference Guide - http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/
– API - http://docs.spring.io/spring-data-gemfire/docs/current/api/
– Spring IO Guides - http://spring.io/guides
– Spring GemFire Examples –
 Source Code - https://github.com/spring-projects/spring-data-gemfire
 Examples - https://github.com/spring-projects/spring-gemfire-examples
 JIRA – https://jira.spring.io/browse/SGF
 StackOverflow - http://stackoverflow.com/questions/tagged/spring-data-gemfire
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 52
Boot Your Search with Spring
12:45 – 14:15 - Salon M - Christoph Strobl
Learn More. Stay Connected.
@springcentral Spring.io/video
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 53
Spring Data REST – Data Meets Hypermedia + Security
14:30 – 16:00 – Salon M – Roy Clarkson & Greg Turnquist
Learn More. Stay Connected.
@springcentral Spring.io/video
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Questions
54
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Thank You
55
Building Highly Scalable Spring Applications using In-Memory Data Grids

More Related Content

What's hot

Enterprise Systems Built With Microservices are Designed to Expect Failures, ...
Enterprise Systems Built With Microservices are Designed to Expect Failures, ...Enterprise Systems Built With Microservices are Designed to Expect Failures, ...
Enterprise Systems Built With Microservices are Designed to Expect Failures, ...
VMware Tanzu
 
Liferay Developer Best Practices for a Successful Deployment
Liferay Developer Best Practices for a Successful DeploymentLiferay Developer Best Practices for a Successful Deployment
Liferay Developer Best Practices for a Successful Deployment
rivetlogic
 
Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015
Edward Burns
 
Spring Cloud on Kubernetes
Spring Cloud on KubernetesSpring Cloud on Kubernetes
Spring Cloud on Kubernetes
VMware Tanzu
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
Edward Burns
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
 
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
Luis Lopez
 
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK KeynoteJavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Spring Cloud Stream: What's New in 2.x—and What's Next?
Spring Cloud Stream: What's New in 2.x—and What's Next?Spring Cloud Stream: What's New in 2.x—and What's Next?
Spring Cloud Stream: What's New in 2.x—and What's Next?
VMware Tanzu
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
JAXLondon_Conference
 
WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.
Vladimir Beloborodov
 

What's hot (12)

Enterprise Systems Built With Microservices are Designed to Expect Failures, ...
Enterprise Systems Built With Microservices are Designed to Expect Failures, ...Enterprise Systems Built With Microservices are Designed to Expect Failures, ...
Enterprise Systems Built With Microservices are Designed to Expect Failures, ...
 
Liferay Developer Best Practices for a Successful Deployment
Liferay Developer Best Practices for a Successful DeploymentLiferay Developer Best Practices for a Successful Deployment
Liferay Developer Best Practices for a Successful Deployment
 
Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015
 
Spring Cloud on Kubernetes
Spring Cloud on KubernetesSpring Cloud on Kubernetes
Spring Cloud on Kubernetes
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
 
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
 
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK KeynoteJavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
 
Spring Cloud Stream: What's New in 2.x—and What's Next?
Spring Cloud Stream: What's New in 2.x—and What's Next?Spring Cloud Stream: What's New in 2.x—and What's Next?
Spring Cloud Stream: What's New in 2.x—and What's Next?
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
 
WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.WebRTC. Yet Another Overview, for IT Technicians.
WebRTC. Yet Another Overview, for IT Technicians.
 

Viewers also liked

Soap and restful webservice
Soap and restful webserviceSoap and restful webservice
Soap and restful webservice
Dong Ngoc
 
Spring annotation
Spring annotationSpring annotation
Spring annotation
Rajiv Srivastava
 
Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1
Sam Brannen
 
Spring MVC Annotations
Spring MVC AnnotationsSpring MVC Annotations
Spring MVC Annotations
Jordan Silva
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
Jakub Kubrynski
 
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Sam Brannen
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
zeeshanhanif
 
cv..eg -
cv..eg -cv..eg -
cv..eg -
Muhammad sufian
 
Matthew Hartman cv.docx
Matthew Hartman cv.docxMatthew Hartman cv.docx
Matthew Hartman cv.docx
matthew hartman
 
About Specilization
About SpecilizationAbout Specilization
About Specilization
Valera Valera
 
Senior Design Presentation
Senior Design PresentationSenior Design Presentation
Senior Design Presentation
Michael Davis
 
Taraweeh Fatwa
Taraweeh FatwaTaraweeh Fatwa
Taraweeh Fatwa
হিমু আলি
 
Essential-Drugs-Company-Limited
Essential-Drugs-Company-LimitedEssential-Drugs-Company-Limited
Essential-Drugs-Company-Limited
Md. Tanvir Akhter Tonmoy
 
ADV Baby Clementoni - Sales Management
ADV Baby Clementoni - Sales ManagementADV Baby Clementoni - Sales Management
ADV Baby Clementoni - Sales Management
Alex Cameli
 
Weerstand teen teksgebonde navorsing: 'n bydrae tot 'n omgekeerde benadering ...
Weerstand teen teksgebonde navorsing: 'n bydrae tot 'n omgekeerde benadering ...Weerstand teen teksgebonde navorsing: 'n bydrae tot 'n omgekeerde benadering ...
Weerstand teen teksgebonde navorsing: 'n bydrae tot 'n omgekeerde benadering ...
1guestupington
 
Corporate gifts india
Corporate gifts indiaCorporate gifts india
Corporate gifts india
CorporateIndia
 
M025128139
M025128139M025128139
M025128139
Dorcas Eyinla
 
023 - Aqua Latin 101 (Tank Talk 35-04 - December 2007)
023 - Aqua Latin 101 (Tank Talk 35-04 - December 2007)023 - Aqua Latin 101 (Tank Talk 35-04 - December 2007)
023 - Aqua Latin 101 (Tank Talk 35-04 - December 2007)
Derek Tustin
 
Adhir Kumar Shukla Resume.
Adhir Kumar Shukla Resume.Adhir Kumar Shukla Resume.
Adhir Kumar Shukla Resume.
ADHIR KUMAR SHUKLA
 

Viewers also liked (20)

Soap and restful webservice
Soap and restful webserviceSoap and restful webservice
Soap and restful webservice
 
Spring annotation
Spring annotationSpring annotation
Spring annotation
 
Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1Spring Framework 4.0 to 4.1
Spring Framework 4.0 to 4.1
 
Spring MVC Annotations
Spring MVC AnnotationsSpring MVC Annotations
Spring MVC Annotations
 
Introduction to Spring Boot!
Introduction to Spring Boot!Introduction to Spring Boot!
Introduction to Spring Boot!
 
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
Spring Framework 4.0 - The Next Generation - Soft-Shake 2013
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
 
cv..eg -
cv..eg -cv..eg -
cv..eg -
 
Matthew Hartman cv.docx
Matthew Hartman cv.docxMatthew Hartman cv.docx
Matthew Hartman cv.docx
 
About Specilization
About SpecilizationAbout Specilization
About Specilization
 
Senior Design Presentation
Senior Design PresentationSenior Design Presentation
Senior Design Presentation
 
Taraweeh Fatwa
Taraweeh FatwaTaraweeh Fatwa
Taraweeh Fatwa
 
Essential-Drugs-Company-Limited
Essential-Drugs-Company-LimitedEssential-Drugs-Company-Limited
Essential-Drugs-Company-Limited
 
ADV Baby Clementoni - Sales Management
ADV Baby Clementoni - Sales ManagementADV Baby Clementoni - Sales Management
ADV Baby Clementoni - Sales Management
 
CV
CVCV
CV
 
Weerstand teen teksgebonde navorsing: 'n bydrae tot 'n omgekeerde benadering ...
Weerstand teen teksgebonde navorsing: 'n bydrae tot 'n omgekeerde benadering ...Weerstand teen teksgebonde navorsing: 'n bydrae tot 'n omgekeerde benadering ...
Weerstand teen teksgebonde navorsing: 'n bydrae tot 'n omgekeerde benadering ...
 
Corporate gifts india
Corporate gifts indiaCorporate gifts india
Corporate gifts india
 
M025128139
M025128139M025128139
M025128139
 
023 - Aqua Latin 101 (Tank Talk 35-04 - December 2007)
023 - Aqua Latin 101 (Tank Talk 35-04 - December 2007)023 - Aqua Latin 101 (Tank Talk 35-04 - December 2007)
023 - Aqua Latin 101 (Tank Talk 35-04 - December 2007)
 
Adhir Kumar Shukla Resume.
Adhir Kumar Shukla Resume.Adhir Kumar Shukla Resume.
Adhir Kumar Shukla Resume.
 

Similar to Building Highly Scalable Spring Applications using In-Memory Data Grids

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...
William Markito Oliveira
 
Federated Queries with HAWQ - SQL on Hadoop and Beyond
Federated Queries with HAWQ - SQL on Hadoop and BeyondFederated Queries with HAWQ - SQL on Hadoop and Beyond
Federated Queries with HAWQ - SQL on Hadoop and Beyond
Christian Tzolov
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
Joe Stein
 
Migrating from Big Data Architecture to Spring Cloud
Migrating from Big Data Architecture to Spring CloudMigrating from Big Data Architecture to Spring Cloud
Migrating from Big Data Architecture to Spring Cloud
VMware Tanzu
 
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional AppsYugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
VMware Tanzu
 
It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?
VMware Tanzu
 
What We're Learning Adopting Spring Boot and PCF for Dell.com's eCommerce
What We're Learning Adopting Spring Boot and PCF for Dell.com's eCommerceWhat We're Learning Adopting Spring Boot and PCF for Dell.com's eCommerce
What We're Learning Adopting Spring Boot and PCF for Dell.com's eCommerce
VMware Tanzu
 
Cross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud FoundryCross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud Foundry
VMware Tanzu
 
Lattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsLattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring Applications
Matt Stine
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015
Daniel Woods
 
Enable SQL/JDBC Access to Apache Geode/GemFire Using Apache Calcite
Enable SQL/JDBC Access to Apache Geode/GemFire Using Apache CalciteEnable SQL/JDBC Access to Apache Geode/GemFire Using Apache Calcite
Enable SQL/JDBC Access to Apache Geode/GemFire Using Apache Calcite
VMware Tanzu
 
Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-In
Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-InSteeltoe: Develop .NET Microservices Without Cloud Platform Lock-In
Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-In
VMware Tanzu
 
Building a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data FlowBuilding a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data Flow
VMware Tanzu
 
Cloud-Native Streaming and Event-Driven Microservices
Cloud-Native Streaming and Event-Driven MicroservicesCloud-Native Streaming and Event-Driven Microservices
Cloud-Native Streaming and Event-Driven Microservices
VMware Tanzu
 
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
Christian Tzolov
 
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
VMware Tanzu
 
Building a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / SpringBuilding a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / Spring
sdeeg
 
Data Driven Action : A Primer on Data Science
Data Driven Action : A Primer on Data ScienceData Driven Action : A Primer on Data Science
Data Driven Action : A Primer on Data Science
Srivatsan Ramanujam
 
Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques
Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques
Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques
VMware Tanzu
 
Containerizing a Data Warehouse for Kubernetes
Containerizing a Data Warehouse for KubernetesContainerizing a Data Warehouse for Kubernetes
Containerizing a Data Warehouse for Kubernetes
VMware Tanzu
 

Similar to Building Highly Scalable Spring Applications using In-Memory Data Grids (20)

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...
 
Federated Queries with HAWQ - SQL on Hadoop and Beyond
Federated Queries with HAWQ - SQL on Hadoop and BeyondFederated Queries with HAWQ - SQL on Hadoop and Beyond
Federated Queries with HAWQ - SQL on Hadoop and Beyond
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
 
Migrating from Big Data Architecture to Spring Cloud
Migrating from Big Data Architecture to Spring CloudMigrating from Big Data Architecture to Spring Cloud
Migrating from Big Data Architecture to Spring Cloud
 
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional AppsYugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
 
It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?
 
What We're Learning Adopting Spring Boot and PCF for Dell.com's eCommerce
What We're Learning Adopting Spring Boot and PCF for Dell.com's eCommerceWhat We're Learning Adopting Spring Boot and PCF for Dell.com's eCommerce
What We're Learning Adopting Spring Boot and PCF for Dell.com's eCommerce
 
Cross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud FoundryCross-Platform Observability for Cloud Foundry
Cross-Platform Observability for Cloud Foundry
 
Lattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsLattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring Applications
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015
 
Enable SQL/JDBC Access to Apache Geode/GemFire Using Apache Calcite
Enable SQL/JDBC Access to Apache Geode/GemFire Using Apache CalciteEnable SQL/JDBC Access to Apache Geode/GemFire Using Apache Calcite
Enable SQL/JDBC Access to Apache Geode/GemFire Using Apache Calcite
 
Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-In
Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-InSteeltoe: Develop .NET Microservices Without Cloud Platform Lock-In
Steeltoe: Develop .NET Microservices Without Cloud Platform Lock-In
 
Building a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data FlowBuilding a Data Exchange with Spring Cloud Data Flow
Building a Data Exchange with Spring Cloud Data Flow
 
Cloud-Native Streaming and Event-Driven Microservices
Cloud-Native Streaming and Event-Driven MicroservicesCloud-Native Streaming and Event-Driven Microservices
Cloud-Native Streaming and Event-Driven Microservices
 
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
Machines Can Learn - a Practical Take on Machine Intelligence Using Spring Cl...
 
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
Welcome to the Reactive Revolution:RSocket and Spring Cloud Gateway - Spencer...
 
Building a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / SpringBuilding a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / Spring
 
Data Driven Action : A Primer on Data Science
Data Driven Action : A Primer on Data ScienceData Driven Action : A Primer on Data Science
Data Driven Action : A Primer on Data Science
 
Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques
Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques
Re-Platforming Legacy .Net Applications to PCF Using Modernized Techniques
 
Containerizing a Data Warehouse for Kubernetes
Containerizing a Data Warehouse for KubernetesContainerizing a Data Warehouse for Kubernetes
Containerizing a Data Warehouse for Kubernetes
 

More from John Blum

Getting Started with Apache Geode
Getting Started with Apache GeodeGetting Started with Apache Geode
Getting Started with Apache Geode
John Blum
 
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
John Blum
 
Spring Data (GemFire) Overview
Spring Data (GemFire) OverviewSpring Data (GemFire) Overview
Spring Data (GemFire) Overview
John Blum
 
Introducing Apache Geode and Spring Data GemFire
Introducing Apache Geode and Spring Data GemFireIntroducing Apache Geode and Spring Data GemFire
Introducing Apache Geode and Spring Data GemFire
John Blum
 
Building Effective Apache Geode Applications with Spring Data GemFire
Building Effective Apache Geode Applications with Spring Data GemFireBuilding Effective Apache Geode Applications with Spring Data GemFire
Building Effective Apache Geode Applications with Spring Data GemFire
John Blum
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
John Blum
 

More from John Blum (6)

Getting Started with Apache Geode
Getting Started with Apache GeodeGetting Started with Apache Geode
Getting Started with Apache Geode
 
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
 
Spring Data (GemFire) Overview
Spring Data (GemFire) OverviewSpring Data (GemFire) Overview
Spring Data (GemFire) Overview
 
Introducing Apache Geode and Spring Data GemFire
Introducing Apache Geode and Spring Data GemFireIntroducing Apache Geode and Spring Data GemFire
Introducing Apache Geode and Spring Data GemFire
 
Building Effective Apache Geode Applications with Spring Data GemFire
Building Effective Apache Geode Applications with Spring Data GemFireBuilding Effective Apache Geode Applications with Spring Data GemFire
Building Effective Apache Geode Applications with Spring Data GemFire
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 

Recently uploaded

Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 

Recently uploaded (20)

Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 

Building Highly Scalable Spring Applications using In-Memory Data Grids

  • 1. SPRINGONE2GX WASHINGTON, DC Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attributio n-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Building Highly Scalable Spring Applications using In-Memory Data Grids By John Blum & Luke Shannon @john_blum
  • 2. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Presenters 2 John Blum - @john_blum Spring Data GemFire Project Lead Apache Geode Committer GemFire Engineer/Technical Lead Pivotal Software, Inc Luke Shannon Field/Community Engineer Apache Geode Committer Pivotal Software, Inc.
  • 3. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Agenda 3 • Introduction to Apache Geode • Distributed System & In-Memory Database Concepts • Overview of Spring Data GemFire • How to build highly scalable applications • Spring Data GemFire in Action • Fast Foot Shoes Demo • Caching Demo (?) • What’s New • QA
  • 4. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Why Apache Geode? 4 Motivation… 1. Volume of Data (Big Data) 2. Velocity of Data (Fast Data) 3. Verity of Data (Data Accuracy) Enables new and existing Spring applications to operate at cloud-scale in a consistent, highly-available and predictable manner in order to transact and analyze big, fast data in real-time thereby achieving meaningful and impactful business results.
  • 5. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What is Apache Geode? 5 In a nutshell… • Open Source core of Pivotal GemFire • https://pivotal.io/big-data/pivotal-gemfire • Apache Incubator project • https://wiki.apache.org/incubator/GeodeProposal • http://geode.incubator.apache.org/
  • 6. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What is Apache Geode? 6 “A distributed, in-memory compute and data management platform that elastically scales to achieve high- throughput, low-latency access to big, fast data powering business critical, analytical applications in real-time.” – John Blum,  Elastic capacity +/- Nodes Ops / SecLinear scalability Latency optimized data distribution
  • 7. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode Use Cases 7 • Persistent, OLTP/OLAP Database (System of Record) • JSR-107 Cache Provider (Key/Value Store) • HTTP Session State Management • Distributed L2 Caching for Hibernate • Memcached Server (Gemcached) • Message Bus with guaranteed message delivery • Glorified version of ConcurrentHashMap
  • 8. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ China Railway Corporation GemFire runs on ten primary x86 servers with over two terabytes of memory and there are ten backup servers – this has replaced the 72 UNIX boxes and traditional RDBMS with a more efficient, cost-effective approach. With so many people relying on the website for travel, it must be continuously available. Demand has far exceeded expectations and the future shows as much as 50% growth per year as mobile phone access is added. https://pivotal.io/big-data/case-study/scaling-online-sales-for-the-largest- railway-in-the-world-china-railway-corporation 8 China Railway Corporation • 20 million users per day; 40,000 visits per second • 4.5 million ticket purchases &. • Spikes of 15,000 tickets sold per minute “The system is operating with solid performance and uptime. Now, we have a reliable, economically sound production system that supports record volumes and has room to grow” Dr. Jiansheng Zhu, Vice Director of China Academy of Railway Sciences
  • 9. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ How Apache Geode Works 9 • Stores data In-Memory • JVM Heap + Off-Heap • Functions as a Distributed System, In-Memory Data Grid (IMDG) • Pools system resources across multiple nodes in a cluster to manage both application state and behavior • Includes: Memory, CPU, Network & (optionally) Disk • (optional) Stores data to Disk • In OPLOGS | HDFS for Overflow & Persistence
  • 10. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Memory Management Apache Geode manages memory using… • Eviction: LRU • Expiration: Time-To-Live (TTL), Idle Timeout (TTI) • Auto resource management: critical/eviction HEAP % thresholds • (Region) Data Compression: Snappy • JVM/GC Tuning 10
  • 11. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Where to begin? 11 Data NodeData Node Application What about load?
  • 12. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Where to begin? 12 Data Node
  • 13. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Where to begin? 13 Locator High read throughput What about writes?
  • 14. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Where to begin? 14 Locator Partition X Y Z Partition X Y Z Partition A B C Partition A B C High read/write throughput What about consistency? Partition X Y Z
  • 15. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Partition Region 15
  • 16. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Where to begin? 16 Locator Partition X Y Z Partition X Y Z Partition A B C Partition A B C Partition X Y Z Partition A B C Partition X Y Z
  • 17. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Network Partition Resolution 17
  • 18. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode Topologies 18
  • 19. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Summary of Apache Geode • Open Source • In-Memory • Distributed • Scalable (scale-out) • High Throughput & Low/Predictable Latency • Highly Available • Consistent • Durable • Fault Tolerant (resilient) • Data-Aware / Parallel Compute 19
  • 20. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Other Features of Apache Geode • Data Serialization (PDX, Java Serialization) • Delta Propagation • Transactions (Local & Global JTA-based TX) • Querying (OQL) + Continuous Queries • Functions (Stored Procedures) • Native Client Support (C#/C++) • REST API • Management & Monitoring (JMX with Gfsh & Pulse) • Security (Auth, Secure Transport with SSL, No Encryption) • Statistics & Logging (Log4j) 20
  • 21. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data GemFire 21
  • 22. “Simple things should be simple; complex things should be possible” – Alan Kay 22
  • 23. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data GemFire (SDG) 23 Applies Spring's powerful, non-invasive programming model to simplify configuration and development of Apache Geode applications. Spring Ecosystem Integration – Spring Cache Abstraction / Transaction Management – Spring Data Commons + REST – Spring Integration (Inbound/Outbound Channel Adapters) – Spring Session (coming soon) – Spring XD (Sources & Sinks)
  • 24. Apache Geode with Spring Data GemFire and Spring’s Cache Abstraction is a JSR-107 (JCache) caching provider 24 + +
  • 25. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data GemFire Use Cases 25 • Configure & Bootstrap Apache Geode – Replacement for cache.xml; Can be used with Cluster Configuration • Build an Application Peer Cache (Cache) – Embedded Cache • Build an Application Cache Client (ClientCache) – Client/Server
  • 26. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data GemFire Features • Pivotal GemFire / Apache Geode Configuration & Bootstrapping • Spring Data Repositories • CRUD + Querying (OQL) + (basic) POJO Mapping • Annotated-based Function Implementation / Execution • Transaction Management with Spring Transaction Infrastructure • Exception Translation into Spring DAO Exception Hierarchy • Register Interests & Continuous Querying Support • JSON Region Proxies • Data Snapshots Imports/Exports • Client/Server Applications • WAN Architecture Support • GemFire / Geode caching provider support in Spring’s Cache Abstraction 26
  • 27. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data GemFire / Apache Geode Coordinates 27 <repository> <id>spring-libs-snapshot</id> <name>Spring Maven libs-snapshot Repository</name> <url>https://repo.spring.io/libs-snapshot</url> </repository> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-gemfire</artifactId> <version>1.7.0.APACHE-GEODE-EA-SNAPSHOT</version> </dependency>
  • 28. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Configuration & Bootstrapping 28
  • 29. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Configuring Apache Geode with Spring 29 XML Java-based Configuration
  • 30. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Bootstrapping Apache Geode with Spring 30 @SpringBootApplication @ImportResource("/spring-gemfire-context.xml") public class SpringGemFireApplication { public static void main(String[] args) { SpringApplication.run(SpringGemFireApplication.class, args); } } gfsh>start server -–name=Example --spring-xml-location= <classpath-to-spring-application-context.xml>
  • 31. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ EXAMPLE 31
  • 32. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data GemFire in Action Fast Foot Shoes Demo 32
  • 33. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Caching 41
  • 34. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cache Abstraction Caching is useful in cases when an “expensive” operation (i.e. CPU, IO bound) produces the same output given identical input; results can be reused. Spring enables Declarative, Annotation-based Caching…  @Cacheable – triggers cache population  @CacheEvict – triggers cache eviction  @CachePut – updates cache without interfering with method execution  @Caching – groups multiple cache operations per method  @CacheConfig – class-level cache-related settings
  • 35. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Supports JSR-107 (JCache) Spring JCache @Cacheable @CacheResult @CachePut @CachePut @CacheEvict @CacheRemove @CacheEvict(allEntries=true) @CacheRemoveAll @CacheConfig @CacheDefaults http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#cache-jsr-107
  • 36. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode Caching Provider @Configuration @EnableCaching @Import(GemFireConfiguration.class) class ApplicationConfiguration { @Bean public CacheManager cacheManager( Cache gemfireCache) { GemfireCacheManager cacheManager = new GemfireCacheManager(); cacheManager.setCache(gemfireCache); return cacheManager; } } <beans … xmlns:cache=“http://www.springframework.org/schema/cach e”…> <gfe:cache properties- ref="gemfireProperties"/> <cache:annotation-driven/> <bean id="cacheManager" class= ”o.s.data.gemfire.support.GemfireCacheManager" p:cache-ref="gemfireCache"/>
  • 37. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ EXAMPLE 45
  • 38. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s New – Annotation-based Expiration 46 @TimeToLiveExpiration(timeout=“@expirationSettings[‘spel-defined-timeout’]”, action=“DESTROY”) @IdleTimeout(timeout=“300”, action=“${property.placeholder.defined.action}”) class ApplicationDomainObject { .. } <gfe:partitioned-region id="Example" persistent="false"> <gfe:custom-entry-ttl> <bean class=“org.springframework.data.gemfire.support.AnnotationBasedExpiration” factoryMethod=“forTimeToLive”/> </gfe:custom-etnry-ttl> <gfe:custom-entry-tti ref="ttiExpiration"/> </gfe:partitioned-region> <bean id="ttiExpiration" class=”….AnnotationBasedExpiration” factory-method="forIdleTimeout"> <constructor-arg ref="defaultExpirationAttributes"/> </bean> <bean id="defaultExpirationAttributes" class="com.gemstone.gemfire.cache.ExpirationAttributes"> <constructor-arg value="600"/> <constructor-arg value="#{T(com.gemstone.gemfire.cache.ExpirationAction).DESTROY}"/> </bean> http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#bootstrap:region:expiration:annotation
  • 39. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s New – Annotation-based OQL extensions interface CustomerRepository extends GemfireRepository<Customer, Long> { @Trace @Limit(25) @Import(“org.example.app.domain.Customer”) @Hint({ “CustomerIdIdx”, “CustomerLastNameIdx” }) List<Customer> findByLastName(String lastName); } 47 http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#gemfire-repositories.oql-extension
  • 40. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What’s New – Data Snapshot Imports/Exports <gfe:cache/> <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> 48 http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#bootstrap:snapshot
  • 41. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Presentation References  Presentation Slides - http://www.slideshare.net/john_blum  Configuration / Bootstrapping & Caching Example Source Code - https://github.com/jxblum/scalable-spring-gemfire  Fast Foot Shoes Example Source Code - https://github.com/Pivotal-Open-Source- Hub/geode-demo-application
  • 42. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Apache Geode References  Project Page - http://geode.incubator.apache.org/contribute/  Community Events - http://geode.incubator.apache.org/community/  Contribute - http://geode.incubator.apache.org/contribute/ – Ideas - https://cwiki.apache.org/confluence/display/GEODE/How+to+Contribute  Documentation - http://geode.incubator.apache.org/docs/ – Docs Project - https://github.com/project-geode/docs  Source Code - https://github.com/apache/incubator-geode  JIRA - https://issues.apache.org/jira/browse/GEODE  StackOverflow - http://stackoverflow.com/questions/tagged/gemfire+and+geode
  • 43. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Data GemFire References  Project Page - http://projects.spring.io/spring-data/  Documentation – – Reference Guide - http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/ – API - http://docs.spring.io/spring-data-gemfire/docs/current/api/ – Spring IO Guides - http://spring.io/guides – Spring GemFire Examples –  Source Code - https://github.com/spring-projects/spring-data-gemfire  Examples - https://github.com/spring-projects/spring-gemfire-examples  JIRA – https://jira.spring.io/browse/SGF  StackOverflow - http://stackoverflow.com/questions/tagged/spring-data-gemfire
  • 44. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 52 Boot Your Search with Spring 12:45 – 14:15 - Salon M - Christoph Strobl Learn More. Stay Connected. @springcentral Spring.io/video
  • 45. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 53 Spring Data REST – Data Meets Hypermedia + Security 14:30 – 16:00 – Salon M – Roy Clarkson & Greg Turnquist Learn More. Stay Connected. @springcentral Spring.io/video
  • 46. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Questions 54
  • 47. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Thank You 55

Editor's Notes

  1. We are awesome!
  2. Introduction to Apache Geode will cover the Why, What and How? Let’s get started…
  3. Need to manage large quantities of data under extreme load with accuracy and resilience in a reliable way. Big Data == data lake (any and all data) Fast Data == processing streams of events in (near) real-time All about… Data Access
  4. Data is stored in-memory for improved performance (lower latency access) and distributed across the cluster for high-availability (high read/write throughput) with the option to persist data to disk (durability). Scale Out rather Up Throughput (or number of operations) increases as more nodes are added to the cluster Data is stored in distributed, highly-concurrent, in-memory data structures to minimize context switching and contention Data is replicated & partitioned for fast, predictable read/write throughput
  5. Database – ACID properties, local/global (JTA) transactional capable, Indexing, Querying (OQL) and Functions Cache – with Eviction, Expiration, Overflow (to Disk), Read-Through, Write-Through and Write-Behind Messaging – Apache Geode enables event-based application architectures with Register Interests (RI) and Pivotal GemFire builds on that with Continuous Queries (CQ) ConcurrentMap – implements java.util.concurrent.ConcurrentMap interface.
  6. In a nutshell… under-the-hood Apache Geode is implemented… Stores data in-memory with puts. Stores data to disk (synchronously (default) or asynchronously) on persistence and overflow Oplogs are append-only; compaction is necessary HDFS is new and Geode can feed Apache Spark processing streams.
  7. Auto-resource management – actually can prevent Cache (Region) “put” operations
  8. All about Data Storage & Access… Start with GemFire/Geode Data Node, a single Cache Node Add Distributed Regions to store data Perhaps start a cache server and connect a cache client application, or… An application peer cache node (with embedded cache)
  9. Except, what happens when too many clients overload the node… OutOfMemoryErrors!!
  10. Form a GemFire cluster with a Locator (or multicast networking)… Scale-out to handle load Data is Highly Available Durable with Replication & Disk Persistence Resilient to node failure; shared-nothing architecture (each node is independent) Client Connection Pool with Locator… Load Balancing Failover Single-hop, low/predictable latency, data access
  11. Switch to PARTITION Regions (shard the data)… High read/write throughput Control of redundancy level, partitioning policy (default is hash by key; use PartitionResolver to customize), and collocation Automatic rebalance and restore redundancy in the case of peer data node failure
  12. Consistency is achieved by writing to the Primary PARTITION (and then secondaries) and using a Distributed Ack message policy.
  13. Automatic rebalance and redundancy is restored in the case of data node failure
  14. Auto-reconnect by disconnected data nodes.
  15. Consistency, highly-availability are low-latency are important aspects for enabling fast, responsive, resilient and accurate applications at scale.
  16. Data Structures: User-defined Classes, JSON, PDX Functions == MapReduce; Scatter-Gather Publish / Subscribe with Register Interest (RI) & Continuous Queries (CQ) using reliable, async message queues
  17. Why Spring Data GemFire?
  18. And Spring’s programming model is applied in a consistent, familiar manner with other Spring portfolio projects.
  19. Unfortunately this slide was not big enough to list all the features.
  20. Same for Gradle…
  21. Boilerplate, error prone and tedious to do for each application domain object (very non-productive use of time).
  22. Significant improvement, but still too much boilerplate work.
  23. Ideal