Glitre

12.08.2010

Mellomlagring

Filed under: Mellomlagring,Sortering — magnusenger @ 11:10

Det tar tid å hente poster fra Z39.50- og SRU-tjenere. Hvis det samme søket skal utføres to eller flere ganger med rimelig kort mellomrom er det liten vits i å hente trefflista fra tjeneren på nytt den andre (og tredje osv) gangen. Derfor har Glitre nå implementert mellomlagring (caching) av søkeresultater. Dette gjøres i to nivåer:

  1. De «rå» søkeresultatene lagres
  2. Søkeresultatene lagres etter at de har blitt sortert

Fordelen med dette er som følger: La oss si at to brukere utfører akkurat det samme søket med kort tids mellomrom, la oss kalle det Søk1 og Søk2. Søk1 medfører at postene hentes fra tjeneren og mellomlagres. Så sorteres de i tråd med brukerens ønske (eller standard sortering), og resultatet av dette mellomlagres. Når så Søk2 kommer, og ber om å få postene i samme rekkefølge som Søk1 er postene allerede sortert, og brukeren slipper å vente på at de skal bli sortert og systemet vårt slipper å bruke krefter på å gjenta sorteringen. La oss så si at den som utførte Søk2 utfører det samme søket en gang til, men ber om å få postene sortert på en annen måte. Nå er ikke mellomlageret med de sorterte postene til noen hjelp, men vi har fortsatt den opprinnelige trefflista mellomlagret og kan hente denne fra mellomlagret og sortere den etter brukerens ønske, uten at vedkommende trenger å vente på at postene skal hentes på nytt fra søketjeneren.

Hvor lang tid poster skal lagres i mellomlageret er et åpent spørsmål. Lagres de for lenge vil ikke endringer i de opprinnelige postene (nye, slettede og/eller endrede poster) reflekteres i søkeresultatene. Lagres de for kort vil ikke mellomlagringen ha noen effekt, fordi resultatene «går ut på dato» før det rekker å komme et nytt søk som kan dra nytte av det gamle. I utgangspunktet er levetiden til mellomlageret satt til et døgn, men dette kan endres gjennom konfigurasjonsvariabler. På sikt bør det antagelig implementeres et logg-system som viser hvilke søk som blir utført og i hvilken grad memmomlagringen faktisk kommer til nytte.

Mellomlagringen i Glitre bygger på PEAR-modulen Cache_Lite.

Advertisements

Legg igjen en kommentar »

Ingen kommentarer så langt.

RSS feed for comments on this post. TrackBack URI

Legg igjen en kommentar

Fyll inn i feltene under, eller klikk på et ikon for å logge inn:

WordPress.com-logo

Du kommenterer med bruk av din WordPress.com konto. Logg ut / Endre )

Twitter picture

Du kommenterer med bruk av din Twitter konto. Logg ut / Endre )

Facebookbilde

Du kommenterer med bruk av din Facebook konto. Logg ut / Endre )

Google+ photo

Du kommenterer med bruk av din Google+ konto. Logg ut / Endre )

Kobler til %s

Blogg på WordPress.com.

%d bloggers like this: