AWS introduce Amazon MemoryDB per Redis

0
138

Tony Baer (dbInsight)

di Tony Baer (dbInsight) per Big on Data | 19 agosto 2021 — 17:32 GMT (18:32 BST) | Argomento: Big Data Analytics

dont-forget.jpg

< /p>

Amazon Web Services, che offre già un portafoglio di 15 database, ne sta ora rilasciando uno in più. Amazon MemoryDB for Redis è un'implementazione di database in tempo reale che si basa in parte sulla piattaforma Redis open source, ma aggiunge durata e persistenza. AWS lo posiziona come mirato per i clienti che richiedono un servizio di database completo piuttosto che una cache per Redis basandosi sul presupposto che i casi d'uso saranno molto diversi.

Lo vediamo come un continuum, con Amazon MemoryDB che è un servizio che riprende da dove Amazon ElastiCache si interrompe e come concorrenza diretta con Redis Enterprise Cloud offerto da Redis, la società. La differenza tra Amazon ElastiCache e MemoryDB è che il primo è inteso come una cache in memoria che funziona insieme a un database primario, mentre MemoryDB è di per sé un servizio di database completo progettato per funzionare da solo.

Fino ad ora, il servizio ElastiCache di AWS offriva una scelta di memorizzazione nella cache Redis o Memcached. Il nuovo servizio è la risposta di AWS a Redis Enterprise. Considera che Amazon MemoryDB è, in sostanza, un livello premium di ElastiCache per Redis; funzionalmente, è un database piuttosto che una cache e, tecnicamente, è un'implementazione modificata del motore Redis che è compatibile con esso.

Lo sfondo di tutto questo è che Redis open source è una piattaforma incredibilmente popolare. Classificato tra i primi 10 database da db-Engines, secondo Sumologic, è anche il database più popolare distribuito su AWS. E continuando, i sondaggi Stack Overflow della sua comunità hanno elencato Redis come il database “più amato” dagli sviluppatori negli ultimi cinque anni consecutivi. Ciascuno dei principali provider di cloud offre i propri servizi di memorizzazione nella cache basati su Redis basati sulla versione open source.

Gli sviluppatori amano Redis perché incontra gli sviluppatori dove vivono. Supporta i tipi di dati con cui gli sviluppatori lavorano frequentemente, come hash, elenchi, set, stringhe e set ordinati. E, in secondo luogo, Redis supporta i linguaggi popolari tra gli sviluppatori, come C, C++, C#, JavaScript, Java, Go, Objective-C, Python e PHP.

La versatilità è stata a lungo la chiave del successo di Redis. È più comunemente usato come cache in memoria che si trova accanto a un database transazionale, come SQL Server, MySQL o Oracle. Scarica l'elaborazione in tempo reale dai database di back-end. È un'attività vecchia quanto i monitoraggi delle transazioni degli anni '90 e gli archivi di oggetti in memoria (che erano archivi di dati chiave/valore primitivi) dei primi anni 2000.

La sfida, tuttavia, è quando gli sviluppatori utilizzano la cache Redis per scopi non previsti, con i database di serie temporali per i dati IoT che sono un ottimo esempio e un caso d'uso popolare. La cache Redis acquisisce i dati rapidamente, ma il problema è che manca di durata e persistenza; quando il nodo si interrompe, i dati vengono persi. Redis open source può scrivere dati su un file di sola aggiunta su disco, ma tale misura è ugualmente vulnerabile se il nodo si interrompe.

Fino ad ora, quando si trattava di Redis come database NoSQL o multimodello in memoria completo, Redis Enterprise era l'unico gioco in città. Redis Labs ha puntato la propria attività sull'offerta di risposte agli sviluppatori che richiedono più della cache. Rispetto a Redis open source, Redis Enterprise supporta approcci ad alta disponibilità più granulari; tiering dei dati su memoria flash SSD; funzionamento del database completamente geodistribuito (multimaster) tramite replica active-active; supporto multi-cloud; e supporto dei moduli Redis, che aggiungono estensibilità al database (ad esempio, supporto di ricerca, dati grafici, SQLite incorporato, JSON e altre funzionalità). Redis Enterprise Cloud viene eseguito su tutti e tre i principali cloud pubblici, attraverso i marketplace su AWS e Azure; e come offerta supportata congiuntamente su Google Cloud.

