SlideShare a Scribd company logo
1 of 93
Download to read offline
@ljacomet#ehcachedvx
Caching reboot
javax.cache & Ehcache 3
@ljacomet#ehcachedvx
Agenda
@ljacomet#ehcachedvx
Agenda
• Why a cache?
@ljacomet#ehcachedvx
Agenda
• Why a cache?
• JSR-107
• APIs and features
• Provider extensions
@ljacomet#ehcachedvx
Agenda
• Why a cache?
• JSR-107
• APIs and features
• Provider extensions
• Caching in an application
• Cache aside
• Cache through
@ljacomet#ehcachedvx
Agenda
• Why a cache?
• JSR-107
• APIs and features
• Provider extensions
• Caching in an application
• Cache aside
• Cache through
• Resilience strategy
@ljacomet#ehcachedvx
Agenda
• Why a cache?
• JSR-107
• APIs and features
• Provider extensions
• Caching in an application
• Cache aside
• Cache through
• Resilience strategy
• Extras
@ljacomet#ehcachedvx
Who am I?
• Louis Jacomet
• Software engineer, closer to 40 than 20 and still coding!
• Engineer at Terracotta (Software AG) since 2013
• Working on Ehcache OS and EE mostly
• team manager and fiddling in infrastructure
• No idea how to do a (nice) UI - especially a web one
• Enjoys concurrency, thinking hard about APIs, …
Why a cache?
@ljacomet#ehcachedvx
Why a cache?
@ljacomet#ehcachedvx
What were these numbers?
@ljacomet#ehcachedvx
What were these numbers?
• Minute:
• L1$cache$access$$$$$$$$$$$$$$$0,5$s$$$One$heartbeat$
• Branch$misprediction$$$$$$$$$$5$$$s$$$Yawn$
• L2$cache$access$$$$$$$$$$$$$$$7$$$s$$$Long$yawn$
• Mutex$lock/unlock$$$$$$$$$$$$25$$$s$$$Coffee$preparation
@ljacomet#ehcachedvx
What were these numbers?
• Minute:
• L1$cache$access$$$$$$$$$$$$$$$0,5$s$$$One$heartbeat$
• Branch$misprediction$$$$$$$$$$5$$$s$$$Yawn$
• L2$cache$access$$$$$$$$$$$$$$$7$$$s$$$Long$yawn$
• Mutex$lock/unlock$$$$$$$$$$$$25$$$s$$$Coffee$preparation
• Hour:
• RAM$access$$$$$$$$$$$$$$$$$$100$$$s$$$Brushing$your$teeth$
• Compressing$1K$$$$$$$$$$$$$$$50$$$min$One$TV$show$episode
@ljacomet#ehcachedvx
What were these numbers?
• Minute:
• L1$cache$access$$$$$$$$$$$$$$$0,5$s$$$One$heartbeat$
• Branch$misprediction$$$$$$$$$$5$$$s$$$Yawn$
• L2$cache$access$$$$$$$$$$$$$$$7$$$s$$$Long$yawn$
• Mutex$lock/unlock$$$$$$$$$$$$25$$$s$$$Coffee$preparation
• Hour:
• RAM$access$$$$$$$$$$$$$$$$$$100$$$s$$$Brushing$your$teeth$
• Compressing$1K$$$$$$$$$$$$$$$50$$$min$One$TV$show$episode
• Day:
• 2KB$sent$on$1GB$network$$$$$$$5,5$h$$$Your$work$afternoon
@ljacomet#ehcachedvx
What were these numbers?
@ljacomet#ehcachedvx
What were these numbers?
• Week:
• Random$read$SSD$$$$$$$$$$$$$$$$$1,7$d$$$$$$$A$weekNend$
• Sequence$read$1$MB$from$RAM$$$$$2,9$d$$$$$$$A$long$weekNend$
• Round$trip$in$datacenter$$$$$$$$5,8$d$$$$$$$Holidays$
• Sequence$read$1MB$from$SSD$$$$$11,6$d$$$$$$$Two$weeks$delivery
@ljacomet#ehcachedvx
What were these numbers?
• Week:
• Random$read$SSD$$$$$$$$$$$$$$$$$1,7$d$$$$$$$A$weekNend$
• Sequence$read$1$MB$from$RAM$$$$$2,9$d$$$$$$$A$long$weekNend$
• Round$trip$in$datacenter$$$$$$$$5,8$d$$$$$$$Holidays$
• Sequence$read$1MB$from$SSD$$$$$11,6$d$$$$$$$Two$weeks$delivery
• Year:
• Seek$on$rotational$HDD$$$$$$$$$16,5$weeks$$$School$semester$
• Sequence$read$1MB$from$HDD$$$$$$7,8$months$$Almost$a$baby
@ljacomet#ehcachedvx
What were these numbers?
• Week:
• Random$read$SSD$$$$$$$$$$$$$$$$$1,7$d$$$$$$$A$weekNend$
• Sequence$read$1$MB$from$RAM$$$$$2,9$d$$$$$$$A$long$weekNend$
• Round$trip$in$datacenter$$$$$$$$5,8$d$$$$$$$Holidays$
• Sequence$read$1MB$from$SSD$$$$$11,6$d$$$$$$$Two$weeks$delivery
• Year:
• Seek$on$rotational$HDD$$$$$$$$$16,5$weeks$$$School$semester$
• Sequence$read$1MB$from$HDD$$$$$$7,8$months$$Almost$a$baby
• Decade:
• Data$roundNtrip$around$the$world$4,8$years$$PhD$thesis
@ljacomet#ehcachedvx
So what is a cache?
@ljacomet#ehcachedvx
So what is a cache?
• Data structure holding a temporary copy of some data
@ljacomet#ehcachedvx
So what is a cache?
• Data structure holding a temporary copy of some data
• Trade off between higher memory usage for reduced latency
@ljacomet#ehcachedvx
So what is a cache?
• Data structure holding a temporary copy of some data
• Trade off between higher memory usage for reduced latency
• Targets :
• Data which is reused
• Data which is expensive to compute or retrieve
@ljacomet#ehcachedvx
Ehcache (3)
@ljacomet#ehcachedvx
Ehcache (3)
• New version, fully integrated with JSR-107
• Breaks compatibility with 2.x line
@ljacomet#ehcachedvx
Ehcache (3)
• New version, fully integrated with JSR-107
• Breaks compatibility with 2.x line
• Developed in the open
• https://github.com/ehcache/ehcache3
@ljacomet#ehcachedvx
Ehcache (3)
• New version, fully integrated with JSR-107
• Breaks compatibility with 2.x line
• Developed in the open
• https://github.com/ehcache/ehcache3
• Public dev meeting, almost weekly, on hangouts on air
• Recordings available onYoutube
JSR-107 - javx.caching
@ljacomet#ehcachedvx
JSR-107
@ljacomet#ehcachedvx
JSR-107
• Ancient JSR
• Started in 2001
• Approved a year ago (March 2014)
@ljacomet#ehcachedvx
JSR-107
• Ancient JSR
• Started in 2001
• Approved a year ago (March 2014)
• javax.caching API + TCK + reference implementation
• Eases integration of a cache in frameworks
@ljacomet#ehcachedvx
JSR-107
• Ancient JSR
• Started in 2001
• Approved a year ago (March 2014)
• javax.caching API + TCK + reference implementation
• Eases integration of a cache in frameworks
• Ongoing discussions about a version 2.0
• Async API for example
@ljacomet#ehcachedvx
JSR-107 : Features
@ljacomet#ehcachedvx
JSR-107 : Features
•CacheManager / Cache
@ljacomet#ehcachedvx
JSR-107 : Features
•CacheManager / Cache
•Expiration
•Creation/Access/Update
@ljacomet#ehcachedvx
JSR-107 : Features
•CacheManager / Cache
•Expiration
•Creation/Access/Update
•Integration
•CacheLoader / Writer
@ljacomet#ehcachedvx
JSR-107 : Features
•CacheManager / Cache
•Expiration
•Creation/Access/Update
•Integration
•CacheLoader / Writer
•CacheEntryListener
•Created/Updated
•Removed/Expired
•Get old value
@ljacomet#ehcachedvx
JSR-107 : Features
•CacheManager / Cache
•Expiration
•Creation/Access/Update
•Integration
•CacheLoader / Writer
•CacheEntryListener
•Created/Updated
•Removed/Expired
•Get old value
•Entry processor
@ljacomet#ehcachedvx
JSR-107 : Features
•CacheManager / Cache
•Expiration
•Creation/Access/Update
•Integration
•CacheLoader / Writer
•CacheEntryListener
•Created/Updated
•Removed/Expired
•Get old value
•Entry processor
•Annotations
@ljacomet#ehcachedvx
JSR-107 : Features
•CacheManager / Cache
•Expiration
•Creation/Access/Update
•Integration
•CacheLoader / Writer
•CacheEntryListener
•Created/Updated
•Removed/Expired
•Get old value
•Entry processor
•Annotations
•MBeans, exposing
•Configuration
•Statistics
@ljacomet#ehcachedvx
JSR-107 : Features
•CacheManager / Cache
•Expiration
•Creation/Access/Update
•Integration
•CacheLoader / Writer
•CacheEntryListener
•Created/Updated
•Removed/Expired
•Get old value
•Entry processor
•Annotations
•MBeans, exposing
•Configuration
•Statistics
•No capacity control !
@YourTwitterHandle@YourTwitterHandle@ljacomet#ehcachedvx
Demo
@YourTwitterHandle@YourTwitterHandle@ljacomet#ehcachedvx
And my XML??
@ljacomet#ehcachedvx
JSR-107 configuration
• Programmatic only
• Enter the world of provider extensions
• Ehcache 3 expects CacheManager URI to resolve to a
configuration file
• From there, multiple scenarios are possible
@YourTwitterHandle@YourTwitterHandle@ljacomet#ehcachedvx
Demo
Caching in an application
@ljacomet#ehcachedvx
public BusinessObject computeAndWin(String param1,
String param2) {


String key = createKey(param1, param2);

BusinessObject cachedResult = cache.get(key);

if (cachedResult == null) {

cachedResult = loadAndCompute(param1, param2);

cache.put(key, cachedResult);

}

return cachedResult;

}
Cache Aside
@ljacomet#ehcachedvx
Cache Aside : not so easy
@ljacomet#ehcachedvx
Cache Aside : not so easy
• Requires synchronisation between
• cache
• and system of record
@ljacomet#ehcachedvx
Cache Aside : not so easy
• Requires synchronisation between
• cache
• and system of record
• JSR-107 has no locking option
@ljacomet#ehcachedvx
Cache Aside : not so easy
• Requires synchronisation between
• cache
• and system of record
• JSR-107 has no locking option
• Potential to be hairy code quite fast
@ljacomet#ehcachedvx
Cache Aside: options
@ljacomet#ehcachedvx
Cache Aside: options
• Rely on the abstraction of your framework
• Spring Caching
• Hibernate
• …
@ljacomet#ehcachedvx
Cache Aside: options
• Rely on the abstraction of your framework
• Spring Caching
• Hibernate
• …
• Alternatives ?
@ljacomet#ehcachedvx
public BusinessObject computeAndWin(String param1,
String param2) {


return cache.get(createKey(param1, param2));

}
Cache Through
@ljacomet#ehcachedvx
Cache Through
Cache
Application
code
RDBMS
@ljacomet#ehcachedvx
Cache Through
Cache
Application
code
RDBMS
@ljacomet#ehcachedvx
Cache Through
Cache
Application
code
RDBMS
@ljacomet#ehcachedvx
Cache Through
Cache
Application
code
RDBMS
@ljacomet#ehcachedvx
Cache Through
Cache
Application
code
RDBMS
@ljacomet#ehcachedvx
Cache Through
@ljacomet#ehcachedvx
Cache Through
• get* => CacheLoader
• cache miss indicates no data available
@ljacomet#ehcachedvx
Cache Through
• get* => CacheLoader
• cache miss indicates no data available
• put* => CacheWriter
• Each use means writing to the system of record
@ljacomet#ehcachedvx
Cache Through
• get* => CacheLoader
• cache miss indicates no data available
• put* => CacheWriter
• Each use means writing to the system of record
• Constraints:APIs of CacheLoader / CacheWriter
@ljacomet#ehcachedvx
Cache Through : JSR-107
@ljacomet#ehcachedvx
Cache Through : JSR-107
• Peculiar behaviours
@ljacomet#ehcachedvx
Cache Through : JSR-107
• Peculiar behaviours
• putIfAbsent(K key,V value): boolean
@ljacomet#ehcachedvx
Cache Through : JSR-107
• Peculiar behaviours
• putIfAbsent(K key,V value): boolean
• Ignores CacheLoader but not CacheWriter
@ljacomet#ehcachedvx
Cache Through : JSR-107
• Peculiar behaviours
• putIfAbsent(K key,V value): boolean
• Ignores CacheLoader but not CacheWriter
• Ehcache 3 allows to tweak this behaviour through
configuration
@ljacomet#ehcachedvx
Cache Through : JSR-107
• Peculiar behaviours
• putIfAbsent(K key,V value): boolean
• Ignores CacheLoader but not CacheWriter
• Ehcache 3 allows to tweak this behaviour through
configuration
• Behaviour consistent across atomic operations
@ljacomet#ehcachedvx
Cache Through : Write Behind
@ljacomet#ehcachedvx
Cache Through : Write Behind
• Asynchronous writes to the the system of record
• User thread no longer suffers from the latency of the write
@ljacomet#ehcachedvx
Cache Through : Write Behind
• Asynchronous writes to the the system of record
• User thread no longer suffers from the latency of the write
• Introduces its own complexities
• Write queue: persistent or not?
• Mutation guarantee: once and only once? at least once?
• What about cache eviction?
Resilience strategy
@ljacomet#ehcachedvx
Resilience strategy
@ljacomet#ehcachedvx
Resilience strategy
• Proposition:
“A cache level error
should not be the cause for
a user level error “
@ljacomet#ehcachedvx
Resilience strategy
• Proposition:
“A cache level error
should not be the cause for
a user level error “
P.S.This is ongoing development and subject to change
@ljacomet#ehcachedvx
Ehcache 3
@ljacomet#ehcachedvx
Ehcache 3
• Handle errors internally as much as possible
@ljacomet#ehcachedvx
Ehcache 3
• Handle errors internally as much as possible
• In memory cache => No exceptions in the execution thread
@ljacomet#ehcachedvx
Ehcache 3
• Handle errors internally as much as possible
• In memory cache => No exceptions in the execution thread
• Default is to log errors, will be configurable / replaceable
@ljacomet#ehcachedvx
Ehcache 3
• Handle errors internally as much as possible
• In memory cache => No exceptions in the execution thread
• Default is to log errors, will be configurable / replaceable
• Advanced setups (Distributed + write behind for example)
@ljacomet#ehcachedvx
Ehcache 3
• Handle errors internally as much as possible
• In memory cache => No exceptions in the execution thread
• Default is to log errors, will be configurable / replaceable
• Advanced setups (Distributed + write behind for example)
• Force user to think about the use cases where the cache can
become inconsistent
@ljacomet#ehcachedvx
Ehcache 3
• Handle errors internally as much as possible
• In memory cache => No exceptions in the execution thread
• Default is to log errors, will be configurable / replaceable
• Advanced setups (Distributed + write behind for example)
• Force user to think about the use cases where the cache can
become inconsistent
• Will be required to configure a handler for these cases
Ehcache 3 and Terracotta
@ljacomet#ehcachedvx
Offheap solution
@ljacomet#ehcachedvx
Offheap solution
• Solving Garbage Collector pauses on large heaps
@ljacomet#ehcachedvx
Offheap solution
• Solving Garbage Collector pauses on large heaps
• Enables extreme cache scale up
• Multi TerraBytes … as long as your server allows it
@ljacomet#ehcachedvx
Offheap solution
• Solving Garbage Collector pauses on large heaps
• Enables extreme cache scale up
• Multi TerraBytes … as long as your server allows it
• Production tested implementation
• 2.0.0 available on GitHub
• https://github.com/Terracotta-OSS/offheap-store
@ljacomet#ehcachedvx
Clustering solution
@ljacomet#ehcachedvx
Clustering solution
• Sharing of data across multiple JVMs
@ljacomet#ehcachedvx
Clustering solution
• Sharing of data across multiple JVMs
• Terracotta 4.3.0 again has an OpenSource offering
• Integration with Ehcache 2.10.0
@ljacomet#ehcachedvx
Clustering solution
• Sharing of data across multiple JVMs
• Terracotta 4.3.0 again has an OpenSource offering
• Integration with Ehcache 2.10.0
• Ehcache 3 will have clustering option in OpenSource
• Code starting to appear on GitHub
@YourTwitterHandle@YourTwitterHandle@ljacomet#ehcachedvx
Questions ?

