SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
GREG LUCK, CO-SPEC LEAD JSR107
@GREGRLUCK CEO | HAZELCAST FOUNDER | EHCACHE FORMER CTO
18 FEBRUARY 2016
How to speed up your
application using JCache
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Agenda
• Theory of Caching
• Java Caching (JCache), JSR-107
• Code Demo
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Introduction to Caching
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Benefits of Caching
• Performance
• Offload expensive or non-scalable parts of your architecture
• Scale up – get the most out of one machine
• Scale out – add more capacity with more machines
• Excellent Buffer against load variability
And…
• Usually very fast and easy to apply
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
When to Use Caching
• When applications use the same data more than once
• When cost (time / resources) of making an initial copy is less
than fetching or producing the data again or when faster to
request from a Cache
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Common Problem Areas that Benefit
Anything Web Scale Anything where the data is across the network
Compound Data Objects Data Persistence
1 3
2 4
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Database Caching
Moving data from the database into the cache increases processing speed 

and can reduce database licensing and maintenance costs.
Speed ✓
Data 

Store
Application
Cache
Application
Cache
Application
Cache
Application
Cache
Costs ✓ Scalability ✓
~200 us
Average Response Time
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Caches are built primarily in RAM

in-process or distributed
Flash/SSD

(serialized form)
Local Storage
Heap

(Objects)
Opaque to 

GC in RAM

(serialized form)
<100 ns
< 100ns

+deserialization time
2
500
1,000+
Latency
Size (GB)
Network Storage
< 50us

+deserialization time
< 140us for 1Gbps

< 70us for 10Gbps/40Gbps

+deserialization time
20,000+Scaleout across the network

(serialized form)
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
‘s law
Estimated Performance Improvements
Predicted System Speedup
=
1 / ((1 – Proportion Sped Up) + Proportion Sped Up / Speed up))
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Cache Efficiency
Cache Efficiency = cache hits / total hits
• High efficiency = high offload
• High efficiency = high performance
• How to increase:
- Put reference data in the cache
- Put long lived in the cache.
- Consider frequency of mutability of data
- Put highly used data in cache
- Increase the size of the cache. Today you can create TB sized caches
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Problems to Consider
• Standalone Caches and the N * problem
- As each entry expires, the backing system gets N requests for data where
n is the number of standalone caches. Solution: Use a distributed cache
• Consistency with the System of Record
- How to keep the cache in sync with changes in a backing system. Solution:
Match mutability of data with data safety configuration. Update the cache
and backing store at the same time.
• Consistency with other cache nodes
- How to keep all cache nodes in sync: Solution: Use a distributed cache and
match consistency configuration with data mutability
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
New JCache Standard (JSR107)
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Java Caching (JCache)
What?
• Java Caching (JCache) standardized Caching for the Java Platform*
• A common mechanism to create, access, update and remove
information from Caches
How?
• JSR-107: Java Caching Specification (JCache)
• Java Community Process (JCP) 2.9
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Java Caching (JCache)
Why?
• Standardize! Standardize! Standardize!
- Core Caching Concepts
- Core Caching API

• Provide application portability between Caching solutions
- Big & Small, Open & Commercial

• Caching is ubiquitous!

• Allows frameworks to depend on JCache and stop creating specific
integrations to each and every cache
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Java Caching (Jcache)
Recent History
Item Date
JCache Final Spec Released 18 March 2014
Spring 4.1 September 2014
Hazelcast 3.3.1 TCK Compliant September 2014
Hazelcast 3.4 (with High-Density Memory Store) November 2014
Hazelcast 3.5 - added HD Memory Store to near cache) June 2015
Most project vendors create implementations June 2014 - June 2015
Hazelcast 3.6 (split brain handler, quorums) January 2016
JCache 1.1 Maintenance Release March 2016
Herenow!
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Java Caching (JCache)
Which Platform?
java.util.Map (Java 6/7) Target Platform
Specification (SPEC) Java 6+ (SE or EE)
Reference Implementation (RI) Java 7+ (SE or EE)
Technology Compatibility Kit (TCK) Java 7+ (SE or EE)
Demos and Samples Java 7+ (SE or EE)
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Implementations
Implementations
• JCache Reference Implementation
• Ehcache
• Hazelcast
• Oracle Coherence
• Infinispan
• GridGain/Apache Ignite
• TayzGrid*
• Caffeine* (Ben Manes)
Keep Track
• https://jcp.org/aboutJava/communityprocess/implementations/jsr107/index.html
• * Being verified by spec leads
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Non-Implementation: Gemfire/Geode
Gemfire/Geode have no plans to implement
Why?
• Gemfire and Geode are directly supported in Spring
• Because Spring supports JCache cache annotations you can use
Gemfire/Geode from Spring but that is it.
See:
• http://apache-geode-incubating-developers-forum.70738.x6.nabble.com/
JCache-JSR-107-support-td1255.html
Campaign to have Pivotal Support JCache:
#PivotalJCache campaign for @PivotalGemFire to support #JSR107 #JCache.
Please retweet or mention #PivotalJCache
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Relationship to NoSQL
Difficult/Impossible for NoSQL to fully implement the spec
• Server Side code execution including: Entry Processors, Listeners,
Write-Through etc.
• Strong Consistency is the default consistency model and is not
supported by most/all NoSQL.
Likely that Couchbase will release a partial implementation 

