Hvordan komprimering fungerer i objektorientert minnearkitektur

Et team av ingeniører ved MIT utviklet et objektorientert minnehierarki for å arbeide mer effektivt med data. I artikkelen forstår vi hvordan det er ordnet.

Hvordan komprimering fungerer i objektorientert minnearkitektur
/ Px /PD

Som du vet, er ytelsesveksten til moderne CPU-er ikke ledsaget av en tilsvarende reduksjon i ventetid ved tilgang til minne. Forskjellen i endringen i indikatorer fra år til år kan nå opptil 10 ganger (PDF, side 3). Som et resultat dukker det opp en flaskehals som ikke tillater full bruk av tilgjengelige ressurser og bremser databehandlingen.

Ytelsesstraffen er den såkalte dekompresjonsforsinkelsen. I noen tilfeller kan forberedende datadekompresjon ta opptil 64 prosessorsykluser.

Til sammenligning: addisjon og multiplikasjon av flyttall okkupere ikke mer enn ti sykluser. Problemet er at minnet fungerer med datablokker av fast størrelse, mens applikasjoner opererer med objekter som kan inneholde ulike typer data og avvike fra hverandre i størrelse. For å løse problemet utviklet MIT-ingeniører et objektorientert minnehierarki som optimerer databehandling.

Hvordan teknologien fungerer

Løsningen er basert på tre teknologier: Hotpads, Zippads og COCO-kompresjonsalgoritmen.

Hotpads er et programvaredrevet hierarki av skrapeloddregisterminne (kladdeplate). Disse registrene kalles pads (pads) og det er tre av dem - fra L1 til L3. De lagrer objekter av forskjellige størrelser, metadata og matriser med pekere.

I hovedsak er arkitekturen et cache-system, men skjerpet for å jobbe med objekter. Nivået på puten som objektet er plassert på, avhenger av hvor ofte det brukes. Hvis et av nivåene "flyter over", utløser systemet en mekanisme som ligner på "søppelsamlere" i Java eller Go. Den analyserer hvilke objekter som brukes sjeldnere enn andre og flytter dem automatisk mellom nivåer.

Zippads fungerer på grunnlag av Hotpads – arkiverer og pakker ut data som går inn eller ut av de to siste nivåene i hierarkiet – L3-paden og hovedminnet. I den første og andre puten lagres dataene uendret.

Hvordan komprimering fungerer i objektorientert minnearkitektur

Zippads komprimerer objekter opp til 128 byte. Større objekter er delt inn i deler, som deretter plasseres i forskjellige områder av minnet. Som utviklerne skriver, øker denne tilnærmingen koeffisienten til effektivt brukt minne.

For å komprimere objekter brukes COCO (Cross-Object Compression) algoritmen, som vi skal diskutere senere, selv om systemet er i stand til å jobbe med Base-Delta-Umiddelbar eller FPC. COCO-algoritmen er en variant av differensiell komprimering (differensiell kompresjon). Den sammenligner objekter med "base" og fjerner dupliserte biter - se diagrammet nedenfor:

Hvordan komprimering fungerer i objektorientert minnearkitektur

Ifølge MIT-ingeniører er deres objektorienterte minnehierarki 17 % raskere enn klassiske tilnærminger. Den er mye nærmere i sin struktur arkitekturen til moderne applikasjoner, så den nye metoden har potensiale.

Det forventes først og fremst at selskaper som jobber med big data og maskinlæringsalgoritmer kan ta i bruk teknologien. En annen potensiell retning er skyplattformer. IaaS-leverandører vil kunne jobbe mer effektivt med virtualisering, lagringssystemer og dataressurser.

Våre ekstra ressurser og ressurser:

Hvordan komprimering fungerer i objektorientert minnearkitektur "Hvordan bygger vi IaaS": materialer om arbeidet med 1cloud

Hvordan komprimering fungerer i objektorientert minnearkitektur Utviklingen av skyarkitektur 1cloud
Hvordan komprimering fungerer i objektorientert minnearkitektur Objektlagringstjeneste i 1cloud

Hvordan komprimering fungerer i objektorientert minnearkitektur Potensielle angrep på HTTPS og hvordan du kan beskytte deg mot dem
Hvordan komprimering fungerer i objektorientert minnearkitektur Hva er likhetene og forskjellene mellom tilnærminger for kontinuerlig levering og kontinuerlig integrasjon
Hvordan komprimering fungerer i objektorientert minnearkitektur Slik beskytter du en server på Internett: 1cloud-opplevelse

Kilde: www.habr.com

Legg til en kommentar