Ako funguje kompresia v objektoch orientovanej architektúre pamäte

Tím inžinierov z MIT vyvinul objektovo orientovanú hierarchiu pamäte, aby efektívnejšie pracoval s dátami. V článku sa zaoberáme tým, ako je to usporiadané.

Ako funguje kompresia v objektoch orientovanej architektúre pamäte
/ PxHere / PD

Ako je známe, nárast výkonnosti moderných CPU nie je sprevádzaný zodpovedajúcim poklesom latencie pri prístupe k pamäti. Rozdiel v zmenách ukazovateľov z roka na rok môže dosiahnuť až 10-násobok (PDF, str.3). Výsledkom je úzky bod, ktorý neumožňuje plne využiť dostupné zdroje a spomaľuje spracovanie dát.

Na výkon vplýva tzv. dekompresná latencia. V niektorých prípadoch môže príprava dekompresie dát zabrať až 64 procesorových cyklov.

Na porovnanie: sčítanie a násobenie čísel s pohyblivou desatinnou čiarkou trvá maximálne desať cyklov. Problém spočíva v tom, že pamäť pracuje s blokmi dát pevnej veľkosti, zatiaľ čo aplikácie pracujú s objektmi, ktoré môžu obsahovať rôzne typy dát a líšiť sa veľkosťou. Na vyriešenie problému tím inžinierov z MIT vyvinul objektovo orientovanú hierarchiu pamäte, ktorá optimalizuje spracovanie dát.

Ako funguje technológia

Základom riešenia sú tri technológie: Hotpads, Zippads a algoritmus kompresie COCO.

Hotpads sú softvérovo riadená hierarchia superkritickej registračnej pamäte (scratchpad). Tieto registre sa nazývajú pady a sú tri — od L1 po L3. Ukladajú objekty rôznych veľkostí, metadata a pole ukazovateľov.

Architektúra je v podstate systém cache, ale prispôsobený na prácu s objektmi. Úroveň padu, na ktorej sa objekt nachádza, závisí od toho, ako často sa používa. Ak je niektorá z úrovní „preplnená“, systém spúšťa mechanizmus podobný „zametačom odpadu“ v jazykoch Java alebo Go. Analyzuje, ktoré objekty sa používajú menej často ako ostatné a automaticky ich presúva medzi úrovňami.

Zippads funguje na základe Hotpads — archívuje a rozbaľuje dáta, ktoré prichádzajú alebo odchádzajú z dvoch posledných úrovní hierarchie — padu L3 a hlavnej pamäte. V prvom a druhom pade sú dáta uchovávané v nezmenenej podobe.

Ako funguje kompresia v objektoch orientovanej architektúre pamäte

Zippads komprimuje objekty, ktorých veľkosť nepresahuje 128 bajtov. Väčšie objekty sú rozdelené na časti, ktoré sú potom umiestnené v rôznych oblastiach pamäte. Ako píšu vývojári, takýto prístup zvyšuje koeficient efektívne využívanej pamäte.

Na komprimáciu objektov sa používa algoritmus COCO (Cross-Object COmpression), o ktorom sa dozviete viac neskôr, aj keď systém dokáže pracovať aj s Base-Delta-Immediate alebo FPC. Algoritmus COCO je druhom diferenciálnej kompresie (differential compression). Porovnáva objekty s „základnými“ a odstraňuje opakujúce sa bity — pozrite si schému nižšie:

Ako funguje kompresia v objektoch orientovanej architektúre pamäte

Podľa inžinierov z MIT je ich objektovo orientovaná hierarchia pamäte o 17 % výkonnejšia ako klasické prístupy. Je oveľa bližšie svojou štruktúrou k architektúre súčasných aplikácií, takže nová metóda má potenciál.

Očakáva sa, že technológiu najprv začnú používať spoločnosti, ktoré pracujú s veľkými dátami a algoritmami strojového učenia. Ďalším potenciálnym smerom sú cloudové platformy. IaaS poskytovatelia získajú možnosť efektívnejšie pracovať s virtualizáciou, systémami ukladania dát a výpočtovými zdrojmi.

Naše ďalšie zdroje a materiály:

Ako funguje kompresia v objektoch orientovanej architektúre pamäte „Ako budujeme IaaS“: materiály o práci 1cloud

Ako funguje kompresia v objektoch orientovanej architektúre pamäte Evolúcia architektúry cloudu 1cloud
Ako funguje kompresia v objektoch orientovanej architektúre pamäte Služba objektového úložiska v 1cloud

Ako funguje kompresia v objektoch orientovanej architektúre pamäte Potenciálne útoky na HTTPS a spôsoby ochrany proti nim
Ako funguje kompresia v objektoch orientovanej architektúre pamäte Ako sa podobajú a líšia prístupy Continuous Delivery a Continuous Integration
Ako funguje kompresia v objektoch orientovanej architektúre pamäte Ako chrániť server na internete: skúsenosti 1cloud

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster