Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Scaling Up Hibernate/JPA Applications with Infi...
Search
Galder Zamarreño
April 20, 2013
Technology
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Scaling Up Hibernate/JPA Applications with Infinispan Second-Level Cache
Galder Zamarreño
April 20, 2013
Transcript
38 slides
None
Scaling Up Hibernate/JPA Applications with Infinispan Second-Level Cache ! Galder
Zamarreño Senior Software Engineer Red Hat, Inc ! 20th April 2013, São Paulo
Galder Zamarreño • R&D Engineer, Red Hat Inc. • Infinispan
developer • Creator of Infinispan second-level cache provider for Hibernate • Escalante founder and lead • Twitter: @galderz
Agenda • Bottlenecks in Hibernate/JPA applications • Applying caching techniques
sensibly • Distribute caches across multiple nodes • Caching in managed environments
Why do we care?
DB = bottleneck Most Hibernate/JPA applications involve intensive I/O workload
against database
Bottleneck problems Bottlenecks decrease throughput, increase latency... and make users
:(((
We care because we want to make users :))
How do we scale up Hibernate/JPA applications ?
Option 1: $$$ Buy/rent more powerful hardware to host the
DB... who can afford that?
Option 2: Caching Use second-level caching sensibly to reduce burden
on database
Second Level Cache JVM-level, or clustered, cache whose contents can
be shared between different transactions
Lesson 1: Don't apply caching blindly! Always measure first!
Caching cost! Local caches have a cost (memory, GC), clustered
caches add more cost (network, IO)
Demo 1: Measure performance
Lesson 2: Think what you are going to cache!
Think about reads Biggest performance gain comes from caching read-
mostly data
What kind of data? Entities, collections of entities, and query
results can be cached
Entity caching Mark entities cacheable, and define the cache concurrency
strategy
Query caching Speed up execution of repeated queries (w/ same
parameters) by caching their results
Query results validity Cached query results are valid as long
as none of the entity types involved are updated
Demo 2: Query cache in action
Lesson 3: How to select a caching provider
Cache Strategies • Read-only • data never updated • insert/delete
allowed • Read/write • data can be updated • with JBDC transactions or no transactions
Cache Strategies • Nonstrict read/write • data rarely updated •
with JBDC transactions or no transactions • Transactional • data can be updated • for JTA environments
Strategy Support Provider / Strategy read- only nonstrict r/w r/w
transactional Infinispan yes no no yes EhCache yes yes yes yes ConcurretHashMap (testing) yes yes yes no
Lesson 4: Scale up your Hibernate/JPA app going multi-node!
Caches form cluster Infinispan uses JGroups to form a peer-to-peer
cluster, providing discovery, failure detection...etc
Clustered Entities Recommended using invalidation to keep entities consistent accross
cluster (replication can be used too)
Queries / Timestamps Recommended keeping query cache local to each
node, but must replicate update timestamps cache
Demo 3: Clustered second-level cache in action!
Lesson 5: Scaling up JPA in managed environments
JPA Caching simplified Infinispan as default cache provider (with sensible
defaults), and ready to cluster!
shared-cache-mode Persistence unit configuration option that should be set to
ENABLE_SELECTIVE
Demo 4: JPA caching in JBoss AS 7
Summary Q - How do we scale up Hibernate/JPA applications?
Enable second level cache!!
Summary • Don't apply caching blindly! Always measure first! •
Think what you are going to cache! • How to select a caching provider • Scale up your app going multi-node! • Scaling up JPA in managed environments
Questions • http://infinispan.org • http://hibernate.org • http://github.com/galderz/secondlc • https://docs.jboss.org/author/display/ ISPN/Using+Infinispan+as+JPA-Hibernate
+Second+Level+Cache+Provider
More Decks by Galder Zamarreño
See All by Galder Zamarreño
Principles and Patterns for Streaming Data Analysis
galderz
0
150
Streaming Data Analysis with Kubernetes
galderz
0
2.7k
The Rough Guide to Java RPC Frameworks
galderz
1
7.2k
Streaming Data Analysis with Kubernetes
galderz
1
470
Streaming Data Workshop @ Codemotion Madrid
galderz
0
1.5k
Streaming Data : ni pierdas el tren, ni esperes en balde
galderz
0
3.3k
Data grids : descubre qué esconden los datos
galderz
0
3.3k
Streaming Data Workhop @ Devoxx
galderz
0
420
Streaming Data Analysis with Kubernetes
galderz
0
2.2k
Other Decks in Technology
See All in Technology
bpf_arenaとstruct_opsを使うのが難しかった話
masu_mi
0
230
BALLAS Technology Deck
ballas_inc
0
520
MCPでAIが自分で調べに行く
cdataj
0
160
長い仕事を任せる (Workflows、クラウドセッション、Kiro Web) | 目指せ Kiro マスター 10
inariku
PRO
3
180
LLM 基盤と kagent v0 を全部 k8s に入れてみた / Deploy both LLM and kagent v0 in k8s
kota2and3kan
0
140
会社説明資料_最新版
demaecan
0
32k
Go初心者のクラウドエンジニアが、デプロイを通して旨味を知っていく話
ryudai
1
170
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
4
1.8k
続・ソフトウェアアーキテクトのための意思決定術: Decision Readiness, Revisited — When AI Changes the Economics of Software Architecture
snoozer05
PRO
9
2.9k
ゼロから作るWebアプリの新定番!?Amplify Gen 2 × AWS Blocksで実現する「開発速度とRDBの柔軟性のいいとこ取り」
amixedcolor
1
240
Intro to Kiro (One agent, every surface) | Kiro: Zero to Hero 01
inariku
PRO
2
110
現場を動かすAIエージェント#2_製造業現場でのAI活用から見た、ハマる罠と実践知
kintotechdev
2
220
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
400
Skip the Path - Find Your Career Trail
mkilby
1
290
The World Runs on Bad Software
bkeepers
PRO
72
12k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
460
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
It's Worth the Effort
3n
188
29k
Un-Boring Meetings
codingconduct
0
490
Building a Scalable Design System with Sketch
lauravandoore
464
34k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
330
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
330
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590