Cache

Zondag, 12 november 2000
The need for speed (www.useit.com/alertbox/...) op het internet blijft. Veel gebruikers zitten immers nog met een trage verbinding te surfen.
  1. Kleine webpagina's met een kleine snelle download tijd blijven dus voorlopig wel top prioriteit voor een goede performance.
  2. Factor nummer twee is een goede database performance. Technische database optimalisatie is mooi, maar het is nog leuker om minder vaak de database te hoeven raadplegen.
OO kan daarbij helpen, door objecten te cachen. Dat kan in zowel de GUI laag als de objecten laag. Pas op

Caching is een vorm van opslaan van afgeleide gegevens. De originele gegevens in de database kunnen veranderen, terwijl het object nog de verouderde gegevens bevat.

Een aantal caching technieken, met toenemende performance winst en bijbehorend risico.

Lokale variabele

De lichtste vorm van caching is een object in een lokale variabele. Het object bestaat slechts voor de duur van de methode.

Request variabele

Voor informatie tussen de diverse servlets en JSP pagina's is een instance in de request het meest geschikt. Het object bestaat tot de request ten einde is, de gebruiker output op het scherm gekregen heeft.

Sessie variabele

Dit is een iets zwaardere variant, geschikt voor informatie die gedurende de sessie niet zal veranderen.

Het object blijft bestaan, gedurende de hele sessie voor zolang de gebruiker op de website blijft. Deze variant heeft al reëele risico's van verouderde informatie.

Object cache

Dit is de zwaarste vorm van caching. Objecten blijven bestaan, onafhankelijk van sessies. Dit kan bijvoorbeeld in de objecten laag met een static Hashmap in een Class. Meerdere gebruikers kunnen dus van hetzelfde object gebruik maken.

Het object loopt hier het grootste risico op veroudering.

Tot de volgende week!
Henk Jan Nootenboom