leaving out EntryProcessor and some other methods with an
UnsupportedOperationException if these methods are called. They
have Developer Preview 2 out.
Using With NoSQL
• Use NoSQL like a database and read-through/write-though to it using
CacheLoader/CacheWriter.
• NoSQL gives you scale our persistence - cache gives you very low
latencies
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Java Caching (JCache)
Project Hosting
• JCP Project:
- http://jcp.org/en/jsr/detail?id=107

• Source Code:
- https://github.com/jsr107

• Forum:
- https://groups.google.com/forum/?fromgroups#!forum/jsr107
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Java Caching (JCache)
How to get it
• Apache Maven (via Maven Central Repository)
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
<version>1.0</version>
</dependency>
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Caches and Caching
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Caches and Caching
JSR107 Cache Definition:
A high-performance, low-latency data-structure* in
which an application places a temporary copy of
information that is likely to be used more than once
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Maps vs Cache APIs
java.util.Map (Java 6/7)
Key-Value Based API
Supports Atomic Updates
Entries Don’t Expire
Entries Aren’t Evicted
Entries Stored On-Heap
Store-By-Reference
javax.cache.Cache (Java 6)
Key-Value Based API
Supports Atomic Updates
Entries May Expire
Entries May Be Evicted
Entries Stored Anywhere (ie: topologies)
Store-By-Value and Store-By-Reference
Supports Integration (ie: Loaders / Writers)
Supports Observation (ie: Listeners)
Entry Processors
Statistics
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache: Features
• java.util.ConcurrentMap like API
• Atomic Operations
• Lock-Free
• Read-Through / Write-Through Integration Support
• Cache Event Listeners
• Fully Generic API = type-safety
• Statistics
• Annotations (for frameworks and containers)
• Store-By-Value semantics (optional store-by-reference)
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache: Features
• Topology Agnostic
- Topologies not defined or restricted by the specification

• Efficiently supports:
- “local” in-memory Caching and
- “distributed” server-based Caching
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache Key Classes/Interfaces
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache: Runtime Structure
Caching

“service loader”
CachingProvider

“SPI implementation”
CacheManager

“manager of caches”
Cache

“interface to a Cache”
*
Created &
Managed By
Created &
Managed By
“application”
Uses..
Loads &
Tracks
*
*
*
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache: Cache Managers
javax.cache.CacheManager
• Establishes, configures, manages and owns named Caches
- Caches may be pre-define or dynamically created at runtime
• Provides Cache infrastructure and resources
• Provides Cache “scoping” (say in a Cluster)
• Provides Cache ClassLoaders (important for store-by-value)
• Provides Cache lifecycle management
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache: Hello World
(via a Cache Manager)
// acquire the default CacheManager
CacheManager manager = Caching.getCacheManager();
// acquire a previously configured cache (via CacheManager)
Cache<Integer, String> cache = manager.getCache(“my-cache”,
Integer.class, String.class);
// put something in the cache
cache.put(123, “Hello World”);
// get something from the cache
String message = cache.get(123);
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Cache Interface & Methods (in IDE)
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache: Entry Processors
Custom atomic operations for everyone!
// acquire a cache
Cache<String, Integer> cache = manager.getCache(“my-cache”,
String.class, Integer.class);
// increment a cached value by 42, returning the old value
int value =
cache.invoke(“key”, new IncrementProcessor<>(), 42);


© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache: Entry Processors
Custom atomic operations for everyone!
public class IncrementProcessor<K>
implements EntryProcessor<K, Integer, Integer>, Serializable {

@Override

public Integer process(MutableEntry<K, Integer> entry,
Object... arguments) {
if (entry.exists()) {
int amount =
arguments.length == 0 ? 1 :(Integer)arguments[0];
int current = entry.getValue();
entry.setValue(count + amount);
return current;
} else {
throw new IllegalStateException(“no entry exists”);
}
}
}
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache: Entry Processors
Custom atomic operations for everyone!
• Eliminate Round-Trips! (in distributed systems)
• Enable development of a Lock-Free API! (simplifies applications)

*May need to be Serializable (in distributed systems)
Application
CacheCache
Application
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache: Entry Processors
Which is better?
// using an entry processor?
int value = cache.invoke(
“key”, new IncrementProcessor<>(), 42);
// using a lock based API?
cache.lock(“key”);
int current = cache.get(“key”);
cache.put(“key”, current + 42);
cache.unlock(“key”);

Java 8Ready!
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Annotations
• JSR107 introduces a standardized set of caching annotations,
which do method level caching interception on annotated
classes running in dependency injection containers.
• Caching annotations are becoming increasingly popular:
- Ehcache Annotations for Spring
- Spring 3’s caching annotations.
• JSR107 Annotations will be added to:
- Java EE 8 (planned?)
- Spring 4.1 (released)
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Annotation Operations
The JSR107 annotations cover the
most common cache operations:
• @CacheResult
• @CachePut
• @CacheRemove
• @CacheRemoveAll
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Fully Annotated Class Example
@CacheDefaults(cacheName = "blogManager")

