API ja välimuistin käyttö

API:lle lähetettävissä kyselyissä voi määrittää noudetaanko tulos välimuistista (cache) vai ei. Näköjään API huolehtii itse välimuistin tyhjennyksestä. Olisi kuitenkin kiva tietää millä logiikalla välimuisti tyhjennetään. Nollataanko se ajallisesti esim. vuorokauden välein vai sitten kun sen tallennuskapasiteetti tulee täyteen? Vai sekä että? Ja tyhjennetäänkö välimuisti aina kokonaan kerralla vai tiputetaanko sieltä vain vanhempia hakutuloksia pois uusien tieltä?

Molempia.

Tässä on raja-arvoja:

cacheTimeMinutes = 30;
countCacheTimeMinutes = 10;
countCacheSize = 50000;
listCacheSize = 3000;
aggregateCacheSize = 20000;

Eli pääasiassa välimuisti ikääntyy 30 min välein, joten data on max 30 min vanhaa.
/count rajapintojen ikääntyminen on 10 min
Mutta jos tallennettujen kyselyiden määrä ylittää annetun määrän, niitä aletaan tiputtaa pois välimuistista.

Täydellinen tyhjennys tapahtuu kerran yössä (varmuuden vuoksi).

Käyetty kirjasto on GitHub - ben-manes/caffeine: A high performance caching library for Java
(Tietovaraston cachet on määritelty täällä: Bitbucket )

1 tykkäys

Itse käytämme välimuistitusta tulospaveluissa kuten talvilintulaskennan tulospalvelu ja lajikorteilla

Jos jokin sovellus välimuistittaa kaikki käyttäjän tekemät hyvin spesifiset kyselyt, niin se on oikeastaan rajapinnan kannalta huono asia, koska yleisemmin käytettyä asiaa puskeutuu pois.

Kiitos vastauksista! Tämä oli hyödyllistä tietoa.