Questo sito web utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie. Leggi la nostra Cookie Policy per esteso.OK

Cosa c’è da sapere sull’elaborazione “in memory”

pittogramma Zerouno

TechTarget Tech InDepth

Cosa c’è da sapere sull’elaborazione “in memory”

03 Nov 2017

di Piero Todorovich - fonte TechTarget

Come orientarsi nella scelta dei supporti da utilizzare per velocissime elaborazioni “in memory” di database o altre applicazioni? Dagli esperti, le opzioni di oggi e le promesse per il futuro

La memorizzazione dei dati nella memoria centrale è l’espediente più diffuso per rendere istantaneo il funzionamento di database o di altre applicazioni. L’accesso ai dati in memoria centrale non soffre infatti dei problemi di latenza nell’accesso ai dischi, siano essi hard disk tradizionali o a stato solido. L’in memory è dunque sicuramente la migliore scelta quando si vogliano ottenere elaborazioni dati in modo immediato.

I database in memory operano in modo più simile alle cache di front-end che a veri e propri database su disco. Sono progettati per liberarsi di tutto ciò che non è necessario all’I/O e aggiornare unicamente i dati in fase di inserimento. La verifica dei dati dopo la scrittura è un’operazione comunque molto veloce.

I database in memory possono fare a meno di tutto lo stack di storage associato con l’elaborazione della struttura delle directory nel file system e il reperimento delle tracce su disco. L’elaborazione in memory può quindi facilmente accelerare il database di un fattore che può arrivare a 100 volte, riducendo i tempi di risposta e il numero dei server necessari nel cluster database per garantire le prestazioni.

La velocità dell’elaborazione in memory ottenuta tenendo i dati nella memoria centrale dinamica del sistema (DRAM) comporta un rischio: se il sistema si spegne la DRAM si cancella e i dati sono perduti.

La salvezza si chiama NVDIMM

Mantenere persistente una parte o l’intero contenuto della base dati è comprensibilmente il modo più efficace per rendere sicuro l’approccio ai database in memory, ma questo solleva il problema di come strutturare il backend di storage.

La prima soluzione è salvare qualsiasi dato su SSD NVMe (NVMe sta per non-volatile memory host express: la più veloce interfaccia di storage sul mercato) oppure su schede flash. Queste ultime offrono il modo più veloce per muovere dati dalla DRAM verso lo storage persistente. Si dovrebbe inoltre considerare la tecnologia NVDIMM (non-volatile dual in-line memory module) come storage persistente in alternativa alle DRAM.

Poiché NVDIMM può essere collegata allo stesso bus velocissimo della memoria centrale è almeno quattro volte più veloce del più rapido degli SSD. Usando queste memorie in abbinamento con DRAM, i database in memory possono vedere senza difficoltà un maggiore spazio di memoria ed evitare perdite di dati. Cosa più importante, l’IT può mantenere una immagine dei dati in memory o creare un file di journal delle operazioni di scrittura senza impatto sulle prestazioni.

Occorre considerare che NVDIMM ha maggiori limiti di capacità rispetto agli SSD. Questo significa che non sarà possibile lavorare con big data, con data-set che cambiano continuamente o dove non sia possibile selezionare ciò che è utile per l’accesso veloce. In questi casi restano le alternative più tradizionali degli storage veloci basati su drive NVMe, oppure su un gran numero di dischi SSD. L’ultima opzione offre circa il 10% delle prestazioni di un drive NVMe, ma è molto più economica e può operare con un alto livello di parallelismo. La scelta va fatta in base alle necessità dell’utilizzo.

Le interfacce storage con più alti livelli di banda aiutano moltissimo l’elaborazione in memory. Gli amministratori possono usare il remote direct memory access (RDMA) su Ethernet per condividere dati tra sistemi di memoria, e possono estenderli a qualsiasi storage basato su drive.

In memory, ecco cosa promette il futuro

Le infrastrutture per l’in memory processing stanno evolvendo molto rapidamente e le maggiori novità riguardano NVDIMM e CPU.

La nuova tecnologia CPU Optane di Intel ha nella roadmap di sviluppo la capacità di indirizzare il byte. Questo consente a un programma di scrivere un singolo byte sulla memoria con un comando del tipo register-to-memory. Comparato con i trasferimenti in blocchi da 4KB, che costituiscono la modalità corrente di accesso a NVDIMM, rende le operazioni significativamente più veloci. Con Octane, la creazione del blocco da 4K e la sua trasmissione alla memoria può avvenire con molti meno cicli macchina di quanto accada oggi.

L’indirizzabilità a livello del byte richiede molti cambiamenti nel codice software ma, secondo gli esperti, applicare questa capacità a un motore database non è così difficile che con le tradizionali applicazioni monolitiche. Questo è il motivo che spinge ad essere ottimisti: questa capacità sarà applicata per prima nei database. Il concetto può essere esteso ai cluster e ai drive NVMe che usano RDMA (remote direct memory access) collegati a Optane.

Negli ambienti big data, banda di rete e storage locale restano un collo di bottiglia all’espressione della potenza del sistema, ma una soluzione è rappresentata dalla compressione dei dati. I livelli di compressione dipendono dal tipo di dati, ma ipotizzando un livello medio di riduzione di 5 volte può esserci un grande vantaggio nell’I/O.

Dal lato dei sistemi c’è oggi attenzione nel realizzare unità con una topologia interna molto meno gerarchica del passato, in cui memoria, GPU, CPU e drive possano condividere la stessa connessione ultra veloce, eventualmente accoppiata con quella di altri sistemi in cluster.

Altri progetti mirano a incrementare la capacità di DRAM e le prestazioni con un più stretto accoppiamento tra CPU e memoria. Le differenti iniziative sono basate sul concetto dell’Hybrid Memory Cube: l’obiettivo è arrivare a velocità dell’ordine dei terabyte per secondo nella comunicazione con la memoria, ridurre consumo d’energia, supportare meglio DRAM ibride e architetture CPU e flash più modulari in grado di velocizzare in modo significativo le elaborazioni.

Queste iniziative mirano a produrre un grande salto nelle prestazioni dei sistemi anche se, al momento, non è chiaro quali strade prenderà l’evoluzione. La promessa è che ad avvantaggiarsene possano essere lo storage e le applicazioni che operano in memory.

Piero Todorovich - fonte TechTarget

Giornalista professionista dal 91, ha scoperto il Computer negli Anni 80 da studente e se n'è subito innamorato, scegliendo di fare della divulgazione delle tecnologie e dell'informatica la propria professione. Alla passione per la storia delle tecnologie affianca quella per i viaggi e la musica

Cosa c’è da sapere sull’elaborazione “in memory”

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

    LinkedIn

    Twitter

    Whatsapp

    Facebook

    Link

    Articolo 1 di 4