public class BlogManager {
@CacheResult

public Blog getBlogEntry(String title) {...}
@CacheRemove

public void removeBlogEntry(String title) {...}
@CacheRemoveAll

public void removeAllBlogs() {...}
@CachePut

public void createEntry(@CacheKey String title,
@CacheValue Blog blog) {...}
@CacheResult

public Blog getEntryCached(String randomArg,
@CacheKey String title){...}
}
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache With Spring
• Spring
- uses JCache since 4.1 http://bit.ly/1V0q1Kp
- Added support for JCache cache annotations which can be mixed and
matched with Spring ones
• Spring Boot
- Auto-configuration for any JCache Provider http://bit.ly/1TPQKLx
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
JCache With Java EE
• Java EE
- Can add JCache and an implementation to any Java EE app by adding the
jars and configuring it outside of EE.
• Java EE 8
- JCache added to EE8
- Add JCache Annotations
- Other integration possibilities:
• ejb timer store
• jbatch store
• JPA
- Adam Bien is prepared to lead a JSR to get JCache into EE8. 4
contributors so far. See See https://abhirockzz.wordpress.com/2016/01/21/
jcache-in-java-ee-8/
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
The Future
• JCache 1.1 (2016)
- Maintenance Release being worked on, by me ☺
- Just bug fixes
• Java EE 8 Integration (2017)
• JCache 2.0 (Later)
- Transactions
- Async API
- Servlet 4.0 Integration / Session Caching
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Working with Hazelcast JCache
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Hazelcast JCache Support
Full TCK Compliant implementation for:
• Features:
• Embedded Members
• Clients (caches are stored in Members)
• HD Memory Store for members and near cache
• Very Fast Persistence with the Hot Restart Store
• Docs: http://bit.ly/1Q52yDz
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Hazelcast JCache Performance
• Fastest IMDG using competitors
own benchmarks
• See http://bit.ly/1T36n1m
• We added JCache put/get to
Yardstick and will add it to
RadarGun.
© 2016 Hazelcast Inc. Confidential & Proprietary ‹#›
Questions?
Greg Luck
• @gregrluck
• greg@hazelcast.com
Thank you

Weitere ähnliche Inhalte

Was ist angesagt?

Postgres Plus Cloud Database on OpenStack
Postgres Plus Cloud Database on OpenStackPostgres Plus Cloud Database on OpenStack
Postgres Plus Cloud Database on OpenStackKamesh Pemmaraju
 
Proxysql use case scenarios fosdem17
Proxysql use case scenarios    fosdem17Proxysql use case scenarios    fosdem17
Proxysql use case scenarios fosdem17Alkin Tezuysal
 
MySQL Performance Metrics that Matter
MySQL Performance Metrics that MatterMySQL Performance Metrics that Matter
MySQL Performance Metrics that MatterMorgan Tocker
 
MySQL: From Single Instance to Big Data
MySQL: From Single Instance to Big DataMySQL: From Single Instance to Big Data
MySQL: From Single Instance to Big DataMorgan Tocker
 
Squeezing Performance out of Hazelcast
Squeezing Performance out of HazelcastSqueezing Performance out of Hazelcast
Squeezing Performance out of HazelcastHazelcast
 
Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011Puppet
 
Implementing High Availability Caching with Memcached
Implementing High Availability Caching with MemcachedImplementing High Availability Caching with Memcached
Implementing High Availability Caching with MemcachedGear6
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp
 
MySQL Manchester TT - Performance Tuning
MySQL Manchester TT  - Performance TuningMySQL Manchester TT  - Performance Tuning
MySQL Manchester TT - Performance TuningMark Swarbrick
 
Hadoop Operations at LinkedIn
Hadoop Operations at LinkedInHadoop Operations at LinkedIn
Hadoop Operations at LinkedInDataWorks Summit
 
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015David Brimley
 
Optimizing MySQL for Cascade Server
Optimizing MySQL for Cascade ServerOptimizing MySQL for Cascade Server
Optimizing MySQL for Cascade Serverhannonhill
 
Web session replication with Hazelcast
Web session replication with HazelcastWeb session replication with Hazelcast
Web session replication with HazelcastEmrah Kocaman
 
3. v sphere big data extensions
3. v sphere big data extensions3. v sphere big data extensions
3. v sphere big data extensionsChiou-Nan Chen
 
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014Dave Stokes
 
Caching: A Guided Tour - 10/12/2010
Caching: A Guided Tour - 10/12/2010Caching: A Guided Tour - 10/12/2010
Caching: A Guided Tour - 10/12/2010Jason Ragsdale
 
MySQL Cloud Service Deep Dive
MySQL Cloud Service Deep DiveMySQL Cloud Service Deep Dive
MySQL Cloud Service Deep DiveMorgan Tocker
 
Tulsa tech fest 2010 - web speed and scalability
Tulsa tech fest 2010  - web speed and scalabilityTulsa tech fest 2010  - web speed and scalability
Tulsa tech fest 2010 - web speed and scalabilityJason Ragsdale
 

Was ist angesagt? (20)

Postgres Plus Cloud Database on OpenStack
Postgres Plus Cloud Database on OpenStackPostgres Plus Cloud Database on OpenStack
Postgres Plus Cloud Database on OpenStack
 
Hazelcast Introduction
Hazelcast IntroductionHazelcast Introduction
Hazelcast Introduction
 
Hazelcast 101
Hazelcast 101Hazelcast 101
Hazelcast 101
 
Proxysql use case scenarios fosdem17
Proxysql use case scenarios    fosdem17Proxysql use case scenarios    fosdem17
Proxysql use case scenarios fosdem17
 
MySQL Performance Metrics that Matter
MySQL Performance Metrics that MatterMySQL Performance Metrics that Matter
MySQL Performance Metrics that Matter
 
MySQL: From Single Instance to Big Data
MySQL: From Single Instance to Big DataMySQL: From Single Instance to Big Data
MySQL: From Single Instance to Big Data
 
