Orange developers day-Application Caching

Preview:

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

Recommended