More Related Content

What's hot

Scaling Your Cache
Scaling Your CacheScaling Your Cache
Scaling Your CacheAlex Miller
 
Caching with Memcached and APC
Caching with Memcached and APCCaching with Memcached and APC
Caching with Memcached and APCBen Ramsey
 
Use case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in productionUse case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in production知教 本間
 
Elasticsearch for Logs & Metrics - a deep dive
Elasticsearch for Logs & Metrics - a deep diveElasticsearch for Logs & Metrics - a deep dive
Elasticsearch for Logs & Metrics - a deep diveSematext Group, Inc.
 
In Memory Database In Action by Tanel Poder and Kerry Osborne
In Memory Database In Action by Tanel Poder and Kerry OsborneIn Memory Database In Action by Tanel Poder and Kerry Osborne
In Memory Database In Action by Tanel Poder and Kerry OsborneEnkitec
 
Empowering developers to deploy their own data stores
Empowering developers to deploy their own data storesEmpowering developers to deploy their own data stores
Empowering developers to deploy their own data storesTomas Doran
 
DjangoCon 2010 Scaling Disqus
DjangoCon 2010 Scaling DisqusDjangoCon 2010 Scaling Disqus
DjangoCon 2010 Scaling Disquszeeg
 
Troubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel PoderTroubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel PoderTanel Poder
 
