flashcache je modul linuxového jádra , který běží na zásobníku Device Mapper a umožňuje používat jedno blokové zařízení pro přístup do mezipaměti pro ostatní bloková zařízení. Vyvinuto společností Facebook a zveřejněno na jaře 2010 za podmínek licence GPL . Původně bylo zamýšleno používat jednotky SSD k mezipaměti přístupu k pomalejším (ale mnohem prostornějším a levnějším) diskovým jednotkám .
Efektivita použití flashcache závisí na mnoha faktorech, obecně technologie pomáhá v úlohách, jejichž výkon je omezen I/O, s převahou operací čtení a objem pracovní datové sady je příliš velký na to, aby mohl být uložen do mezipaměti RAM . Stejně jako u každé technologie ukládání do mezipaměti může být při velkém počtu „studených“ (neuložených) čtení výkon nižší než u zařízení s mezipamětí; "zahřátí" cache může trvat dlouho [1] .
Na rozdíl od bcache a dm-cache obsažených v jádře musí být flashcache vytvořena jako samostatný modul. Fork flashcache - proprietární EnhanceIO , nepoužívá Device mapper.
Flashcache používá mapovač zařízení k vytvoření blokového zařízení . Když je vytvořen, předají se mu dvě další zařízení (jak pomocí Device Mapper, tak nikoli). Jeden z nich je „pomalý a velký“, druhý „malý a rychlý“ (obvykle SSD nebo blokový elektronický disk ). Když je povolen režim ukládání do mezipaměti, je každý přístup k zařízení flashcache zkontrolován na přítomnost v mezipaměti, a pokud je přítomen v mezipaměti, je odtud vrácen a nečte se z pomalého disku. Pokud nejsou data v mezipaměti nalezena, jsou načtena z pomalého disku a zapsána do mezipaměti.
Existují různé zásady pro zápis – v režimu zpětného zápisu se data nejprve zapisují do mezipaměti a odtud se na pozadí přenášejí do pomalého zařízení (obvykle ve výrazně větších blocích a postupně, což zvyšuje výkon pevných disků s pomalým náhodné operace řádově).přístup, ale relativně vysoké sekvenční přístupové rychlosti). Navíc se často přepisují „horká data“ (často používaná data), což vede k situaci, kdy jsou data v cache přepsána několikrát, ale ve skutečnosti jsou pouze jednou uložena na pomalém zařízení. Pro přizpůsobení je k dispozici řada možností líného zápisu.
V režimu zápisu jsou data nejprve zapsána do pomalého zařízení a poté do mezipaměti v očekávání, že budou v blízké budoucnosti přečtena). K dispozici je také přechodný režim zápisu , kdy se data zapisují na pomalé zařízení a do mezipaměti se dostanou až po prvním přečtení.
Cache podporuje FILO - a FIFO - algoritmy vyloučení dat, navíc je zde možnost ručního resetování cache. Mezipaměť pro zpětný zápis je trvalá (přetrvává mezi restarty) a lze ji načíst. Režimy zápisu a režim procházení nejsou trvalé, což znamená, že mezipaměť musí být znovu vytvořena při každém spuštění.