A gyorsítótárazás jelentése
A gyorsítótárazás megőrzi a gyakran használt adatok újrafelhasználható másolatait a memóriában, így az alkalmazások elkerülik az ismétlődő adatbázis-hívásokat, és gyorsabban visszaadják az eredményeket.
A gyorsítótárazás megőrzi a gyakran használt adatok újrafelhasználható másolatait a memóriában, így az alkalmazások elkerülik az ismétlődő adatbázis-hívásokat, és gyorsabban visszaadják az eredményeket.
A gyorsítótárazás az a gyakorlat, amikor kulcs-érték adatokat ideiglenes memóriában tárolunk (például egy nemrelációs strukturált lekérdezőnyelvű NoSQL adatbázisban), hogy az alkalmazások gyorsabban érjék el őket, mint a hagyományos tárolóból. A felhőtárhely architektúrákban — ahol a kérések gyakran hálózatokon haladnak át, és megosztott szolgáltatásokat érintenek — a gyorsítótárazás segíthet alacsonyan tartani a válaszidőt, és csökkentheti az ismétlődő munkát.
A legtöbb rendszerben van egy tartós „forrása az igazságnak” (egy adatbázis) a teljes adathalmazhoz, illetve egy gyorsítótár a gyakran olvasott, átmeneti részhalmazokhoz. Amikor érkezik egy kérés, az alkalmazás először a gyorsítótárat ellenőrzi; ha az adat ott van, gyorsan visszaadja anélkül, hogy újra lekérdezné a háttérrendszerből. A fejlesztők emellett a feldolgozott adatokat is gyorsítótárba helyezik, és azokat újra felhasználják, így a kéréseket gyorsabban tudják kiszolgálni, mint a relációs adatbázisokhoz, az SQL-adatbázisokhoz vagy a nyílt forráskódú PostgreSQL-adatbázisokhoz intézett szokásos lekérdezések esetén.
Az ilyen adatok közé tartoznak az ismétlődően lekért adatok, valamint azok, amelyek ritkán változnak (például termék- és árinformációk, illetve olyan megosztott statikus erőforrások, amelyek létrehozása költséges).
Ha egy művelet adatokat alakít át vagy bonyolult számítást hajt végre, az eredmény gyorsítótárazásával elkerülhető, hogy azt a későbbi lekérdezések során újra ki kelljen számítani.
A fejlesztők többszintű gyorsítótárakat („gyorsítótár-rétegeket”) használnak, hogy a különböző típusú adatokat az igénynek megfelelően különálló gyorsítótárakban tárolják. Egy vagy több gyorsítótár-réteg hozzáadása javíthatja az adatréteg átviteli sebességét és késési idejét.
A memóriabeli tárolókat gyakran használják nagy mennyiségű munkamenet-adat tárolására, például felhasználói bevitelre, bevásárlókocsi-bejegyzésekre vagy rövid időszakokra vonatkozó személyre szabási beállítások tárolására. Állapotalapú alkalmazások esetén a csapatok a munkamenet-állapotot is a gyorsítótárban tárolják, hogy az alkalmazás állapot nélküli legyen.
A gyorsítótárazás néhány konkrét módon javíthatja a teljesítményt:
Számos felhőbeli rendszerben egy gyorsítótár található az elsődleges adattár (például egy adatbázis) mellett. Az elsődleges tároló tárolja a teljes, tartós adatkészletet a felhőkiszolgálón, míg a gyorsítótár egy kisebb, ideiglenes részhalmazt tart fenn, amely gyorsabban olvasható.
Gyakori megoldás egy önálló gyorsítótár-réteg, vagy az alkalmazás- vagy adatbázis-rétegen belül elhelyezkedő gyorsítótár – a választás attól függ, hogy hol van szükség a gyors olvasásra.
Egyes rendszerek többszintű gyorsítótárazást („gyorsítótárrétegeket”) használnak, így a különböző típusú adatok igény szerint különböző gyorsítótárakban találhatók. Egy vagy több gyorsítótárréteg hozzáadásával javíthatja az adatréteg átviteli sebességét és késését, és csökkentheti a teljes költséget a háttérbeli terhelés csökkentésével.
A csapatok általában az alábbi néhány kategóriába sorolható adatokat tárolják gyorsítótárban:
Több szokásos módja van annak, ahogyan az alkalmazások olvasnak egy gyorsítótárból, és írnak bele. Íme a leggyakoribb minták, és hogy mit jelentenek a gyakorlatban.
A gyorsítótárrétegek használata javíthatja az átviteli teljesítményt és a késést azáltal, hogy a gyakori kéréseket a gyorsítótárból szolgálja ki a háttértár ismételt lekérdezése helyett. Ez csökkentheti az adatbázis-infrastruktúra skálázásának szükségességét, mert eleve kevesebb kérés jut el az adatbázisig.
A használati csúcsokat mutató appoknál a memóriában lévő gyorsítótárak segíthetnek mérsékelni a késést azzal, hogy a gyakran kért adatokat közel tartják ahhoz, ahol használják őket.
Ezeket használja kiindulási pontként, amikor munkafolyamatot választ:
A gyorsítótárazás javítja az alkalmazás teljesítményét, mert a memóriában lévő gyorsítótárból gyorsabban lehet olvasni, mint egy lemezalapú adattárból. Ha több kérést szolgálnak ki a gyorsítótárból, a rendszerek kevesebb lekérdezést küldenek a háttéradatbázisoknak, ami csökkentheti az adatbázis-infrastruktúra skálázásának szükségességét és a kapcsolódó költségeket.
A gyorsítótárazás segít csökkenteni az ismétlődő munkát. Az ismétlődően olvasott vagy költségesen előállítható adatokat csak egyszer kell tárolni, majd ismét felhasználhatók. Ha egy művelet bonyolult számítást végez, vagy adatokat alakít át, az eredmény gyorsítótárazása csökkenti az ismétlődő számítások mennyiségét a későbbi kérések esetén.
Számos webhely gyorsítótárazza a lapkimenetet (például HTML- és ügyféloldali szkripteket), így a kiszolgáló a gyorsítótárazott kimenetet adja vissza a lapkód minden egyes újrafuttatása helyett. A gyorsítótárazás a webes multimédiás forgatókönyveket is támogatja webes gyorsítótárak és hálózati gyorsítótárazás, például tartalomkézbesítési hálózatok (CDN-ek) használatával.
Az alkalmazások gyakran gyorsítótárban tárolják az adatok átmeneti részhalmazait a gyors lekérés érdekében, míg az elsődleges adatbázis megőrzi a teljes tartós adatkészletet. A feldolgozott adatok gyorsítótárazása és újbóli használata gyorsabban kiszolgálhatja a kéréseket, mint a szabványos adatbázis-lekérdezések.
A csapatok gyakran adnak hozzá egy vagy több gyorsítótárréteget az átviteli teljesítmény és a késés javítására, a gyakori lekérdezéseket a gyorsítótárból kiszolgálva és csökkentve az adatbázis-terhelést. A memóriabeli gyorsítótárak hasznosak lehetnek a használat hirtelen megugrásakor és az átviteli igény növekedésekor, mivel ezekben az időszakokban csökkentik a késést.
A gyorsítótárazást gyakran használják nagy mennyiségű rövid élettartamú munkamenet-adat (például felhasználói bevitel vagy személyre szabási beállítások) tárolására egy memóriabeli tárolóban. Egyes csapatok a munkamenet-állapotot is a gyorsítótárban tárolják, így az állapotalapú alkalmazások állapot nélküli állapotban tarthatják az alkalmazásréteget. Az operációs rendszerek esetében a ritkán változó adatok – például a termék- és díjszabási információk – gyakori célpontjai a gyorsítótárazásnak.
A böngésző gyorsítótára tárolja a statikus erőforrások másolatait a felhasználó eszközén, így az ismétlődő látogatások újra felhasználhatják ezeket a fájlokat ahelyett, hogy újra letöltenék őket.
A kiszolgálóoldali gyorsítótárazás az üzleti szolgáltatásokat távolról futtató folyamatokban történik, nem pedig a végfelhasználó eszközén. A kiszolgáló oldali gyorsítótárak gyakran privátak (helyiről egy alkalmazáspéldányra) vagy meg vannak osztva (sok alkalmazáspéldány használja).
A CDN a végfelhasználókhoz közelebb gyorsítótárazza a peremhálózati kiszolgálók tartalmát, így a kérések nem mindig jutnak vissza a forráshoz. A böngésző gyorsítótárával (amely egy felhasználóra vonatkozik) ellentétben a CDN-gyorsítótár megosztott: egy felhasználó kérése alapján betöltődhet az a tartalom, amelyet később egy másik felhasználó kap meg.
A gyorsítótárazás nem csupán felhőalapú számítási minta—hardver- és memóriarétegek is használják.
A CPU-gyorsítótár egy kis, gyors memóriaterület a processzor közelében (vagy azon), amely a gyakran használt adatok és utasítások másolatait tárolja, hogy csökkentse a főmemóriára való várakozási időt.
A memóriabeli (in-memory) gyorsítótár a legegyszerűbb szoftveres gyorsítótártípus: Egyetlen folyamat címtartományában tárolt, és az adott folyamat által közvetlenül elérhető memóriabeli tároló.
Az elosztott gyorsítótár több kiszolgálót is magában foglalhat, így a gyorsítótár mérete és a tranzakciókezelési kapacitás több gépre is kiterjedhet. Számos megosztott gyorsítótár-szolgáltatás kiszolgálófürtöt használ, és a gyorsítótárazott adatokat elosztja a fürtön; a gyorsítótár skálázása akár több kiszolgáló hozzáadásával is elvégezhető. Egyes elosztott rendszerek is réteggyorsítótárakat helyeznek el, így az egyik rétegből hiányzik egy felsőbb rétegbeli szolgáltató, majd az eredményt helyileg tárolja a következő kérelemhez.
A gyorsítótárazás közelebb hozza a gyakran használt adatokat ahhoz a helyhez, ahol használják őket, így javíthatja a válaszidőt, és segíthet a rendszernek több egyidejű kérést kezelni. Ezenkívül csökkentheti az eredeti adattárban fellépő konfliktusokat, például amikor egy adatbázis csatlakozási kapacitása korlátozott.
Elosztott alkalmazásokban a gyorsítótárazás gyakran több helyen is történik — az ügyféloldalon (például egy böngészőben) és a kiszolgálóoldalon (egy alkalmazásban vagy megosztott gyorsítótár szolgáltatásban).
Kezdje kicsiben, és koncentráljon azokra az adatokra, amelyek a legtisztább eredményt adják:
A gyorsítótárak általában az elsődleges tárolóból származó adatok másolatait tárolják, ezért a frissesség figyelmet igényel:
A gyorsítótárazás a modern rendszerek alapvető építőeleme, mivel számos architektúrához illeszkedik — az egyes szolgáltatásoktól az elosztott alkalmazásokig és a peremhálózati kézbesítésig. Ha olyan felhőszolgáltatót keres, amely felügyelt, memóriabeli gyorsítótárat kínál, fedezze fel az Azure-t.