Upload
gamal-shaban
View
250
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Web Development, Web application caching techniques.
Citation preview
Web Application Caching
DB ORM Caching
Gamal ShaabanInternational CentersOrange Labs P&S CairoMobile Applications & Software Development
Agenda
• Why Caching– The Theory of Caching
• ORM Caching– 1st Level of Caching– 2nd Level of Caching– Query Caching
Why Caching?
How much faster will caching make an application?
Why Caching
It depends on a multitude of factors being:
• how many times a cached piece of data can and is reused by the application.
• the proportion of the response time that is alleviated by caching.
• In applications that are I/O bound, which is most business applications, most of the response time is getting data from a database. Therefore the speed up mostly depends on how much reuse a piece of data gets.
Why Caching
Amdahl's Law & How to calculate entire system speed up.
• Amdahl's law, after Gene Amdahl, is used to find the system speed up from a speed up in part of the system.
1/ ((1 - Proportion Sped Up) + Proportion Sped Up / Speed up)
Why Caching
Speed up from a Web Page CacheUn-cached page time: 2 secondsCache retrieval time: 2msProportion: 100%
The expected server side system speedup is:1 / ((1 - 1) + 1 / 1000)= 1 / (0 + .001)= 1000 times system speedup
The to the browser “system” speed up is much less
Why Caching
Speed up from a Database Level CacheUn-cached page time: 2 secondsDatabase time: 1.5 secondsCache retrieval time: 2msProportion: 75% (1.5/2)
The expected server side system speedup is:1 / ((1 - .75) + .75 / (1500/2)))= 1 / (.25 + .75/750)= 3.98 times system speedup
The to the browser “system” speed up is much less
Why Caching
Non-uniform distribution
Why Caching
ORM Caching
ORM Caching
1st Level CacheSession Caching:– Enabled by default.– Used transparently during the session.– All objects that was saved or retrieved• save• get• list
ORM Caching
1st Level CacheSession Caching:– flush() - will sync cache to DB.– clear() - will evict all objects.
2nd Level Caching
ORM Caching
2nd Level Caching
ORM Caching
Cache Providers• EhCache.• OSCache.• JBoss Cache (AKA Infinispan).• WarmCache.• Hazelcast.• Oracle Coherence.• Gigaspaces.• GemFire
ORM Caching
Caching Strategies
• Read-only• Read-write• Transactional• Nonstrict-read-write
ORM Caching
Caching Types
• Memory Caching• Disk stores• Clustered (distributed Caching)• Server Caching (RESTful cache server).
ORM Caching
Questions ?
Thank You