E la necessità di un database Redis è ciò che ha spinto AWS a introdurre MemoryDB, sebbene a questo punto le capacità di MemoryDB e Redis Enterprise differiscano notevolmente. Ad esempio, Redis Enterprise offre storage a livelli su Flash, una funzionalità che non è presente nella versione iniziale. Un importante elemento di differenziazione con MemoryDB, tuttavia, è il suo approccio alla persistenza dei dati. Impiega un registro delle transazioni multi-AZ per mantenere i dati durevoli e consentire la sostituzione e il ripristino senza perdita di dati. È importante sottolineare che il registro non viene eseguito sui nodi del database di MemoryDB. Una volta che MemoryDB esegue il commit di una scrittura nel log delle transazioni sottostante, viene propagato ai nodi di replica con coerenza finale garantita.

I clienti possono avviare cluster MemoryDB utilizzando le istanze AWS Graviton2. Eseguirà letture di microsecondi e scritture di millisecondi a una cifra grazie, non solo all'affidamento alla memoria, ma con l'approccio leggero del log delle transazioni. Come notato, sebbene il tiering dei dati più freddi su Flash non sia attualmente supportato, non saremmo sorpresi se venisse supportato in una versione futura.

All'inizio, Amazon MemoryDB supporterà tutte le API di dati principali di Redis open source, inclusi stringhe, elenchi, set, set ordinati, hash, flussi, geospaziali, bitmap e hyperloglog. Supporterà fino a 128 TB di memoria per cluster, con una replica per ogni shard. Oltre all'archiviazione flash a livelli, altre funzionalità di Redis Enterprise come il supporto per i moduli Redis, alcuni dei tipi di dati estesi e la replica geografica attiva-attiva non sono attualmente supportate da MemoryDB; molte di queste funzionalità sono disponibili solo tramite la Redis Source Available License, che vieta a terzi di venderle se vengono offerte come database o per altri usi verboten. D'altra parte, Redis Enterprise, che sta attualmente lavorando su Redis Raft per la durabilità, non l'ha ancora portato alla disponibilità generale (prevediamo che cambierà presto).

Offrendo un servizio che AWS definisce compatibile con Redis che supporta le API Redis open source, esistono parallelismi con gli approcci di AWS ad Amazon Aurora (per MySQL e PostgreSQL) e Amazon KeySpaces (per Apache Cassandra): supportano le stesse API del popolare archivio dati di origine con miglioramenti nascosti per supportare un'esperienza completamente gestita. Per MemoryDB, gli utenti saranno in grado di creare applicazioni utilizzando le stesse strutture dati e API Redis che già utilizzano, ma con i vantaggi aggiuntivi di un database completamente gestito.

Amazon MemoryDB for Redis inizia a colmare il vuoto per i clienti che cercano una controparte durevole per ElastiCache. A questo punto, non ha la stessa ampiezza di funzionalità di Redis Enterprise o Redis Enterprise Cloud, almeno per quanto riguarda il supporto dei moduli Redis o delle letture e scritture geodistribuite. E sebbene questa non sia la prima incursione per AWS con l'aggiunta di funzionalità in-memory ai suoi database, data la popolarità di Redis, colma una lacuna significativa nella sua gamma. A differenza della maggior parte delle introduzioni di database AWS che in genere iniziano con un'anteprima, MemoryDB è ora generalmente disponibile.

Big Data

Dov'è il launchpad del cloud ibrido di IBM? Sette modi per rendere reale la tecnologia in tempo reale per la tua organizzazione Machine learning all'edge: TinyML sta diventando grande Quali sono le prospettive di Cloudera? McDonald's vuole “democratizzare” l'apprendimento automatico per tutti gli utenti nelle sue operazioni

Argomenti correlati:

Amazon Digital Transformation Robotics Internet of Things Innovation Software aziendale Tony Baer (dbInsight)

Di Tony Baer (dbInsight) per Big on Data | 19 agosto 2021 — 17:32 GMT (18:32 BST) | Argomento: Analisi dei Big Data