Hoe compressie werkt in objectgeoriënteerde geheugarchitectuur

Een team ingenieurs van MIT heeft een objectgeoriënteerde geheugenhiërarchie ontwikkeld voor een efficiëntere omgang met gegevens. In dit artikel onderzoeken we hoe deze is opgebouwd.

Hoe compressie werkt in objectgeoriënteerde geheugarchitectuur
/ PxHere / PD

Zoals bekend, gaat de prestatiegroei van moderne CPU's niet gepaard met een overeenkomstige vermindering van de latentie bij geheugentoegang. Het verschil in de veranderingen van de prestaties kan van jaar tot jaar oplopen tot 10 keer (PDF, blz. 3). Het resultaat is een bottleneck die voorkomt dat de aanwezige middelen volledig worden benut en die de gegevensverwerking vertraagt.

De zogenaamde decompressielatentie schaadt de prestaties. In sommige gevallen kan de voorbereidende decompressie van gegevens tot wel 64 processorcycli duren.

Ter vergelijking: het optellen en vermenigvuldigen van drijvende komma-nummers neemt niet meer dan tien cycli in beslag. Het probleem is dat geheugen werkt met blokken van vaste grootte, terwijl applicaties omgaan met objecten die verschillende typen gegevens kunnen bevatten en van elkaar kunnen verschillen in grootte. 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 is een softwaregestuurde hiërarchie van ultra-korte registergeheugen (scratchpad). Deze registers worden pads (pads) genoemd en er zijn er drie — van L1 tot L3. Ze bevatten objecten van verschillende grootte, metadata en arrays van verwijzingen.

In feite is de architectuur een cachesysteem, maar speciaal ontworpen voor 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’, activeert het systeem een mechanisme dat vergelijkbaar is met ‘garbage collectors’ in de talen Java of Go. Het analyseert welke objecten minder vaak worden gebruikt dan de andere en verplaatst ze automatisch tussen de niveaus.

Zippads werkt op basis van Hotpads — het archiveert en dearchiveert gegevens die binnenkomen of vertrekken van de laatste twee niveaus in de hiërarchie — pad L3 en het hoofdgeheugen. In de eerste en tweede pad worden de gegevens in onveranderde toestand opgeslagen.

Hoe compressie werkt in objectgeoriënteerde geheugarchitectuur

Zippads comprimeert objecten met een volume van maximaal 128 bytes. Grotere objecten worden verdeeld in delen die vervolgens op verschillende plekken in het geheugen worden geplaatst. Zoals de ontwikkelaars zeggen, verhoogt deze aanpak de efficiëntie van het gebruik van geheugen.

Voor het comprimeren van objecten wordt het COCO-algoritme (Cross-Object COmpression) gebruikt, waarover we later meer zullen vertellen, hoewel het systeem ook kan werken met Base-Delta-Immediate of FPC. Het COCO-algoritme is een vorm van differentiële compressie (differential compression). Het vergelijkt objecten met 'basisobjecten' en verwijdert herhalende bits — zie schema hieronder:

Hoe compressie werkt in objectgeoriënteerde geheugarchitectuur

Volgens ingenieurs van MIT is hun objectgeoriënteerde geheugenhierarchie 17% efficiënter dan klassieke benaderingen. Het komt veel dichter in de buurt van de architectuur van moderne applicaties, waardoor de nieuwe methode potentieel heeft.

Het wordt verwacht dat technologie in eerste instantie zal worden gebruikt door bedrijven die werken met big data en machine learning-algoritmen. Een andere potentiële richting zijn cloudplatforms. IaaS-providers krijgen de mogelijkheid om efficiënter om te gaan met virtualisatie, opslag- en computermiddelen.

Onze aanvullende bronnen en referenties:

Hoe compressie werkt in objectgeoriënteerde geheugarchitectuur Hoe we IaaS bouwen: materialen over het werk van 1cloud

Hoe compressie werkt in objectgeoriënteerde geheugarchitectuur De evolutie van cloudarchitectuur 1cloud
Hoe compressie werkt in objectgeoriënteerde geheugarchitectuur Object opslagdienst in 1cloud

Hoe compressie werkt in objectgeoriënteerde geheugarchitectuur Potentiële aanvallen op HTTPS en manieren om je ertegen te beschermen
Hoe compressie werkt in objectgeoriënteerde geheugarchitectuur What Are the Similarities and Differences Between Continuous Delivery and Continuous Integration Approaches
Hoe compressie werkt in objectgeoriënteerde geheugarchitectuur How to Protect Your Server on the Internet: 1cloud's Experience

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster