Hoe compressie werkt in een objectgeoriënteerde geheugenarchitectuur

Een team van ingenieurs van MIT heeft een objectgeoriënteerde geheugenhiërarchie ontwikkeld om efficiënter met gegevens te kunnen werken. In het artikel zullen we begrijpen hoe het werkt.

Hoe compressie werkt in een objectgeoriënteerde geheugenarchitectuur
/ PxHere /PD

Zoals bekend gaat de prestatieverbetering van moderne CPU's niet gepaard met een overeenkomstige afname van de latentie bij toegang tot geheugen. Het verschil in veranderingen in indicatoren van jaar tot jaar kan tot 10 keer bedragen (PDF, pagina 3). Als gevolg hiervan ontstaat er een knelpunt dat het volledige gebruik van de beschikbare bronnen verhindert en de gegevensverwerking vertraagt.

Prestatieschade wordt veroorzaakt door de zogenaamde decompressievertraging. In sommige gevallen kan de voorbereidende gegevensdecompressie tot 64 processorcycli duren.

Ter vergelijking: optellen en vermenigvuldigen van getallen met drijvende komma bezetten niet meer dan tien cycli. Het probleem is dat het geheugen werkt met datablokken van een vaste grootte, en dat applicaties werken met objecten die verschillende soorten gegevens kunnen bevatten en in grootte van elkaar kunnen verschillen. Om dit probleem op te lossen, hebben ingenieurs van MIT een objectgeoriënteerde geheugenhiërarchie ontwikkeld die de gegevensverwerking optimaliseert.

Hoe de technologie werkt

De oplossing is gebaseerd op drie technologieën: Hotpads, Zippads en het COCO-compressie-algoritme.

Hotpads zijn een softwaregestuurde hiërarchie van snel geregistreerd geheugen (kladblok). Deze registers worden pads genoemd en er zijn er drie: van L1 tot L3. Ze slaan objecten van verschillende groottes, metadata en pointer-arrays op.

In wezen is de architectuur een cachesysteem, maar dan afgestemd op het werken met objecten. Het niveau van de pad waarop het object zich bevindt, hangt af van hoe vaak het wordt gebruikt. Als een van de niveaus ‘overloopt’, start het systeem een ​​mechanisme dat lijkt op ‘garbage collectors’ in de Java- of Go-talen. Het analyseert welke objecten minder vaak worden gebruikt dan andere en verplaatst ze automatisch tussen niveaus.

Zippads werkt bovenop Hotpads: archiveert en archiveert gegevens die de laatste twee niveaus van de hiërarchie binnenkomen of verlaten: het L3-pad en het hoofdgeheugen. De eerste en tweede pads slaan gegevens onveranderd op.

Hoe compressie werkt in een objectgeoriënteerde geheugenarchitectuur

Zippads comprimeert objecten waarvan de grootte niet groter is dan 128 bytes. Grotere objecten worden in delen verdeeld, die vervolgens in verschillende geheugengebieden worden geplaatst. Zoals de ontwikkelaars schrijven, verhoogt deze aanpak de coëfficiënt van effectief gebruikt geheugen.

Om objecten te comprimeren wordt het COCO-algoritme (Cross-Object COmpression) gebruikt, dat we later zullen bespreken, hoewel het systeem ook kan werken met Basis-Delta-Onmiddellijk of FPC. Het COCO-algoritme is een type differentiële compressie (differentiële compressie). Het vergelijkt objecten met de "basis" en verwijdert dubbele bits - zie het onderstaande diagram:

Hoe compressie werkt in een objectgeoriënteerde geheugenarchitectuur

Volgens ingenieurs van MIT is hun objectgeoriënteerde geheugenhiërarchie 17% productiever dan klassieke benaderingen. Het ontwerp ligt veel dichter bij de architectuur van moderne applicaties, dus de nieuwe methode heeft potentieel.

De verwachting is dat bedrijven die met big data en machine learning-algoritmen werken de technologie als eerste zullen gaan gebruiken. Een andere mogelijke richting zijn cloudplatforms. IaaS-aanbieders zullen efficiënter kunnen werken met virtualisatie, dataopslagsystemen en computerbronnen.

Onze aanvullende bronnen en bronnen:

Hoe compressie werkt in een objectgeoriënteerde geheugenarchitectuur “Hoe we IaaS bouwen”: materialen over het werk van 1cloud

Hoe compressie werkt in een objectgeoriënteerde geheugenarchitectuur De evolutie van cloudarchitectuur 1cloud
Hoe compressie werkt in een objectgeoriënteerde geheugenarchitectuur Objectopslagservice in 1cloud

Hoe compressie werkt in een objectgeoriënteerde geheugenarchitectuur Mogelijke aanvallen op HTTPS en hoe u zich daartegen kunt beschermen
Hoe compressie werkt in een objectgeoriënteerde geheugenarchitectuur Hoe zijn de benaderingen van Continuous Delivery en Continuous Integration vergelijkbaar en verschillend?
Hoe compressie werkt in een objectgeoriënteerde geheugenarchitectuur Hoe een server op internet te beschermen: 1cloud-ervaring

Bron: www.habr.com

Voeg een reactie