Oracle Latch and Mutex Contention Troubleshooting
Oracle Latch and Mutex Contention TroubleshootingOracle Latch and Mutex Contention Troubleshooting
Oracle Latch and Mutex Contention TroubleshootingTanel Poder
 
Practicing Continuous Deployment
Practicing Continuous DeploymentPracticing Continuous Deployment
Practicing Continuous Deploymentzeeg
 
High Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance TuningHigh Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance TuningAlbert Chen
 
Apache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling UpApache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling UpSander Temme
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleSean Chittenden
 
Memcached Code Camp 2009
Memcached Code Camp 2009Memcached Code Camp 2009
Memcached Code Camp 2009NorthScale
 
HBaseConEast2016: Practical Kerberos with Apache HBase
HBaseConEast2016: Practical Kerberos with Apache HBaseHBaseConEast2016: Practical Kerberos with Apache HBase
HBaseConEast2016: Practical Kerberos with Apache HBaseMichael Stack
 
Integrating multiple CDN providers at Etsy - Velocity Europe (London) 2013
Integrating multiple CDN providers at Etsy - Velocity Europe (London) 2013Integrating multiple CDN providers at Etsy - Velocity Europe (London) 2013
Integrating multiple CDN providers at Etsy - Velocity Europe (London) 2013Marcus Barczak
 
Kafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersKafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersJean-Paul Azar
 
Moxi - Memcached Proxy
Moxi - Memcached ProxyMoxi - Memcached Proxy
Moxi - Memcached ProxyNorthScale
 

What's hot (19)

Scaling Your Cache
Scaling Your CacheScaling Your Cache
Scaling Your Cache
 
Caching with Memcached and APC
Caching with Memcached and APCCaching with Memcached and APC
Caching with Memcached and APC
 
Use case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in productionUse case for using the ElastiCache for Redis in production
Use case for using the ElastiCache for Redis in production
 
Elasticsearch for Logs & Metrics - a deep dive
Elasticsearch for Logs & Metrics - a deep diveElasticsearch for Logs & Metrics - a deep dive
Elasticsearch for Logs & Metrics - a deep dive
 
In Memory Database In Action by Tanel Poder and Kerry Osborne
In Memory Database In Action by Tanel Poder and Kerry OsborneIn Memory Database In Action by Tanel Poder and Kerry Osborne
In Memory Database In Action by Tanel Poder and Kerry Osborne
 
Empowering developers to deploy their own data stores
Empowering developers to deploy their own data storesEmpowering developers to deploy their own data stores
Empowering developers to deploy their own data stores
 
DjangoCon 2010 Scaling Disqus
DjangoCon 2010 Scaling DisqusDjangoCon 2010 Scaling Disqus
DjangoCon 2010 Scaling Disqus
 
Troubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel PoderTroubleshooting Complex Oracle Performance Problems with Tanel Poder
Troubleshooting Complex Oracle Performance Problems with Tanel Poder
 
Oracle Latch and Mutex Contention Troubleshooting
Oracle Latch and Mutex Contention TroubleshootingOracle Latch and Mutex Contention Troubleshooting
Oracle Latch and Mutex Contention Troubleshooting
 
Practicing Continuous Deployment
Practicing Continuous DeploymentPracticing Continuous Deployment
Practicing Continuous Deployment
 
High Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance TuningHigh Concurrency Architecture and Laravel Performance Tuning
High Concurrency Architecture and Laravel Performance Tuning
 
Apache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling UpApache Performance Tuning: Scaling Up
Apache Performance Tuning: Scaling Up
 
Creating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at Scale
 
Curator intro
Curator introCurator intro
Curator intro
 
Memcached Code Camp 2009
Memcached Code Camp 2009Memcached Code Camp 2009
Memcached Code Camp 2009
 
HBaseConEast2016: Practical Kerberos with Apache HBase
HBaseConEast2016: Practical Kerberos with Apache HBaseHBaseConEast2016: Practical Kerberos with Apache HBase
HBaseConEast2016: Practical Kerberos with Apache HBase
 
Integrating multiple CDN providers at Etsy - Velocity Europe (London) 2013
Integrating multiple CDN providers at Etsy - Velocity Europe (London) 2013Integrating multiple CDN providers at Etsy - Velocity Europe (London) 2013
Integrating multiple CDN providers at Etsy - Velocity Europe (London) 2013
 
Kafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced ProducersKafka Tutorial: Advanced Producers
Kafka Tutorial: Advanced Producers
 
Moxi - Memcached Proxy
Moxi - Memcached ProxyMoxi - Memcached Proxy
Moxi - Memcached Proxy
 

Similar to Caching reboot: javax.cache & Ehcache 3

Ehcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroidsEhcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroidsAlex Snaps
 
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
 
Building low latency java applications with ehcache
Building low latency java applications with ehcacheBuilding low latency java applications with ehcache
Building low latency java applications with ehcacheChris Westin
 
Caching in applications still matters
Caching in applications still mattersCaching in applications still matters
Caching in applications still mattersAnthony Dahanne
 
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...In-Memory Computing Summit
 
In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014Hazelcast
 
Caching 101: sur la JVM et au delà
Caching 101: sur la JVM et au delàCaching 101: sur la JVM et au delà
Caching 101: sur la JVM et au delàLouis Jacomet
 
Benchmarking Solr Performance at Scale
Benchmarking Solr Performance at ScaleBenchmarking Solr Performance at Scale
Benchmarking Solr Performance at Scalethelabdude
 
Caching and JCache with Greg Luck 18.02.16
Caching and JCache with Greg Luck 18.02.16Caching and JCache with Greg Luck 18.02.16
Caching and JCache with Greg Luck 18.02.16Comsysto Reply GmbH
 
Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek PROIDEA
 
