Come funziona la compressione nell'architettura della memoria orientata agli oggetti

Un team di ingegneri del MIT ha sviluppato un'gerarchia di memoria orientata agli oggetti per una gestione più efficace dei dati. In questo articolo analizziamo come è strutturata.

Come funziona la compressione nell'architettura della memoria orientata agli oggetti
/ PxHere / PD

Come è noto, la crescita delle prestazioni degli attuali CPU non è accompagnata da una corrispondente riduzione della latenza nell'accesso alla memoria. La differenza nei valori da un anno all'altro può arrivare fino a 10 volte (PDF, p.3). Di conseguenza, si crea un collo di bottiglia che impedisce di utilizzare appieno le risorse disponibili e rallenta l'elaborazione dei dati.

Il danno alle prestazioni è causato dalla cosiddetta latenza di decompressione. In alcuni casi, la preparazione per la decompressione dei dati può richiedere fino a 64 cicli di processore.

A titolo di confronto: l'addition e la moltiplicazione di numeri con virgola mobile richiedono non più di dieci cicli. Il problema è che la memoria opera con blocchi di dati di dimensioni fisse, mentre le applicazioni gestiscono oggetti che possono contenere diversi tipi di dati e variare in dimensioni. Per risolvere questo problema, gli ingegneri del MIT hanno sviluppato un'gerarchia di memoria orientata agli oggetti che ottimizza l'elaborazione dei dati.

Come funziona la tecnologia

Alla base della soluzione ci sono tre tecnologie: Hotpads, Zippads e un algoritmo di compressione COCO.

Hotpads è un'gerarchia di memoria dei registri ultra-rapida gestita tramite software (scratchpad). Questi registri sono chiamati pad e ce ne sono tre: da L1 a L3. In essi vengono memorizzati oggetti di dimensioni diverse, metadati e array di puntatori.

Fondamentalmente, l'architettura rappresenta un sistema di cache, ma progettato per lavorare con oggetti. Il livello del pad in cui si trova un oggetto dipende da quanto spesso viene utilizzato. Se uno dei livelli "si riempie", il sistema attiva un meccanismo simile a un "garbage collector" nei linguaggi Java o Go. Esso analizza quali oggetti vengono utilizzati meno frequentemente rispetto agli altri e li sposta automaticamente tra i livelli.

Zippads funziona sulla base di Hotpads: archivia e decompone i dati che entrano o escono dagli ultimi due livelli dell'gerarchia — pad L3 e memoria principale. Nei primi due pad, i dati sono conservati in forma invariata.

Come funziona la compressione nell'architettura della memoria orientata agli oggetti

Zippads comprime oggetti il cui volume non supera i 128 byte. Gli oggetti più grandi vengono suddivisi in parti, che vengono quindi collocate in diverse aree di memoria. Come affermano gli sviluppatori, questo approccio aumenta il fattore di efficiente utilizzo della memoria.

Per comprimere gli oggetti viene utilizzato l'algoritmo COCO (Cross-Object COmpression), di cui parleremo più avanti, anche se il sistema è in grado di lavorare anche con Base-Delta-Immediate o FPC. L'algoritmo COCO è una variante della compressione differenziale (differential compression). Confronta gli oggetti con quelli "di base" e rimuove i bit ripetuti — vedi schema qui sotto:

Come funziona la compressione nell'architettura della memoria orientata agli oggetti

Secondo gli ingegneri del MIT, la loro gerarchia di memoria orientata agli oggetti è superiore del 17% rispetto agli approcci classici. È molto più simile nell'architettura alle applicazioni moderne, quindi questo nuovo metodo ha potenziale.

Si prevede che la tecnologia possa inizialmente essere utilizzata da aziende che lavorano con grandi volumi di dati e algoritmi di machine learning. Un'altra direzione potenziale sono le piattaforme cloud. I fornitori di IaaS avranno la possibilità di lavorare in modo più efficiente con la virtualizzazione, i sistemi di archiviazione dei dati e le risorse di calcolo.

JMAP — un protocollo aperto sostituirà IMAP nello scambio di email

Come funziona la compressione nell'architettura della memoria orientata agli oggetti «Come costruiamo IaaS»: materiali sul lavoro di 1cloud

Come funziona la compressione nell'architettura della memoria orientata agli oggetti Evoluzione dell'architettura cloud 1cloud
Come funziona la compressione nell'architettura della memoria orientata agli oggetti Servizio di archiviazione oggetti in 1cloud

Come funziona la compressione nell'architettura della memoria orientata agli oggetti Attacchi potenziali su HTTPS e metodi di protezione contro di essi
Come funziona la compressione nell'architettura della memoria orientata agli oggetti Quali sono le somiglianze e le differenze tra gli approcci Continuous Delivery e Continuous Integration
Come funziona la compressione nell'architettura della memoria orientata agli oggetti Come proteggere un server in Internet: l'esperienza di 1cloud

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster