Význam ukládání do mezipaměti
Ukládání do mezipaměti uchovává opakovaně použitelné kopie často používaných dat v paměti, takže aplikace nemusí opakovaně volat databázi a můžou rychleji vracet výsledky.
Ukládání do mezipaměti uchovává opakovaně použitelné kopie často používaných dat v paměti, takže aplikace nemusí opakovaně volat databázi a můžou rychleji vracet výsledky.
Ukládání do mezipaměti je ukládání dat ve formátu klíč–hodnota do dočasné paměti (například do nerelační NoSQL databáze), aby je aplikace mohly načítat rychleji než z běžného úložiště. V architekturách cloudového úložiště, kde požadavky často procházejí sítěmi a využívají sdílené služby, může ukládání do mezipaměti pomáhat udržovat nízkou dobu odezvy a omezovat opakovanou práci.
Většina systémů uchovává trvalý „zdroj pravdy“ (databázi) pro kompletní datové sady a zároveň používá mezipaměť pro dočasné podmnožiny, které se často čtou. Když přijde požadavek, aplikace nejdřív zkontroluje mezipaměť. Pokud tam data jsou, rychle je vrátí bez dalšího dotazování back-endu. Vývojáři také ukládají zpracovaná data do mezipaměti a opakovaně je používají, aby požadavky obsloužili rychleji než standardní dotazy na relační databáze, SQL databáze nebo open-source databáze PostgreSQL.
Mezi vhodné kandidáty patří data, která se čtou opakovaně, a data, která se mění jen zřídka (například informace o produktech a cenách nebo sdílené statické prostředky, jejichž vytvoření je nákladné).
Pokud operace transformuje data nebo provádí složitý výpočet, může uložení výsledku do mezipaměti zabránit opakovanému přepočítávání pro další požadavky.
Vývojáři používají víceúrovňové mezipaměti („vrstvy mezipaměti“) k ukládání různých typů dat do samostatných mezipamětí podle poptávky. Přidání jedné nebo více vrstev mezipaměti může zlepšit propustnost a latenci v datové vrstvě.
Úložiště v paměti se často používají k uchovávání velkých objemů dat relací, jako jsou vstupy uživatelů, položky nákupního košíku nebo předvolby přizpůsobení, po krátkou dobu. U stavových aplikací týmy také ukládají stav relace do mezipaměti, aby aplikační vrstva mohla zůstat bezstavová.
Ukládání do mezipaměti může zlepšit výkon několika konkrétními způsoby:
V mnoha návrzích cloudu se mezipaměť nachází vedle primárního úložiště dat (například databáze). Primární úložiště uchovává kompletní trvalou datovou sadu na cloudovém serveru, zatímco mezipaměť uchovává menší dočasnou podmnožinu, kterou je rychlejší číst.
Běžným nastavením je samostatná vrstva mezipaměti nebo mezipaměť v aplikační či databázové vrstvě, zvolená podle toho, kde potřebujete rychlé čtení.
Některé systémy používají víceúrovňové ukládání do mezipaměti („vrstvy mezipaměti“), aby různé druhy dat byly v různých mezipamětech podle poptávky. Přidání jedné nebo více vrstev mezipaměti může zlepšit propustnost a latenci datové vrstvy a snížit celkové náklady omezením zátěže back-endu.
Týmy obvykle ukládají do mezipaměti data, která spadají do několika kategorií:
Aplikace čtou z mezipaměti a zapisují do ní několika standardními způsoby. Tady jsou nejběžnější vzory a jejich praktický význam.
Použití vrstev mezipaměti může zlepšit propustnost a latenci tím, že běžné požadavky obslouží z mezipaměti namísto opakovaného dotazování back-endového úložiště. To může snížit potřebu škálovat databázovou infrastrukturu, protože do databáze se už od začátku dostane méně požadavků.
U aplikací s nárazovým využitím můžou mezipaměti v paměti pomáhat zmírnit latenci tím, že často vyžadovaná data uchovávají blízko místa použití.
Při výběru pracovního postupu použijte tyto možnosti jako výchozí bod:
Ukládání do mezipaměti zlepšuje výkon aplikací, protože čtení z mezipaměti v paměti je rychlejší než čtení z datového úložiště založeného na disku. Když se z mezipaměti obslouží více požadavků, systémy posílají méně dotazů do back-endových databází, což může snížit potřebu škálovat databázovou infrastrukturu a omezit související náklady.
Ukládání do mezipaměti pomáhá omezit opakovanou práci. Data, která se čtou opakovaně nebo jejichž vytvoření je nákladné, se dají uložit jednou a opakovaně použít. Pokud operace provádí složitý výpočet nebo transformuje data, uložení výsledku do mezipaměti sníží opakované výpočty pro následné požadavky.
Mnoho webů ukládá výstup stránky (například HTML a klientské skripty) do mezipaměti, aby server mohl vrátit uložený výstup místo opakovaného spouštění kódu stránky při každém požadavku. Ukládání do mezipaměti podporuje také webové multimediální scénáře prostřednictvím webových mezipamětí a síťového ukládání do mezipaměti, například sítí pro doručování obsahu (CDN).
Aplikace často ukládají do mezipaměti dočasné podmnožiny dat pro rychlé načítání, zatímco primární databáze uchovává kompletní trvalou datovou sadu. Ukládání zpracovaných dat do mezipaměti a jejich opakované použití může obsloužit požadavky rychleji než standardní databázové dotazy.
Týmy často přidávají jednu nebo více vrstev mezipaměti, aby zlepšily propustnost a latenci, obsluhovaly běžné dotazy z mezipaměti a snížily zátěž databáze. Mezipaměti v paměti můžou pomáhat při špičkách využití a rostoucích požadavcích na propustnost tím, že v těchto obdobích zmírňují latenci.
Ukládání do mezipaměti se často používá k uchovávání velkých objemů krátkodobých dat relací (například vstupů uživatelů nebo předvoleb přizpůsobení) v úložišti v paměti. Některé týmy také ukládají stav relace do mezipaměti, aby stavové aplikace mohly udržet aplikační vrstvu bezstavovou. V provozních systémech jsou data, která se mění jen zřídka, například informace o produktech a cenách, běžným cílem ukládání do mezipaměti.
Mezipaměť prohlížeče ukládá kopie statických prostředků na zařízení uživatele, aby se tyto soubory při opakovaných návštěvách mohly znovu použít místo opětovného stahování.
Ukládání do mezipaměti na straně serveru probíhá v procesech, které vzdáleně spouštějí podnikové služby, nikoli na zařízení koncového uživatele. Serverové mezipaměti jsou často buď privátní (místní pro jednu instanci aplikace), nebo sdílené (používané mnoha instancemi aplikace).
CDN ukládá obsah do mezipaměti na hraničních serverech blíž koncovým uživatelům, takže požadavky nemusí vždy putovat zpět k původnímu serveru. Na rozdíl od mezipaměti prohlížeče (jeden uživatel) je mezipaměť CDN sdílená. Požadavek jednoho uživatele může naplnit obsah, který později dostane jiný uživatel.
Ukládání do mezipaměti není jen vzor cloud computingu. Používají ho také hardwarové a paměťové vrstvy.
Mezipaměť procesoru je malá rychlá oblast paměti poblíž procesoru (nebo přímo v něm), která ukládá kopie často používaných dat a instrukcí, aby se zkrátil čas čekání na hlavní paměť.
Paměťová mezipaměť (in-memory) je nejjednodušší typ softwarové mezipaměti: úložiště v paměti uchovávané v adresovém prostoru jednoho procesu a přístupné přímo tímto procesem.
Distribuovaná mezipaměť se rozprostírá přes více serverů, aby se mohla rozšiřovat kapacita mezipaměti i transakční kapacita nad rámec jednoho počítače. Mnoho sdílených služeb mezipaměti používá cluster serverů a rozděluje data uložená v mezipaměti napříč clusterem. Škálování mezipaměti pak může být tak jednoduché jako přidání dalších serverů. Některé distribuované návrhy také vrství mezipaměti tak, že nenalezení dat v jedné vrstvě vyvolá načtení od nadřazeného poskytovatele a následné místní uložení výsledku pro další požadavek.
Ukládání do mezipaměti udržuje často používaná data blíž místu jejich použití, což může zlepšit dobu odezvy a pomoct systému zvládnout více souběžných požadavků. Může také snížit soupeření o prostředky v původním úložišti dat, například když má databáze omezený počet připojení.
V distribuovaných aplikacích se ukládání do mezipaměti často odehrává na více místech: na straně klienta (například v prohlížeči) i na straně serveru (v aplikaci nebo sdílené službě mezipaměti).
Začněte v malém rozsahu a zaměřte se na data, která vám přinesou nejjasnější návratnost:
Mezipaměť obvykle uchovává kopie dat z primárního úložiště, takže je potřeba věnovat pozornost aktuálnosti:
Ukládání do mezipaměti je základním stavebním blokem moderních systémů, protože se hodí do mnoha architektur, od jednotlivých služeb přes distribuované aplikace až po doručování na okraji sítě. U spravované mezipaměti v paměti od poskytovatele cloudu můžete vyzkoušet Azure.