Docker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic StackDocker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic StackJakub Hajek
 
Игорь Фесенко "Direction of C# as a High-Performance Language"
Игорь Фесенко "Direction of C# as a High-Performance Language"Игорь Фесенко "Direction of C# as a High-Performance Language"
Игорь Фесенко "Direction of C# as a High-Performance Language"Fwdays
 
Migration strategies 4
Migration strategies 4Migration strategies 4
Migration strategies 4Wenhua Wang
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.jsorkaplan
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearchErhwen Kuo
 

Similar to Caching reboot: javax.cache & Ehcache 3 (20)

Ehcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroidsEhcache3 — JSR-107 on steroids
Ehcache3 — JSR-107 on steroids
 
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
 
JCache Using JCache
JCache Using JCacheJCache Using JCache
JCache Using JCache
 
HotSpotコトハジメ
HotSpotコトハジメHotSpotコトハジメ
HotSpotコトハジメ
 
Typesafe spark- Zalando meetup
Typesafe spark- Zalando meetupTypesafe spark- Zalando meetup
Typesafe spark- Zalando meetup
 
Building low latency java applications with ehcache
Building low latency java applications with ehcacheBuilding low latency java applications with ehcache
Building low latency java applications with ehcache
 
Caching in applications still matters
Caching in applications still mattersCaching in applications still matters
Caching in applications still matters
 
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
IMC Summit 2016 Breakout - Greg Luck - How to Speed Up Your Application Using...
 
In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014In-memory No SQL- GIDS2014
In-memory No SQL- GIDS2014
 
Caching 101: sur la JVM et au delà
Caching 101: sur la JVM et au delàCaching 101: sur la JVM et au delà
Caching 101: sur la JVM et au delà
 
Benchmarking Solr Performance at Scale
Benchmarking Solr Performance at ScaleBenchmarking Solr Performance at Scale
Benchmarking Solr Performance at Scale
 
Caching and JCache with Greg Luck 18.02.16
Caching and JCache with Greg Luck 18.02.16Caching and JCache with Greg Luck 18.02.16
Caching and JCache with Greg Luck 18.02.16
 
Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek Docker Logging and analysing with Elastic Stack - Jakub Hajek
Docker Logging and analysing with Elastic Stack - Jakub Hajek
 
Docker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic StackDocker Logging and analysing with Elastic Stack
Docker Logging and analysing with Elastic Stack
 
Игорь Фесенко "Direction of C# as a High-Performance Language"
Игорь Фесенко "Direction of C# as a High-Performance Language"Игорь Фесенко "Direction of C# as a High-Performance Language"
Игорь Фесенко "Direction of C# as a High-Performance Language"
 
AppFabric Velocity
AppFabric VelocityAppFabric Velocity
AppFabric Velocity
 
Migration strategies 4
Migration strategies 4Migration strategies 4
Migration strategies 4
 
Gimme Caching - The JCache Way
Gimme Caching - The JCache WayGimme Caching - The JCache Way
Gimme Caching - The JCache Way
 
introduction to node.js
introduction to node.jsintroduction to node.js
introduction to node.js
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearch
 

Recently uploaded

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 

Recently uploaded (20)

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 

Caching reboot: javax.cache & Ehcache 3