Přejít na obsah
Domů

Algoritmy vyrovnávací paměti: přehled strategií a principů

Souhrn principů a běžných strategií pro výměnu položek v mezipaměti (LRU, MRU, LFU, ARC, PLRU, apod.) a faktory ovlivňující volbu náhradníka.

Algoritmus vyrovnávací paměti rozhoduje, kterou položku odstranit, když je mezipaměť plná. Jde o formu algoritmu mezipaměti, která vyvažuje úspěšnost zásahů (hit rate) a dobu odezvy — tedy latenci při získání položky.

Galerie obrázků

7 Obrázky

Základní principy

Cílem je minimalizovat počet chyb (miss) při současném respektování omezení zdrojů. Ideál představuje znalost budoucích požadavků, avšak v praxi se používají heuristiky, které sledují frekvenci nebo nedávné použití položek.

Hlavní strategie

  • Beladyho optimální algoritmus: teoretický optimální postup, který vždy zvolí položku, kterou nejdříve v budoucnu nepotřebujeme — Beladyho optimální algoritmus slouží jen jako referenční minimum.
  • LRU (Least Recently Used): vyřadí položku, která byla nejdéle nepoužita; vyžaduje sledování pořadí použití. Do této rodiny patří více variant a v literatuře je často diskutována jako součást širší rodiny LRU.
  • MRU (Most Recently Used): naopak odstraní nejnověji použité položky; někdy výhodné v určitých typech databázových cache MRU.
  • LFU (Least Frequently Used): udržuje čítače přístupů a odstraňuje položky s nejnižší frekvencí použití.
  • PLRU (Pseudo-LRU): aproximace LRU s nízkými náklady, obvykle jeden bit na položku nebo pár položek, vhodná tam, kde plné LRU není praktické.
  • Asociativní přístupy: dvoucestné (2-way) asociativní sety a přímo mapované cache nabízejí kompromis mezi rychlostí a složitostí řízení náhrad; dvoucestné používají jeden bit pro výběr z dvojice, přímo mapované okamžitě přepíše dané místo.
  • Adaptivní a vícekolejné: algoritmy jako ARC (Adaptive Replacement Cache) nebo vícefrontové MQ kombinují principy LRU a LFU a adaptují se podle pracovního zatížení.

Další faktory ovlivňující volbu

  • Různé náklady na získání položky — upřednostnit drahé položky.
  • Proměnlivá velikost položek — velké objekty mohou vyžadovat jiné metody vyřazování.
  • Platnost dat (TTL) — u cache s expirační dobou nemusí být potřeba složitý náhradní algoritmus.

Koherence a více cache

V prostředích s více nezávislými cache (např. více serverů sdílejících data) je třeba řešit koherenci mezipaměti a synchronizaci aktualizací; viz otázky týkající se koherence mezipaměti.

Otázky a odpovědi

Otázka: Co je to algoritmus vyrovnávací paměti?

Odpověď: Algoritmus vyrovnávací paměti je algoritmus používaný ke správě vyrovnávací paměti nebo skupiny dat. Rozhoduje o tom, která položka má být z mezipaměti odstraněna, když je plná.

Otázka: Co je to hit rate?

Odpověď: Hit rate popisuje, jak často může být požadavek z mezipaměti obsloužen.

Otázka: Co popisuje latence?

Odpověď: Latence popisuje, za jak dlouho lze získat položku z mezipaměti.

Otázka: Co je Beladyho optimální algoritmus?

Odpověď: Beladyho optimální algoritmus, známý také jako jasnovidný algoritmus, je efektivní algoritmus ukládání do mezipaměti, který vždy vyřazuje informace, které nebudou v budoucnu nejdéle potřeba. Tento výsledek nelze v praxi obecně realizovat, protože vyžaduje předvídat, co bude potřeba v daleké budoucnosti.

Otázka: Jak funguje metoda LRU (Least Recently Used)?

Odpověď: LRU odstraňuje nejméně používané položky jako první a vyžaduje sledování toho, co bylo kdy použito, pomocí "bitů stáří" pro každý řádek mezipaměti a sledování, který z nich byl použit nejméně nedávno na základě bitů stáří. Při každém použití řádku cache se odpovídajícím způsobem změní stáří všech ostatních řádků cache.

Otázka: Jak funguje funkce MRU (Most Recently Used)?

Odpověď: MRU odstraní nejprve naposledy použité položky a tento mechanismus ukládání do mezipaměti se běžně používá pro mezipaměť databáze.

Otázka: Jaké další algoritmy existují pro udržení koherence mezipaměti?

Odpověď: Existují různé algoritmy pro udržení koherence mezipaměti, když se pro sdílená data používá více nezávislých mezipamětí, například když více databázových serverů aktualizuje jeden sdílený datový soubor.

Související články

Autor

AlegsaOnline.com Algoritmy vyrovnávací paměti: přehled strategií a principů

URL: https://cs.alegsaonline.com/art/15882

Sdílet

Zdroje