Kā saspiešana darbojas objektorientētā atmiņas arhitektūrā

MIT inženieru komanda ir izstrādājusi uz objektu orientētu atmiņas hierarhiju, lai efektīvāk strādātu ar datiem. Rakstā mēs sapratīsim, kā tas darbojas.

Kā saspiešana darbojas objektorientētā atmiņas arhitektūrā
/ Fona attēls /PD

Kā zināms, moderno CPU veiktspējas pieaugumu nepavada attiecīgs latentuma samazinājums, piekļūstot atmiņai. Rādītāju izmaiņu atšķirība gadu no gada var būt līdz 10 reizēm (PDF, 3. lpp). Rezultātā rodas sastrēgums, kas neļauj pilnībā izmantot pieejamos resursus un palēnina datu apstrādi.

Darbības bojājumus izraisa tā sauktā dekompresijas aizkave. Dažos gadījumos datu sagatavošanas atspiešana var ilgt līdz 64 procesora cikliem.

Salīdzinājumam: peldošā komata skaitļu saskaitīšana un reizināšana ieņemt ne vairāk kā desmit cikli. Problēma ir tā, ka atmiņa darbojas ar fiksēta izmēra datu blokiem, un lietojumprogrammas darbojas ar objektiem, kas var saturēt dažāda veida datus un atšķiras viens no otra pēc izmēra. Lai atrisinātu problēmu, MIT inženieri izstrādāja uz objektu orientētu atmiņas hierarhiju, kas optimizē datu apstrādi.

Kā tehnoloģija darbojas

Risinājuma pamatā ir trīs tehnoloģijas: Hotpads, Zippads un COCO kompresijas algoritms.

Hotpad ir programmatūras kontrolēta ātrdarbīgas reģistrētās atmiņas hierarhija (ieskrāpēt). Šos reģistrus sauc par spilventiņiem, un tie ir trīs - no L1 līdz L3. Tie glabā dažāda izmēra objektus, metadatus un rādītāju masīvus.

Būtībā arhitektūra ir kešatmiņas sistēma, taču tā ir pielāgota darbam ar objektiem. Objekta paliktņa līmenis ir atkarīgs no tā lietošanas biežuma. Ja kāds no līmeņiem “pārplūst”, sistēma iedarbina mehānismu, kas ir līdzīgs “atkritumu savācējiem” Java vai Go valodās. Tā analizē, kuri objekti tiek izmantoti retāk nekā citi, un automātiski pārvieto tos starp līmeņiem.

Zippads darbojas, balstoties uz Hotpad – arhivē un atarhivē datus, kas tiek ievadīti vai iziet no pēdējiem diviem hierarhijas līmeņiem – L3 paliktnī un galvenajā atmiņā. Pirmais un otrais paliktnis saglabā datus nemainītus.

Kā saspiešana darbojas objektorientētā atmiņas arhitektūrā

Zippads saspiež objektus, kuru izmērs nepārsniedz 128 baitus. Lielāki objekti tiek sadalīti daļās, kuras pēc tam tiek ievietotas dažādās atmiņas zonās. Kā raksta izstrādātāji, šī pieeja palielina efektīvi izmantotās atmiņas koeficientu.

Objektu saspiešanai tiek izmantots COCO (Cross-Object COmpression) algoritms, par kuru mēs runāsim vēlāk, lai gan sistēma var strādāt arī ar Bāze-Delta-Tūlītēja vai RPK. COCO algoritms ir diferenciālās saspiešanas veids (diferenciālā saspiešana). Tas salīdzina objektus ar "bāzi" un noņem dublētos bitus - skatiet diagrammu zemāk:

Kā saspiešana darbojas objektorientētā atmiņas arhitektūrā

Pēc MIT inženieru domām, viņu objektorientētā atmiņas hierarhija ir par 17% produktīvāka nekā klasiskās pieejas. Tā dizainā ir daudz tuvāka mūsdienu lietojumprogrammu arhitektūrai, tāpēc jaunajai metodei ir potenciāls.

Paredzams, ka uzņēmumi, kas strādā ar lielajiem datiem un mašīnmācīšanās algoritmiem, vispirms sāks izmantot tehnoloģiju. Vēl viens potenciāls virziens ir mākoņu platformas. IaaS nodrošinātāji varēs efektīvāk strādāt ar virtualizāciju, datu uzglabāšanas sistēmām un skaitļošanas resursiem.

Mūsu papildu resursi un avoti:

Kā saspiešana darbojas objektorientētā atmiņas arhitektūrā “Kā mēs veidojam IaaS”: materiāli par 1cloud darbu

Kā saspiešana darbojas objektorientētā atmiņas arhitektūrā 1cloud mākoņu arhitektūras attīstība
Kā saspiešana darbojas objektorientētā atmiņas arhitektūrā Objektu uzglabāšanas pakalpojums 1cloud

Kā saspiešana darbojas objektorientētā atmiņas arhitektūrā Iespējamie uzbrukumi HTTPS un aizsardzība pret tiem
Kā saspiešana darbojas objektorientētā atmiņas arhitektūrā Kā nepārtrauktas piegādes un nepārtrauktas integrācijas pieejas ir līdzīgas un atšķirīgas?
Kā saspiešana darbojas objektorientētā atmiņas arhitektūrā Kā aizsargāt serveri internetā: 1 mākoņa pieredze

Avots: www.habr.com

Pievieno komentāru