Squeezing Performance out of Hazelcast
Squeezing Performance out of HazelcastSqueezing Performance out of Hazelcast
Squeezing Performance out of Hazelcast
 
Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011Whirr dev-up-puppetconf2011
Whirr dev-up-puppetconf2011
 
Implementing High Availability Caching with Memcached
Implementing High Availability Caching with MemcachedImplementing High Availability Caching with Memcached
Implementing High Availability Caching with Memcached
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql Fabric
 
MySQL Manchester TT - Performance Tuning
MySQL Manchester TT  - Performance TuningMySQL Manchester TT  - Performance Tuning
MySQL Manchester TT - Performance Tuning
 
Hadoop Operations at LinkedIn
Hadoop Operations at LinkedInHadoop Operations at LinkedIn
Hadoop Operations at LinkedIn
 
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015
JCache (JSR107) - QCon London 2015 & JBCNConf Barcelona 2015
 
Optimizing MySQL for Cascade Server
Optimizing MySQL for Cascade ServerOptimizing MySQL for Cascade Server
Optimizing MySQL for Cascade Server
 
Web session replication with Hazelcast
Web session replication with HazelcastWeb session replication with Hazelcast
Web session replication with Hazelcast
 
3. v sphere big data extensions
3. v sphere big data extensions3. v sphere big data extensions
3. v sphere big data extensions
 
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
 
Caching: A Guided Tour - 10/12/2010
Caching: A Guided Tour - 10/12/2010Caching: A Guided Tour - 10/12/2010
Caching: A Guided Tour - 10/12/2010
 
MySQL Cloud Service Deep Dive
MySQL Cloud Service Deep DiveMySQL Cloud Service Deep Dive
MySQL Cloud Service Deep Dive
 
Tulsa tech fest 2010 - web speed and scalability
Tulsa tech fest 2010  - web speed and scalabilityTulsa tech fest 2010  - web speed and scalability
Tulsa tech fest 2010 - web speed and scalability
 

Ähnlich wie Caching and JCache with Greg Luck 18.02.16

Using JCache to speed up your apps
Using JCache to speed up your appsUsing JCache to speed up your apps
Using JCache to speed up your appsVassilis Bekiaris
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018harvraja
 
Geek Nights Hong Kong
Geek Nights Hong KongGeek Nights Hong Kong
Geek Nights Hong KongRahul Gupta
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
 
VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld
 
MySQL :What's New #GIDS16
MySQL :What's New #GIDS16MySQL :What's New #GIDS16
MySQL :What's New #GIDS16Sanjay Manwani
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance DrupalChapter Three
 
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stack
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stackAccelerating analytics in the cloud with the Starburst Presto + Alluxio stack
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stackAlluxio, Inc.
 
Spark introduction and architecture
Spark introduction and architectureSpark introduction and architecture
Spark introduction and architectureSohil Jain
 
Spark introduction and architecture
Spark introduction and architectureSpark introduction and architecture
Spark introduction and architectureSohil Jain
 
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita IvanovGridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita IvanovJAXLondon2014
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQLKonstantin Gredeskoul
 
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!Tinku Ajit
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansPeter Clapham
 
HPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyHPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyPeter Clapham
 
Where Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsWhere Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsConcentric Sky
 
In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014Hazelcast
 
More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)Michael Collier
 
Building Effective Near-Real-Time Analytics with Spark Streaming and Kudu
Building Effective Near-Real-Time Analytics with Spark Streaming and KuduBuilding Effective Near-Real-Time Analytics with Spark Streaming and Kudu
Building Effective Near-Real-Time Analytics with Spark Streaming and KuduJeremy Beard
 

Ähnlich wie Caching and JCache with Greg Luck 18.02.16 (20)

Using JCache to speed up your apps
Using JCache to speed up your appsUsing JCache to speed up your apps
Using JCache to speed up your apps
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018
 
Geek Nights Hong Kong
Geek Nights Hong KongGeek Nights Hong Kong
Geek Nights Hong Kong
 
From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.From cache to in-memory data grid. Introduction to Hazelcast.
From cache to in-memory data grid. Introduction to Hazelcast.
 
VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right VMworld 2013: Virtualizing Databases: Doing IT Right
VMworld 2013: Virtualizing Databases: Doing IT Right
 
MySQL :What's New #GIDS16
MySQL :What's New #GIDS16MySQL :What's New #GIDS16
MySQL :What's New #GIDS16
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
 
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stack
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stackAccelerating analytics in the cloud with the Starburst Presto + Alluxio stack
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stack
 
Spark introduction and architecture
Spark introduction and architectureSpark introduction and architecture
Spark introduction and architecture
 
Spark introduction and architecture
Spark introduction and architectureSpark introduction and architecture
Spark introduction and architecture
 
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita IvanovGridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
GridGain 6.0: Open Source In-Memory Computing Platform - Nikita Ivanov
 
12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL12-Step Program for Scaling Web Applications on PostgreSQL
12-Step Program for Scaling Web Applications on PostgreSQL
 
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
MySQL Enterprise Backup: Better Very Large Database Backup & Recovery and More!!
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
 
Flexible compute
Flexible computeFlexible compute
Flexible compute
 
HPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyHPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journey
 
Where Django Caching Bust at the Seams
Where Django Caching Bust at the SeamsWhere Django Caching Bust at the Seams
Where Django Caching Bust at the Seams
 
In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014
 
More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)
 
Building Effective Near-Real-Time Analytics with Spark Streaming and Kudu
Building Effective Near-Real-Time Analytics with Spark Streaming and KuduBuilding Effective Near-Real-Time Analytics with Spark Streaming and Kudu
Building Effective Near-Real-Time Analytics with Spark Streaming and Kudu
 

Mehr von Comsysto Reply GmbH

Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyArchitectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyComsysto Reply GmbH
 
ljug-meetup-2023-03-hexagonal-architecture.pdf
ljug-meetup-2023-03-hexagonal-architecture.pdfljug-meetup-2023-03-hexagonal-architecture.pdf
ljug-meetup-2023-03-hexagonal-architecture.pdfComsysto Reply GmbH
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableComsysto Reply GmbH
 
Invited-Talk_PredAnalytics_München (2).pdf
Invited-Talk_PredAnalytics_München (2).pdfInvited-Talk_PredAnalytics_München (2).pdf
Invited-Talk_PredAnalytics_München (2).pdfComsysto Reply GmbH
 
MicroFrontends für Microservices
MicroFrontends für MicroservicesMicroFrontends für Microservices
MicroFrontends für MicroservicesComsysto Reply GmbH
 
Bable on Smart City Munich Meetup: How cities are leveraging innovative partn...
Bable on Smart City Munich Meetup: How cities are leveraging innovative partn...Bable on Smart City Munich Meetup: How cities are leveraging innovative partn...
Bable on Smart City Munich Meetup: How cities are leveraging innovative partn...Comsysto Reply GmbH
 
Smart City Munich Kickoff Meetup
Smart City Munich Kickoff Meetup Smart City Munich Kickoff Meetup
Smart City Munich Kickoff Meetup Comsysto Reply GmbH
 
