Griglie di dati in memoria e database in memoria

L'adozione del calcolo in memoria continua ad accelerare. Le soluzioni mature consentono alle organizzazioni di ottenere la velocità di elaborazione del database e la scalabilità necessarie per le loro iniziative di trasformazione digitale e di esperienza del cliente omnicanale. Ad esempio, la società di investimento Wellington Management ha utilizzato una piattaforma di elaborazione in-memory per accelerare e ridimensionare il proprio portafoglio di investimenti (IBOR), l'unica fonte di verità per posizioni, esposizione, valutazioni e performance degli investitori. Tutte le transazioni di trading in tempo reale, tutte le attività del conto correlate, i dati di terze parti come le quotazioni di mercato e tutte le attività di back-office correlate fluiscono attraverso il suo IBOR in tempo reale. L'IBOR supporta anche analisi delle prestazioni, valutazioni del rischio, conformità normativa e altro ancora. In vari test,la nuova piattaforma ha funzionato almeno dieci volte più velocemente del sistema legacy dell'azienda costruito direttamente su un database relazionale Oracle.

Nikita Ivanov è CTO presso GridGain Systems, che sviluppa soluzioni di elaborazione in-memory.

Gartner prevede che entro il 2019, il 75% dello sviluppo di applicazioni native del cloud utilizzerà l'elaborazione in-memory, o servizi che utilizzano l'elaborazione in-memory, per consentire agli sviluppatori mainstream di implementare applicazioni ad alte prestazioni e altamente scalabili. Tuttavia, gli sviluppatori che non conoscono le tecnologie di elaborazione in memoria devono sviluppare una comprensione delle diverse strategie per aggiungere la tecnologia alle loro architetture. Nella maggior parte dei casi, la prima decisione che devono prendere è se distribuire una griglia di dati in memoria o un database in memoria. Questa decisione si baserà principalmente sull'intenzione di accelerare le applicazioni esistenti, pianificare lo sviluppo di nuove applicazioni o riprogettare completamente quelle esistenti o vedere l'opportunità di fare entrambe le cose. Devono anche considerare quale layer fungerà da sistema di registrazione,il livello di elaborazione in memoria o il livello dati sottostante.

Esploriamo le tecnologie di elaborazione in memoria necessarie per implementare queste strategie.

Griglie di dati in memoria

Una griglia di dati in memoria (IMDG) copia i dati basati su disco dai database RDBMS, NoSQL o Hadoop nella RAM, dove l'elaborazione avviene senza i ritardi causati dalle continue letture e scritture del disco. Inserita tra l'applicazione e i livelli di dati, la griglia di dati in memoria viene distribuita su un cluster di nodi server e condivide la memoria e la CPU disponibili del cluster. Sia che venga distribuito in un ambiente cloud pubblico o privato, in locale o in un ambiente ibrido, una griglia di dati in memoria può essere scalata semplicemente aggiungendo un nuovo nodo al cluster. Alcune griglie di dati in memoria possono supportare transazioni ANSI-99 SQL e ACID, sicurezza avanzata, machine learning e integrazioni native di Spark, Cassandra e Hadoop.

Una griglia di dati in memoria è una soluzione semplice ed economica per le applicazioni esistenti. Tuttavia, molte griglie di dati in memoria richiedono che tutti i dati nel database basato su disco sottostante si adattino alla memoria, il che richiede che un'azienda acquisti memoria sufficiente per contenere tutti i dati. Poiché la memoria è ancora più costosa del disco, molte aziende potrebbero preferire mantenere alcuni dati solo su disco. Le nuove architetture incentrate sulla memoria risolvono questo problema elaborando l'intero set di dati, anche se alcuni dati sono archiviati su disco. Questa capacità di "archiviazione persistente" consente alla quantità di dati di superare la quantità di memoria. Ciò significa che i dati possono essere ottimizzati in modo che tutti i dati risiedano su disco, ma anche i dati usati più frequentemente risiedono in memoria, mentre i dati usati raramente risiedono solosu disco. Un altro vantaggio chiave è che dopo un riavvio, un sistema con un archivio persistente può iniziare l'elaborazione immediatamente a fronte del set di dati su disco senza attendere che il set di dati venga caricato in memoria.

Workday, un fornitore di soluzioni SaaS per la finanza e le risorse umane al servizio delle aziende Fortune 50, ha spiegato come utilizza una griglia di dati in memoria per elaborare circa 189 milioni di transazioni al giorno, con un picco di circa 289 milioni al giorno. Per fare un confronto, Twitter gestisce circa 500 milioni di tweet al giorno.

Database in memoria

Un database in memoria (IMDB) è più adatto per applicazioni nuove o riprogettate. Si tratta di un database autonomo completo in esecuzione in memoria che supporta API di elaborazione dati come ANSI-99 SQL, valore-chiave, calcolo e apprendimento automatico. Il vantaggio di un database in memoria rispetto a una griglia di dati in memoria è che l'architettura viene ridotta da tre livelli (applicazione, in memoria e dati) a due. Lo svantaggio è che non può essere utilizzato per un'applicazione esistente senza un aumento e uno spostamento del set di dati dal database esistente. Inoltre, poiché un database in memoria funge da sistema di registrazione, la soluzione deve includere una strategia per proteggere i dati in caso di downtime. Questa strategia può essere simile alla capacità di memorizzazione persistente discussa per le griglie di dati in memoria, oppure potrebbe comportare l'uso di RAM non volatile,una nuova tecnologia che probabilmente giocherà un ruolo sempre più importante in futuro.

Oggi, una grande banca con 135 milioni di clienti utilizza un database in memoria con capacità di archivio persistente per sviluppare un'architettura su scala web in grado di gestire fino a 1,5 PB di dati, insieme al volume di transazioni richiesto. Questa soluzione funge da sistema di registrazione e non si trova su un archivio dati esistente.

Piattaforme di elaborazione in memoria

Le organizzazioni che sviluppano una strategia a lungo termine che comporta l'accelerazione delle applicazioni esistenti e il lancio di nuove possono optare per una piattaforma di elaborazione in memoria che combina la scalabilità di un IMDG con le capacità di database relazionali complete di un IMDB. La piattaforma di elaborazione in memoria, quindi, può essere utilizzata per accelerare le applicazioni esistenti o essere la base per la creazione di applicazioni nuove o rielaborate che possono trarre vantaggio dall'elaborazione distribuita e da un archivio persistente.

Oltre a decidere quale tecnologia soddisfa meglio le loro esigenze, le organizzazioni dovrebbero considerare se necessitano di ulteriori tecnologie di supporto in memoria, come:

  • Un motore di analisi dei flussi per gestire tutta la complessità del flusso di dati e dell'elaborazione degli eventi.
  • Un framework di apprendimento continuo basato sul deep learning che funge da base per ciò che Gartner definisce HTAP (elaborazione ibrida transazionale / analitica) in-process; ovvero la capacità di applicare l'apprendimento automatico o l'analisi del deep learning ai dati operativi in ​​tempo reale.

La tecnologia di elaborazione in-memory è ora utilizzata dalle principali aziende digitali e in futuro sarà ancora più ampiamente utilizzata. Prima svilupperai una solida conoscenza delle strategie di distribuzione e delle capacità dell'elaborazione in memoria, prima sarai in grado di aiutare la tua organizzazione a ottenere il vantaggio competitivo di cui ha bisogno.