Cache

68
LE CACHE Dans tous ses états

Transcript of Cache

Page 1: Cache

LE CACHE

Dans tous ses états

Page 2: Cache

Mathilde Lemée

Terracotta Engineer DuchessFR Founder

Mobile dev – Aetys.fr

Java developper

FluentLenium

Page 3: Cache
Page 4: Cache
Page 5: Cache

HIT

Page 6: Cache

MISS

Page 7: Cache

TTITTL

Page 8: Cache

Cache Aside

"Par ma foi ! Il y a plus de quarante ans que je dis de la prose sans que j'en susse rien. "  Molière ; Le

Bourgeois gentilhomme

Page 9: Cache

Tom veut un cache simple pour améliorer l’accès aux données.

Page 10: Cache

CACHE ASIDE

Database

Application

Cache

DAO

HIT !Get A MISS !Get B

Read B

PUT !Put B HIT !Get B

Page 11: Cache

Tom aimerait garantir que son cache comporte

toujours les

données les plus récentes.

Page 12: Cache

System of

Record

Page 13: Cache

Cache as a s-o-r : Read through

Database

Application

Ehcache

Persistence layer

Get A

HIT !

Page 14: Cache

Cache as a s-o-r : Read through

Database

Application

Ehcache

Persistence layer

Get A

MISS!

Page 15: Cache

Cache as a s-o-r : Write through

Database

Application

Ehcache

Persistence layer

PUT !

Page 16: Cache

Tom travaille pour un site de vente en ligne, l’important est de garantir les temps de réponses et tant pis si la donnée n’est mise à jour immédiatement dans la base.

Page 17: Cache

Cache as a s-o-r : Write Behind

Database

Application

Ehcache

Persistence layer

PUT !Put A

Write-behind thread

APUT !Put B

BPUT !Put C

CPUT !Put D

D

Get A B C D

Write A B C D

Page 18: Cache
Page 19: Cache

Temps de

réponses

Page 20: Cache

Write Through – Temps de réponses

Page 21: Cache

Write Behind – Temps de réponses

Page 22: Cache

Base de donnée

s

Page 23: Cache

Write Through – Database load

Page 24: Cache

Write Behind – Database load

Page 25: Cache

Tom n’a pas la main sur les données

insérées/modifiées.

Page 26: Cache

Paul travaille dans une

banque où à heure fixe, de

gros volumes de données sont mises à jours.

Page 27: Cache

SCHEDULED

REFRESH

AHEAD

Page 28: Cache

REFRESH

AHEAD

Page 29: Cache

TTLTTR0

Page 30: Cache

CHOISIR

Page 31: Cache

CACHE ASIDE

VSREAD/WRITE THROUGH

Page 32: Cache

Refresh Ahead/Scheduled Refresh

VSThe world

Page 33: Cache

Refresh Ahead

VSScheduled

Refresh Ahead

Page 34: Cache

Write Behind

VSWrite

Through

Page 35: Cache

CONNAIT TES

DONNÉES

Page 36: Cache

CACHE

Page 37: Cache

CACHE

Page 38: Cache

CACHE

Page 39: Cache

Wikipedia

La scalabilité est la capacité qu’a

l’architecture

pour évoluer en cas de montée en charge si

nécessaire.

Page 40: Cache
Page 41: Cache
Page 42: Cache

La scalabilité d’une

application est égale à la

scalabilité de son

composant le moins

scalable.

Page 43: Cache
Page 44: Cache
Page 45: Cache

DISTRIBUTION

Page 46: Cache
Page 47: Cache
Page 48: Cache

ET SI …

Page 49: Cache
Page 50: Cache
Page 51: Cache
Page 52: Cache
Page 53: Cache
Page 54: Cache

5

Page 55: Cache
Page 56: Cache
Page 57: Cache

ET SI …

Page 58: Cache
Page 59: Cache
Page 60: Cache
Page 61: Cache
Page 62: Cache
Page 63: Cache

ET SI …

Page 64: Cache

• Julie / 32 ans / 2 enfants / Paris• Paul / 27 ans / 4 enfants / Marseille• Thomas / 40 ans / 1 enfant / Paris

– Déménagement de Thomas sur MarseilleQui habite sur Paris ?

Consistence

Page 65: Cache

LOCAL QUORUM

ONE

TWO

THREE QUORUM

ANYEACH QUORUM

Page 66: Cache

CAP

• Consistency :• Availability : • Partionning

Page 67: Cache

• Consistency + Available = RDBMS• Consistency + Partionning = BigTable / Hbase /

MongoDB / Redis• Available + Partionning =

Riak/Cassandra/CouchDB

Page 68: Cache