Data Reliability Challenges with Spark by Henning Kropp (Spark & Hadoop User ...
Data Reliability Challenges with Spark by Henning Kropp (Spark & Hadoop User ...Data Reliability Challenges with Spark by Henning Kropp (Spark & Hadoop User ...
Data Reliability Challenges with Spark by Henning Kropp (Spark & Hadoop User ...Comsysto Reply GmbH
 
"Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wo...
"Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wo..."Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wo...
"Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wo...Comsysto Reply GmbH
 
Data lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid ArchitecturesData lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid ArchitecturesComsysto Reply GmbH
 
Java 9 Modularity and Project Jigsaw
Java 9 Modularity and Project JigsawJava 9 Modularity and Project Jigsaw
Java 9 Modularity and Project JigsawComsysto Reply GmbH
 
Distributed Computing and Caching in the Cloud: Hazelcast and Microsoft
Distributed Computing and Caching in the Cloud: Hazelcast and MicrosoftDistributed Computing and Caching in the Cloud: Hazelcast and Microsoft
Distributed Computing and Caching in the Cloud: Hazelcast and MicrosoftComsysto Reply GmbH
 
Grundlegende Konzepte von Elm, React und AngularDart 2 im Vergleich
Grundlegende Konzepte von Elm, React und AngularDart 2 im VergleichGrundlegende Konzepte von Elm, React und AngularDart 2 im Vergleich
Grundlegende Konzepte von Elm, React und AngularDart 2 im VergleichComsysto Reply GmbH
 
Building a fully-automated Fast Data Platform
Building a fully-automated Fast Data PlatformBuilding a fully-automated Fast Data Platform
Building a fully-automated Fast Data PlatformComsysto Reply GmbH
 
Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications Comsysto Reply GmbH
 
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMNEin Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMNComsysto Reply GmbH
 
Geospatial applications created using java script(and nosql)
Geospatial applications created using java script(and nosql)Geospatial applications created using java script(and nosql)
Geospatial applications created using java script(and nosql)Comsysto Reply GmbH
 
Java cro 2016 - From.... to Scrum by Jurica Krizanic
Java cro 2016 - From.... to Scrum by Jurica KrizanicJava cro 2016 - From.... to Scrum by Jurica Krizanic
Java cro 2016 - From.... to Scrum by Jurica KrizanicComsysto Reply GmbH
 
21.04.2016 Meetup: Spark vs. Flink
21.04.2016 Meetup: Spark vs. Flink21.04.2016 Meetup: Spark vs. Flink
21.04.2016 Meetup: Spark vs. FlinkComsysto Reply GmbH
 

Mehr von Comsysto Reply GmbH (20)

Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyArchitectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and Consistently
 
ljug-meetup-2023-03-hexagonal-architecture.pdf
ljug-meetup-2023-03-hexagonal-architecture.pdfljug-meetup-2023-03-hexagonal-architecture.pdf
ljug-meetup-2023-03-hexagonal-architecture.pdf
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Invited-Talk_PredAnalytics_München (2).pdf
Invited-Talk_PredAnalytics_München (2).pdfInvited-Talk_PredAnalytics_München (2).pdf
Invited-Talk_PredAnalytics_München (2).pdf
 
MicroFrontends für Microservices
MicroFrontends für MicroservicesMicroFrontends für Microservices
MicroFrontends für Microservices
 
Alles offen = gut(ai)
Alles offen = gut(ai)Alles offen = gut(ai)
Alles offen = gut(ai)
 
Bable on Smart City Munich Meetup: How cities are leveraging innovative partn...
Bable on Smart City Munich Meetup: How cities are leveraging innovative partn...Bable on Smart City Munich Meetup: How cities are leveraging innovative partn...
Bable on Smart City Munich Meetup: How cities are leveraging innovative partn...
 
Smart City Munich Kickoff Meetup
Smart City Munich Kickoff Meetup Smart City Munich Kickoff Meetup
Smart City Munich Kickoff Meetup
 
Data Reliability Challenges with Spark by Henning Kropp (Spark & Hadoop User ...
Data Reliability Challenges with Spark by Henning Kropp (Spark & Hadoop User ...Data Reliability Challenges with Spark by Henning Kropp (Spark & Hadoop User ...
Data Reliability Challenges with Spark by Henning Kropp (Spark & Hadoop User ...
 
"Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wo...
"Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wo..."Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wo...
"Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wo...
 
Data lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid ArchitecturesData lake vs Data Warehouse: Hybrid Architectures
Data lake vs Data Warehouse: Hybrid Architectures
 
Java 9 Modularity and Project Jigsaw
Java 9 Modularity and Project JigsawJava 9 Modularity and Project Jigsaw
Java 9 Modularity and Project Jigsaw
 
Distributed Computing and Caching in the Cloud: Hazelcast and Microsoft
Distributed Computing and Caching in the Cloud: Hazelcast and MicrosoftDistributed Computing and Caching in the Cloud: Hazelcast and Microsoft
Distributed Computing and Caching in the Cloud: Hazelcast and Microsoft
 
Grundlegende Konzepte von Elm, React und AngularDart 2 im Vergleich
Grundlegende Konzepte von Elm, React und AngularDart 2 im VergleichGrundlegende Konzepte von Elm, React und AngularDart 2 im Vergleich
Grundlegende Konzepte von Elm, React und AngularDart 2 im Vergleich
 
Building a fully-automated Fast Data Platform
Building a fully-automated Fast Data PlatformBuilding a fully-automated Fast Data Platform
Building a fully-automated Fast Data Platform
 
Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications
 
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMNEin Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN
Ein Prozess lernt laufen: LEGO Mindstorms Steuerung mit BPMN
 
Geospatial applications created using java script(and nosql)
Geospatial applications created using java script(and nosql)Geospatial applications created using java script(and nosql)
Geospatial applications created using java script(and nosql)
 
Java cro 2016 - From.... to Scrum by Jurica Krizanic
Java cro 2016 - From.... to Scrum by Jurica KrizanicJava cro 2016 - From.... to Scrum by Jurica Krizanic
Java cro 2016 - From.... to Scrum by Jurica Krizanic
 
21.04.2016 Meetup: Spark vs. Flink
21.04.2016 Meetup: Spark vs. Flink21.04.2016 Meetup: Spark vs. Flink
21.04.2016 Meetup: Spark vs. Flink
 

Kürzlich hochgeladen

Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxolyaivanovalion
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightDelhi Call girls
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxolyaivanovalion
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...shivangimorya083
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxolyaivanovalion
 
Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...shambhavirathore45
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxolyaivanovalion
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAroojKhan71
 
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779Delhi Call girls
 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxolyaivanovalion
 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Zuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxZuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxolyaivanovalion
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxolyaivanovalion
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxolyaivanovalion
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfLars Albertsson
 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionfulawalesam
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Callshivangimorya083
 

Kürzlich hochgeladen (20)

Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptx
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptx
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 
Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
 
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
Best VIP Call Girls Noida Sector 22 Call Me: 8448380779
 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptx
 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
 
Zuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptxZuja dropshipping via API with DroFx.pptx
Zuja dropshipping via API with DroFx.pptx
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
 
Week-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interactionWeek-01-2.ppt BBB human Computer interaction
Week-01-2.ppt BBB human Computer interaction
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
 
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in  KishangarhDelhi 99530 vip 56974 Genuine Escort Service Call Girls in  Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
 

Caching and JCache with Greg Luck 18.02.16

  • 1. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› GREG LUCK, CO-SPEC LEAD JSR107 @GREGRLUCK CEO | HAZELCAST FOUNDER | EHCACHE FORMER CTO 18 FEBRUARY 2016 How to speed up your application using JCache
  • 2. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Agenda • Theory of Caching • Java Caching (JCache), JSR-107 • Code Demo
  • 3. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Introduction to Caching
  • 4. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Benefits of Caching • Performance • Offload expensive or non-scalable parts of your architecture • Scale up – get the most out of one machine • Scale out – add more capacity with more machines • Excellent Buffer against load variability And… • Usually very fast and easy to apply
  • 5. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› When to Use Caching • When applications use the same data more than once • When cost (time / resources) of making an initial copy is less than fetching or producing the data again or when faster to request from a Cache
  • 6. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Common Problem Areas that Benefit Anything Web Scale Anything where the data is across the network Compound Data Objects Data Persistence 1 3 2 4
  • 7. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Database Caching Moving data from the database into the cache increases processing speed 
 and can reduce database licensing and maintenance costs. Speed ✓ Data 
 Store Application Cache Application Cache Application Cache Application Cache Costs ✓ Scalability ✓ ~200 us Average Response Time
  • 8. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Caches are built primarily in RAM
 in-process or distributed Flash/SSD
 (serialized form) Local Storage Heap
 (Objects) Opaque to 
 GC in RAM
 (serialized form) <100 ns < 100ns
 +deserialization time 2 500 1,000+ Latency Size (GB) Network Storage < 50us
 +deserialization time < 140us for 1Gbps
 < 70us for 10Gbps/40Gbps
 +deserialization time 20,000+Scaleout across the network
 (serialized form)
  • 9. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› ‘s law Estimated Performance Improvements Predicted System Speedup = 1 / ((1 – Proportion Sped Up) + Proportion Sped Up / Speed up))
  • 10. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Cache Efficiency Cache Efficiency = cache hits / total hits • High efficiency = high offload • High efficiency = high performance • How to increase: - Put reference data in the cache - Put long lived in the cache. - Consider frequency of mutability of data - Put highly used data in cache - Increase the size of the cache. Today you can create TB sized caches
  • 11. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Problems to Consider • Standalone Caches and the N * problem - As each entry expires, the backing system gets N requests for data where n is the number of standalone caches. Solution: Use a distributed cache • Consistency with the System of Record - How to keep the cache in sync with changes in a backing system. Solution: Match mutability of data with data safety configuration. Update the cache and backing store at the same time. • Consistency with other cache nodes - How to keep all cache nodes in sync: Solution: Use a distributed cache and match consistency configuration with data mutability
  • 12. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› New JCache Standard (JSR107)
  • 13. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Java Caching (JCache) What? • Java Caching (JCache) standardized Caching for the Java Platform* • A common mechanism to create, access, update and remove information from Caches How? • JSR-107: Java Caching Specification (JCache) • Java Community Process (JCP) 2.9
  • 14. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Java Caching (JCache) Why? • Standardize! Standardize! Standardize! - Core Caching Concepts - Core Caching API
 • Provide application portability between Caching solutions - Big & Small, Open & Commercial
 • Caching is ubiquitous!
 • Allows frameworks to depend on JCache and stop creating specific integrations to each and every cache
  • 15. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Java Caching (Jcache) Recent History Item Date JCache Final Spec Released 18 March 2014 Spring 4.1 September 2014 Hazelcast 3.3.1 TCK Compliant September 2014 Hazelcast 3.4 (with High-Density Memory Store) November 2014 Hazelcast 3.5 - added HD Memory Store to near cache) June 2015 Most project vendors create implementations June 2014 - June 2015 Hazelcast 3.6 (split brain handler, quorums) January 2016 JCache 1.1 Maintenance Release March 2016 Herenow!
  • 16. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Java Caching (JCache) Which Platform? java.util.Map (Java 6/7) Target Platform Specification (SPEC) Java 6+ (SE or EE) Reference Implementation (RI) Java 7+ (SE or EE) Technology Compatibility Kit (TCK) Java 7+ (SE or EE) Demos and Samples Java 7+ (SE or EE)
  • 17. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Implementations Implementations • JCache Reference Implementation • Ehcache • Hazelcast • Oracle Coherence • Infinispan • GridGain/Apache Ignite • TayzGrid* • Caffeine* (Ben Manes) Keep Track • https://jcp.org/aboutJava/communityprocess/implementations/jsr107/index.html • * Being verified by spec leads
  • 18. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Non-Implementation: Gemfire/Geode Gemfire/Geode have no plans to implement Why? • Gemfire and Geode are directly supported in Spring • Because Spring supports JCache cache annotations you can use Gemfire/Geode from Spring but that is it. See: • http://apache-geode-incubating-developers-forum.70738.x6.nabble.com/ JCache-JSR-107-support-td1255.html Campaign to have Pivotal Support JCache: #PivotalJCache campaign for @PivotalGemFire to support #JSR107 #JCache. Please retweet or mention #PivotalJCache
  • 19. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Relationship to NoSQL Difficult/Impossible for NoSQL to fully implement the spec • Server Side code execution including: Entry Processors, Listeners, Write-Through etc. • Strong Consistency is the default consistency model and is not supported by most/all NoSQL. Likely that Couchbase will release a partial implementation 
 leaving out EntryProcessor and some other methods with an UnsupportedOperationException if these methods are called. They have Developer Preview 2 out. Using With NoSQL • Use NoSQL like a database and read-through/write-though to it using CacheLoader/CacheWriter. • NoSQL gives you scale our persistence - cache gives you very low latencies
  • 20. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Java Caching (JCache) Project Hosting • JCP Project: - http://jcp.org/en/jsr/detail?id=107
 • Source Code: - https://github.com/jsr107
 • Forum: - https://groups.google.com/forum/?fromgroups#!forum/jsr107
  • 21. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Java Caching (JCache) How to get it • Apache Maven (via Maven Central Repository) <dependency> <groupId>javax.cache</groupId> <artifactId>cache-api</artifactId> <version>1.0</version> </dependency>
  • 22. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Caches and Caching
  • 23. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Caches and Caching JSR107 Cache Definition: A high-performance, low-latency data-structure* in which an application places a temporary copy of information that is likely to be used more than once
  • 24. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Maps vs Cache APIs java.util.Map (Java 6/7) Key-Value Based API Supports Atomic Updates Entries Don’t Expire Entries Aren’t Evicted Entries Stored On-Heap Store-By-Reference javax.cache.Cache (Java 6) Key-Value Based API Supports Atomic Updates Entries May Expire Entries May Be Evicted Entries Stored Anywhere (ie: topologies) Store-By-Value and Store-By-Reference Supports Integration (ie: Loaders / Writers) Supports Observation (ie: Listeners) Entry Processors Statistics
  • 25. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache: Features • java.util.ConcurrentMap like API • Atomic Operations • Lock-Free • Read-Through / Write-Through Integration Support • Cache Event Listeners • Fully Generic API = type-safety • Statistics • Annotations (for frameworks and containers) • Store-By-Value semantics (optional store-by-reference)
  • 26. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache: Features • Topology Agnostic - Topologies not defined or restricted by the specification
 • Efficiently supports: - “local” in-memory Caching and - “distributed” server-based Caching
  • 27. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache Key Classes/Interfaces
  • 28. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache: Runtime Structure Caching
 “service loader” CachingProvider
 “SPI implementation” CacheManager
 “manager of caches” Cache
 “interface to a Cache” * Created & Managed By Created & Managed By “application” Uses.. Loads & Tracks * * *
  • 29. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache: Cache Managers javax.cache.CacheManager • Establishes, configures, manages and owns named Caches - Caches may be pre-define or dynamically created at runtime • Provides Cache infrastructure and resources • Provides Cache “scoping” (say in a Cluster) • Provides Cache ClassLoaders (important for store-by-value) • Provides Cache lifecycle management
  • 30. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache: Hello World (via a Cache Manager) // acquire the default CacheManager CacheManager manager = Caching.getCacheManager(); // acquire a previously configured cache (via CacheManager) Cache<Integer, String> cache = manager.getCache(“my-cache”, Integer.class, String.class); // put something in the cache cache.put(123, “Hello World”); // get something from the cache String message = cache.get(123);
  • 31. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Cache Interface & Methods (in IDE)
  • 32. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache: Entry Processors Custom atomic operations for everyone! // acquire a cache Cache<String, Integer> cache = manager.getCache(“my-cache”, String.class, Integer.class); // increment a cached value by 42, returning the old value int value = cache.invoke(“key”, new IncrementProcessor<>(), 42); 

  • 33. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache: Entry Processors Custom atomic operations for everyone! public class IncrementProcessor<K> implements EntryProcessor<K, Integer, Integer>, Serializable {
 @Override
 public Integer process(MutableEntry<K, Integer> entry, Object... arguments) { if (entry.exists()) { int amount = arguments.length == 0 ? 1 :(Integer)arguments[0]; int current = entry.getValue(); entry.setValue(count + amount); return current; } else { throw new IllegalStateException(“no entry exists”); } } }
  • 34. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache: Entry Processors Custom atomic operations for everyone! • Eliminate Round-Trips! (in distributed systems) • Enable development of a Lock-Free API! (simplifies applications)
 *May need to be Serializable (in distributed systems) Application CacheCache Application
  • 35. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache: Entry Processors Which is better? // using an entry processor? int value = cache.invoke( “key”, new IncrementProcessor<>(), 42); // using a lock based API? cache.lock(“key”); int current = cache.get(“key”); cache.put(“key”, current + 42); cache.unlock(“key”);
 Java 8Ready!
  • 36. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Annotations • JSR107 introduces a standardized set of caching annotations, which do method level caching interception on annotated classes running in dependency injection containers. • Caching annotations are becoming increasingly popular: - Ehcache Annotations for Spring - Spring 3’s caching annotations. • JSR107 Annotations will be added to: - Java EE 8 (planned?) - Spring 4.1 (released)
  • 37. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Annotation Operations The JSR107 annotations cover the most common cache operations: • @CacheResult • @CachePut • @CacheRemove • @CacheRemoveAll
  • 38. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Fully Annotated Class Example @CacheDefaults(cacheName = "blogManager")
 public class BlogManager { @CacheResult
 public Blog getBlogEntry(String title) {...} @CacheRemove
 public void removeBlogEntry(String title) {...} @CacheRemoveAll
 public void removeAllBlogs() {...} @CachePut
 public void createEntry(@CacheKey String title, @CacheValue Blog blog) {...} @CacheResult
 public Blog getEntryCached(String randomArg, @CacheKey String title){...} }
  • 39. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache With Spring • Spring - uses JCache since 4.1 http://bit.ly/1V0q1Kp - Added support for JCache cache annotations which can be mixed and matched with Spring ones • Spring Boot - Auto-configuration for any JCache Provider http://bit.ly/1TPQKLx
  • 40. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› JCache With Java EE • Java EE - Can add JCache and an implementation to any Java EE app by adding the jars and configuring it outside of EE. • Java EE 8 - JCache added to EE8 - Add JCache Annotations - Other integration possibilities: • ejb timer store • jbatch store • JPA - Adam Bien is prepared to lead a JSR to get JCache into EE8. 4 contributors so far. See See https://abhirockzz.wordpress.com/2016/01/21/ jcache-in-java-ee-8/
  • 41. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› The Future • JCache 1.1 (2016) - Maintenance Release being worked on, by me ☺ - Just bug fixes • Java EE 8 Integration (2017) • JCache 2.0 (Later) - Transactions - Async API - Servlet 4.0 Integration / Session Caching
  • 42. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Working with Hazelcast JCache
  • 43. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Hazelcast JCache Support Full TCK Compliant implementation for: • Features: • Embedded Members • Clients (caches are stored in Members) • HD Memory Store for members and near cache • Very Fast Persistence with the Hot Restart Store • Docs: http://bit.ly/1Q52yDz
  • 44. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Hazelcast JCache Performance • Fastest IMDG using competitors own benchmarks • See http://bit.ly/1T36n1m • We added JCache put/get to Yardstick and will add it to RadarGun.
  • 45. © 2016 Hazelcast Inc. Confidential & Proprietary ‹#› Questions? Greg Luck • @gregrluck • greg@hazelcast.com