RocksDB: un database NoSQL per alte prestazioni e scalabilità

Pubblicato: 2022-11-19

RocksDB è un popolare database NoSQL utilizzato da molte aziende grazie alle sue elevate prestazioni e scalabilità. È un progetto open source avviato da Facebook ed è ora gestito da una comunità di sviluppatori. RocksDB utilizza una struttura dati LSM (Log-Structured Merge-Tree) che lo rende efficiente per i carichi di lavoro pesanti in scrittura.

Dopo aver utilizzato couchbase per oltre quattro anni, siamo passati a MongoDB e siamo felicissimi di come è andata a finire. L'esperienza con Couchbase è stata orrenda, nonostante abbiamo ricevuto supporto aziendale e un elenco sulla piattaforma. Per farlo funzionare, avrai bisogno di almeno sei server in totale. Per la produzione, ci sono solo sei server da costruire. La cache in memoria è gestita da un'istanza Memcached più piccola sull'istanza Couchbase. Questo programma consuma 8 GB di RAM, che possono servire 5000 documenti. La verità non è fuori luogo. C'erano meno di 5000 documenti sulla nostra istanza Couchbase e meno di 20 indici e il consumo di memoria per l'istanza era sempre superiore a 8 GB.

RocksDB, un database incorporato, si comporta egregiamente in termini di dati chiave-valore. Questo è un fork di LevelDB di Google che è ottimizzato per la gestione di molti core della CPU ed è adatto per carichi di lavoro con elevati requisiti di I/O. Può essere eseguito su unità a stato solido (SSD) o altri dispositivi di archiviazione ad alte prestazioni.

Quando hanno creato la loro versione di Cassandra, hanno incluso il motore di archiviazione RocksDB , noto anche come Rocksandra. Abbiamo cambiato radicalmente il modo in cui pensavamo allo storage di Cassandra, mantenendo intatte anche la rete e il coordinamento dei nodi.

Rocksdb è un database in memoria?

Immagine di: github

La sua funzione principale è fornire dati ad alte prestazioni perché è un database incorporato basato su dati valore-chiave. RocksDB, che deriva da LevelDB di Google, è in grado di funzionare meglio di molti core della CPU e di archiviare i dati più velocemente degli SSD per le applicazioni legate all'I/O.

Uno o più componenti in RocksDB possono portare a un utilizzo eccessivo della memoria. Quando chiami GetUsage() su un oggetto block cache in MongoRocks, puoi determinare la dimensione della block cache. Quando la dimensione della cache del blocco viene ridotta, verranno memorizzati nella cache più dati, poiché l'IO non aumenterà. Sebbene l'utilizzo della CPU potrebbe non aumentare a causa della necessità di RocksDB di decomprimere le pagine che legge dalla cache delle pagine, potrebbe aumentare. I blocchi indice e i blocchi filtro bloom sono comunemente usati per spiegare la differenza. In MongoRocks, puoi impostare una cache di blocchi allocando il budget di memoria per memtables. Quando si tratta di calcolare l'utilizzo della memoria per i blocchi bloccati, è semplice. La dimensione L1 può essere controllata aggiungendo o sottraendo byte per il livello base. Quando si hanno 100.000 transazioni di lettura in corso contemporaneamente, la memoria potrebbe rallentare.

Incorporando RocksDB, un'applicazione incorporata può archiviare i dati del valore-chiave in modo altamente efficiente e rapido. Rispetto alla RAM dinamica, SecondaryCache ha un ordine di grandezza maggiore e quindi richiede meno letture dall'archiviazione remota, con conseguente minore latenza di lettura e minore consumo di larghezza di banda della rete. Al momento non ci sono piani per utilizzare RocksDB come modello di database predefinito, ma siamo ottimisti sulla sua diffusa adozione in futuro.

Perché Rocksdb è il miglior negozio di valore-chiave

RocksDB è un'opzione di archiviazione veloce e affidabile per l'archiviazione delle chiavi in ​​un archivio chiave-valore che può anche fungere da base per un database basato su server. Viene fornito con l'albero LSM per l'ottimizzazione delle prestazioni, rendendolo un'opzione praticabile per le applicazioni che richiedono grandi quantità di archiviazione dei dati.

In che modo Rocksdb è diverso da Redis?

Immagine di: githubusercontent

Il caso d'uso principale per Redis è la memoria, sebbene possa anche eseguire il backup dei dati su un archivio permanente ed eseguire il calcolo in memoria, se necessario. Nella maggior parte dei casi, RocksDB viene utilizzato per rendere persistenti i dati e, in molti casi, i dati vengono archiviati su un supporto persistente.

Quali sono i vantaggi di Redis rispetto a RocksDB? L'archivio dati Redis è un archivio virtuale in memoria simile a Memcached. Un archivio chiave/valore incorporato di RocksDB consente di leggere alberi di unione multi-threading e strutturati in log. Poiché Redis è così efficiente e scalabile (ad eccezione della CPU), non ci sono limiti al suo ridimensionamento. Sebbene Redis sembri essere più veloce, il punto di OP è che, come afferma, i tuoi set di dati non devono essere limitati dalla quantità di memoria disponibile nella tua applicazione. In alcuni casi, puoi utilizzare LedisDB e la stessa libreria client Redis per sostituire Redis, che è quasi una goccia nel secchio.

Rocksdb è distribuito?

RocksDB è un database distribuito che consente il ridimensionamento orizzontale dello storage e delle prestazioni. È progettato per fornire disponibilità e prestazioni elevate con un semplice modello di distribuzione.

L'archivio chiave-valore ChakrDB (KVS) è basato su RocksDB ed è adatto per petabyte a dozzine di scale di terabyte. Un'architettura basata su nodi (vNodes) viene utilizzata per partizionare ChakrDB. I vNode supportano entrambi i volumi basati su file system ext4 creati da Kubernetes e le configurazioni del file system interno di Nutanix BlockStore. Il RocksDB, un KVS basato su alberi log-structured merge (LSM), è il software dietro ChakrDB. La struttura dei dati di LSM funziona bene con dispositivi NVMe e SSD. ChakrDB può essere eseguito su una varietà di dischi, macchine virtuali e in Azure usando Kubernetes. Poiché è containerizzato, il programma containerizzato ChakrDB può essere eseguito su qualsiasi ambiente K8s in un pod.

La piattaforma può essere ospitata sul servizio di storage distribuito di Nutanix (Azure o AWS) o su qualsiasi provider di servizi di cloud storage. Il Chakr Cluster Manager è responsabile di tutto il traffico del piano di controllo nel cluster. Lo scopo di chharDB è fornire prestazioni e scalabilità. Con vNode, crea un'architettura di sharding che distribuisce l'I/O su più istanze RocksDB per migliorare il parallelismo e il throughput di scrittura. Nutanix Objects è un esempio di servizio stateful che può essere eseguito in modalità embedded o remota con chacherDB. Fornisce a MetadataService la capacità di mantenere un livello di memorizzazione nella cache garantendo al contempo la coerenza lettura dopo lettura. Possiamo vedere quanto throughput abbiamo ottenuto con il ridimensionamento lineare delle istanze di ChakrDB nel grafico sottostante.

In futuro forniremo risultati più dettagliati per le operazioni di lettura, scrittura e scansione. Stiamo esaminando tecniche di backup asincrone o calcoli di checksum in diverse fasi di sviluppo. Le versioni di RocksDB ora dispongono di migliori tecniche di checksum in grado di rilevare la corruzione del software prima che diventi persistente. Tra le applicazioni in cui ChakrDB è molto richiesto ci sono carichi di lavoro come l'analisi dei big data, l'apprendimento automatico e l'intelligenza artificiale. Nutanix sta attualmente prototipando ChakrDB in una varietà di progetti e prodotti in corso che hanno dato risultati promettenti. Vi terremo aggiornati su ciò che stiamo facendo nei blog futuri.

Rocksdb: un veloce motore di archiviazione per database

A differenza di Linux e Apache, RocksDB non è un sistema distribuito che dispone di un piano di ripristino di emergenza. A causa della scarsa disponibilità e della mancanza di un meccanismo efficace di replica dei dati, non dispone di molta capacità. Nonostante ciò, alcuni dei database più famosi al mondo continuano a utilizzarlo. LevelDB, che dispone già di un motore di database veloce, rende RocksDB un motore di archiviazione ideale . La capacità di scalare di LevelDB per gestire grandi quantità di dati, utilizzando anche lo storage veloce, è stata una risorsa importante. Inoltre, RocksDB ha la capacità di essere innovativo. I dati possono essere archiviati in vari modi con RocksDB, inclusi IO-bound, in-memory o write-once. Di conseguenza, è un'ottima scelta per i database con elevati requisiti di archiviazione che non vogliono sacrificare le prestazioni o la disponibilità dei dati.


Alternativa Rocksdb

Ci sono molte diverse alternative a rocksdb disponibili a seconda delle esigenze specifiche che hai. Alcune alternative popolari includono hbase, leveldb e berkeley db.

A partire dal 2022, SourceForge ha classificato RocksDB come la migliore alternativa a Linux. Con ApsaraDB per Redis, possiamo leggere i dati dalle cache in memoria ad alta velocità, garantendo la persistenza dei dati e utilizzando la memoria e l'archiviazione del disco rigido nel processo. Dal 2009, Tair è il fornitore ufficiale di memorizzazione nella cache dei dati per Alibaba Group e le sue prestazioni in scenari di memorizzazione nella cache dei dati come il Double 11 Shopping Festival sono state riconosciute. La risposta a bassa latenza di Tanzu GemFire ​​alle richieste di accesso ai dati consente alle applicazioni di restituire sempre dati aggiornati. Google Cloud Bigtable è un servizio di database NoSQL completamente gestito creato per i carichi di lavoro che richiedono dati analitici e operativi in ​​tempo reale. Amazon DynamoDB è in grado di gestire oltre 10 trilioni di richieste al giorno e supportare picchi di traffico di oltre 20 milioni di richieste al secondo. BergDB è un database NoSQL senza schema, integrato e orientato ai documenti, open source e gratuito.

È disponibile una varietà di funzionalità come la semplice archiviazione di valori-chiave, transazioni ACID, query cronologiche, controllo della concorrenza, archiviazione di sola aggiunta rapida, replica, identificatore di oggetto trasparente e altro ancora. OrigoDB ti consente di creare sistemi mission-critical ad alte prestazioni a una frazione del costo. Di conseguenza, fornisce una gamma completa di funzionalità di gestione dei dati in memoria, inclusa la capacità di gestire più database contemporaneamente. Un singolo motore OrigoDB può elaborare milioni di transazioni di lettura al secondo. Il software Ignite può essere utilizzato per sviluppare applicazioni in Java, C#, C++, Python e altri linguaggi di programmazione. Puoi unire, raggruppare, aggregare e ordinare in modo rapido e semplice i dati sui tuoi server in memoria e su disco. Il tuo database Ignite può ora essere trasformato in un supercomputer distribuito.

Oracle Autonomous Database semplifica la gestione dei database relazionali. Essendo una delle distribuzioni più flessibili, Redis Enterprise è disponibile in un modello ibrido. InfinityDB Embedded, un database Java NoSQL, contiene gerarchie gerarchiche per l'archiviazione di record di valori chiave. Le prestazioni, la flessibilità e la natura esente da manutenzione del sistema lo rendono ideale per un utilizzo ad alte prestazioni, multi-core, flessibile ed esente da manutenzione. LeanXcale è un database veloce e scalabile che combina SQL e NoSQL in modo che entrambi funzionino bene insieme. Il motore di archiviazione KiVi è progettato per archiviare i dati nel formato relazionale. ModJS ti consente di scrivere funzioni javascript che puoi chiamare direttamente da KeyBD.

Un popolare datastore in memoria può essere facilmente configurato, eseguito e ridimensionato con Amazon ElastiCache. Caching, archivi di sessioni, giochi, servizi psyg, analisi in tempo reale e caching sono solo alcuni dei casi d'uso in tempo reale disponibili con Amazon ElastiCache. Con la sua libreria di database e server NoSQL ad alte prestazioni, Go è la scelta migliore per lo sviluppo di Ledisdb. OrientDB è il database grafico più veloce sul mercato. Migliora il tuo vantaggio competitivo e accelera l'innovazione con nuovi flussi di entrate. Il database Macrometa NoSQL è serverless e si basa su un motore di streaming, che gli consente di elaborare e calcolare i dati ad alta velocità. Memorystore automatizza complesse attività Redis e Memcached come alta disponibilità, failover, applicazione di patch e monitoraggio.

I database ad alte prestazioni come upscaledb sfruttano il loro veloce storage chiave-valore e gli algoritmi per massimizzarne l'utilizzo. UpscaleDB è un benchmark open source in grado di scansionare oltre 50 milioni di record e recuperarne la maggior parte. La piattaforma Tablestore consente la crescita dei dati e l'estensione della concorrenza senza soluzione di continuità utilizzando il data sharding e la tecnologia di bilanciamento del carico del server. InsightEdge è il fornitore di analisi che consentono l'analisi in tempo reale per lo streaming di dati strutturati storicamente. Utilizzando il metodo di fatturazione Pay-As-You-Go di questo servizio, puoi garantire che il tuo sistema di controllo del rischio rimanga in un funzionamento ottimale. I database ScyllaDB sono progettati per applicazioni a uso intensivo di dati con requisiti di prestazioni elevate e bassa latenza. ScyllaDB è utilizzato da oltre 400 aziende rivoluzionarie, come Disney, Expedia, FireEye, Discord, Zillow, Starbucks, Comcast e Samsung.

Quando hai bisogno di scalabilità e alta disponibilità, i database Apache Cassandra sono una buona scelta. Una griglia di dati Hazelcast basata sulla piattaforma di archiviazione e gestione dei dati open source Infinispan offre un solido set di funzionalità per l'archiviazione, la gestione e l'elaborazione dei dati. i dati multidimensionali vengono creati come parte di InterSystems IRIS utilizzando una serie di API che consentono operazioni simultanee su valori-chiave, relazionali, oggetti, documenti e altri dati persistenti transazionali. FairCom DB è una piattaforma di analisi in tempo reale che consente transazioni ad alto volume in modo prevedibile e l'elaborazione parallela di big data. È un motore di database avanzato che offre un continuum di controllo ed è il costo totale di proprietà (TCO) più basso tra tutti i motori di database. Cache è un sistema di gestione di database multi-modello (oggetto, relazionale, valore-chiave) e server applicativo creato da InterSystems. L'utilizzo di Ehcache come client aumenta le prestazioni, riduce i carichi di lavoro del database e semplifica la scalabilità utilizzando la cache basata su standard open source.

I data store nei database IBM Cloud sono piattaforme software gratuite e open source per lo sviluppo di applicazioni aziendali. Con un framework basato sulla piattaforma di microservizi, abilitano le applicazioni serverless. Voldemort non tenta di soddisfare relazioni arbitrarie o soddisfare le proprietà ACID in un database relazionale. Un cluster è definito come una griglia utilizzando la comunicazione multicast. XAP, una griglia di dati in memoria di GigaSpaces, è progettata per l'elaborazione estrema di flussi e transazioni per applicazioni mission-critical con prestazioni elevate, resilienza e latenza bassissima. FoundationDB può eseguire grandi quantità di dati pesanti su hardware di base a costi contenuti. Poiché il server di rete Kyoto Tycoon è leggero, è compatibile sia con il database valore-chiave Kyoto Cabinet sia con il server di rete Kyoto Tycoon.

Le versioni upstream più recenti sono state migliorate e sono pensate per essere utilizzate insieme e testate in condizioni di produzione reali. Correzioni di bug, nuove funzionalità minori e alcuni aggiornamenti del pacchetto di distribuzione Linux sono alcuni dei miglioramenti. Ora è possibile archiviare le applicazioni, i documenti e altri dati utilizzati di frequente in dispositivi più veloci. Può accedervi a velocità paragonabili a RAM o SSD. Puoi utilizzare Memcached per prelevare memoria da parti del tuo computer di cui hai bisogno di più memoria di quanta ne possano gestire. Gli standard aperti e un robusto motore SQL si combinano per creare un robusto framework NoSQL come nessun altro. Amadeus, American Express, Carrefour, Cisco, Comcast/Sky, Disney, eBay, LinkedIn, Marriott, Tesco, Tommy Hilfiger, United, Verizon e centinaia di altre aziende utilizzano la piattaforma.

Rocksdb è veloce?

Lo storage veloce e a bassa latenza, come le unità flash e i dischi ad alta velocità, sono ideali per RocksDB. Con RocksDB, puoi sfruttare appieno la memoria e le capacità di lettura/scrittura di flash e RAM.

Badger è una scelta più rapida per l'archiviazione dei dati in un database grafico

Per archiviare i dati in un database grafico, la libreria Badger è un'alternativa più veloce a RocksDB. Poiché l'albero LSM contiene così tante chiavi, è meno probabile che un numero maggiore di chiavi provochi la compattazione. Inoltre, RocksDB memorizza i dati per le letture e le scritture in memoria, bufferizzando le letture in entrata.

Rocksdb distribuito

RocksDB è un database incorporato ad alte prestazioni per dati chiave-valore. È scritto in C++ e fornisce un'API semplice ma potente. RocksDB memorizza i suoi dati in un formato strutturato a log, consentendogli di essere efficiente sia in termini di spazio su disco che di prestazioni di lettura. RocksDB è un'ottima scelta per le applicazioni che richiedono bassa latenza e throughput elevato.

Un archivio dati non strutturato chiamato chkrDB è progettato per sfruttare i costrutti basati su cloud creando un archivio di valore-chiave distribuito (KVS). Una moderna applicazione dati deve rispettare determinate regole per poter essere eseguita in qualsiasi cloud pubblico o privato. Le applicazioni pronte per il cloud in genere richiedono standard API open source, endpoint di archiviazione iSCSI standard e carichi di lavoro container come Docker. L'archiviazione cloud e Kubernetes hanno già fornito archiviazione scalabile, disponibilità e coerenza in termini di calcolo e archiviazione. Il tradizionale KVS distribuito replica i dati, esegue carichi di lavoro attivi, migra i dati e garantisce HA e resilienza. Quando utilizziamo un'infrastruttura cloud ad alta disponibilità, possiamo facilmente rimuovere parte della complessità associata a replica, HA e scalabilità alla piattaforma cloud sottostante. La maggior parte dei DB open source non soddisfa tutti i requisiti sopra elencati, inclusi bassa latenza e throughput elevato.

Un sistema di archiviazione ad alte prestazioni necessita di un KVS distribuito molto leggero in grado di scalare al maggior numero di file contemporaneamente. Abbiamo preso la decisione di utilizzare la versione biforcuta di Cassandra, che avevamo utilizzato negli otto anni precedenti. L'Autonomous Extent Store (AES) di Nutanix, un database di metadati locale del disco AOS, ha mostrato risultati prestazionali promettenti durante il periodo di test. Nonostante RocksDB sia in grado di archiviare grandi quantità di dati, richiede una quantità di memoria relativamente ridotta. Poiché possiamo incorporare RocksDB in altri processi, abbiamo vantaggi significativi in ​​termini di latenza e throughput. Con il suo design distribuito e nativo del cloud, la natura altamente disponibile e le funzionalità ad alte prestazioni, ChahalDB è un eccellente KVS con RocksDB. Un backend RocksDB Env ti consente anche di connetterti a qualsiasi altro livello di archiviazione. Questa seconda parte della serie coprirà l'architettura del KVS distribuito da ChakrDB e rivedrà come il ragionamento e la teoria si sono trasformati in realtà.

Rocksdb Vs Sqlite

SQLite e RocksDB sono utilizzati principalmente nei database. Il motivo principale per cui gli sviluppatori scelgono RocksDB rispetto a SQLite è che è più intuitivo, mentre la leggerezza è considerata un fattore critico. RocksDB, un progetto open source, ha un numero di stelle GitHub di 14.1K e fork GitHub di 3.09K.

Quali sono le differenze tra RocksDB e SQLite? SQLite è probabilmente il peggiore dei peggiori candidati quando si tratta di relazioni server-client (database centrali), mentre RocksDB è una relazione server-client ( database centrale ). Firebase non è una novità in quanto è un'applicazione ospitata da un'azienda piuttosto che un servizio. Sebbene ci siano alcuni aspetti negativi, i vantaggi sono sostanziali. Di conseguenza, dovrai creare un server, un'app client e un database. Questo potrebbe essere Javascript con un'API REST basata su Express su Node.js o Javalin con un database ObjectDB integrato per l'archiviazione del database. I costi iniziali possono variare da molto bassi a zero. Anche se dovrai imparare l'API di Firebase, penso che Firebase sia la scelta migliore.

Rocksdb Golang

RocksDB è un database di valori-chiave sviluppato da Facebook. È scritto in C++ e ha binding per molti linguaggi di programmazione, incluso Go.
RocksDB è progettato per essere scalabile ed efficiente. Può essere utilizzato come database autonomo o come parte di un sistema più ampio. RocksDB è utilizzato da molte grandi aziende, tra cui Facebook, Google e Microsoft.

È un fork del pacchetto levigo, con gli identificatori che cambiano in rockdb e il nome del pacchetto che cambia in rocksdb. Utilizzare un dispositivo di lettura in blocco in blocco. Potrebbe essere necessario creare il proprio oggetto criterio di filtro se si utilizza un comparatore personalizzato nel codice. È fondamentale attivare una cache quando non è più richiesta dal programma per evitare perdite di memoria. È ora possibile accedere a un database aprendolo. Dopo l'eliminazione, i dati associati alla chiave vengono rimossi dal database. Si prega di prendere una copia delle informazioni prima di tornare.

CompactRange esegue la compattazione manuale sulla sua gamma di tasti quando si utilizza la modalità di compattazione manuale. GetApproximateSizes calcola la dimensione del file system in byte per ogni intervallo di chiavi utilizzato. PropertyValue restituisce il valore di una proprietà del database come risultato del suo metodo property(). Put scrive i dati associati a una chiave del database. Se viene passato un nil []byte come valore, viene restituita una slice di zero []byte. È un ambiente di chiamata al database utilizzato nelle chiamate di sistema. Quando il programma non richiede più Envs, è necessaria una chiamata Close per evitare perdite di memoria.

Restituirà un errore se si verifica l'errore LevelDB durante l'evento GetError. I ritorni saranno nulli per gli iteratori semplicemente non validi. Quando close dealloca l'iteratore dato, libera la struttura C sottostante. Quando il programma non utilizza più un Iterator, è fondamentale attivare Close per evitare perdite di memoria. Quando viene aperto un database, SetCache archivia l'oggetto cache nel database. Quando viene utilizzato setCompression, l'algoritmo di compressione specificato da SetCompression determina quali blocchi possono essere compressi. Quando viene utilizzato SetFilterPolicy, Open crea un nuovo database con i criteri di filtro specificati al suo interno.

SetInfoLog specifica un oggetto *Crocksdb_logger_t come logger interno del database. SetFillCache può essere utilizzato per determinare se le letture eseguite con questo ReadOptions riempiranno o meno la cache del server. Quando è stata creata l'istantanea, le letture delle cause fornite da SetSnapshot erano le stesse di quelle generate dall'istantanea. Questo metodo può essere utilizzato per garantire che ogni lettura sia coerente durante una grande quantità di dati. Un batch WriteBatch di put e delete deve essere memorizzato in un database prima di essere scritto atomicamente. WriteBatch viene scritto non appena viene passato al DB. Se il programma non richiede più l'oggetto WriteBatch, è consigliabile chiuderlo.

Tutti gli inserimenti e le eliminazioni accodati vengono ora cancellati. Quando Close dealloca WriteOptions, la struttura C sottostante può essere eseguita liberamente. SetSync determina se ogni scrittura delle opzioni di scrittura viene scaricata dalla cache del buffer del sistema operativo prima che la scrittura venga considerata completa se viene eseguita utilizzando lo script delle opzioni di scrittura.

Rocksdb: un archivio chiave-valore incorporabile per applicazioni rivolte all'utente

L'utilizzo di RocksDB è un modo semplice per le applicazioni di archiviare i propri dati in un database a bassa latenza e ad accesso rapido. È molto utile per le applicazioni rivolte all'utente che tengono traccia della cronologia dei visitatori del sito Web e dello stato del sito. Inoltre, RocksDB può essere utilizzato in applicazioni che richiedono l'accesso rapido a grandi set di dati.

Implementazione di Rocksdb

L'implementazione di RocksDB è molto efficiente. Utilizza un Log Structured Merge Tree (albero LSM) per memorizzare i dati. Ciò consente inserimenti ed eliminazioni rapidi. Inoltre, RocksDB comprime i dati per risparmiare spazio.

Analizzeremo come RocksDB viene utilizzato in Rockset in questo post del blog, nonché come è ottimizzato per ottenere le migliori prestazioni. Quando si tratta di Rockset, vogliamo che i nostri utenti siano in grado di interrogare i propri dati in decine di millisecondi con una latenza inferiore al secondo e di importare i dati continuamente. RocksDB è utilizzato in produzione su Facebook, LinkedIn, Uber e una serie di altre società. RocksDB memorizza i dati del valore-chiave sotto forma di chiavi incorporate. In 1 istanza RocksDB , i dati non vengono trasferiti ad altre macchine. È stato costruito per durare ed è stato progettato in collaborazione con RocksDB-Cloud. I guasti della macchina hanno impedito il ripristino di RocksDB.

Di conseguenza, il registro write-ahead di RocksDB non può essere utilizzato. Poiché RocksDB è scritto in memoria, tutte le nostre scritture hanno la stessa struttura. Un batch di scrittura con un array di singoli aggiornamenti raggruppati in un WriteBatch comporta un throughput di scrittura più elevato per RocksDB; e una singola chiave in un batch di scrittura viene ordinata in multipli. Prima di scrivere gli aggiornamenti su RocksDB, li raggruppamo in micro-batch di 100 KB e li ordiniamo. In RocksDB, le dimensioni target per ciascun livello possono essere assegnate dinamicamente in base alla dimensione dell'ultimo livello in quel punto. I dati dei livelli L0 e L1 sono molto limitati rispetto ad altri livelli in un albero LSM. È necessario accedere a tutti i file in L1 durante una compattazione da L0 a L1. La creazione di un numero elevato di iteratori è necessaria per le query che eseguono scansioni di intervalli o recuperano un numero elevato di campi. Gli iteratori non possono essere riutilizzati in una query nel freepool in cui si trovano.

Confronto tra database cloud di Datamation

Sono disponibili diversi database cloud, ciascuno con i propri vantaggi e svantaggi. Quando decidi quale database cloud utilizzare per la tua azienda, è importante confrontare e confrontare le diverse opzioni per trovare quella più adatta alle tue esigenze. Datamation ha creato una tabella di confronto del database cloud che può aiutarti a valutare le diverse opzioni e prendere una decisione informata.

Divano base Enterprise

Couchbase Enterprise Edition è l'edizione più completa e performante di Couchbase Server. Include tutte le funzionalità della Community Edition e aggiunge funzionalità aziendali come la replica geografica Active-Active e la replica tra datacenter (XDCR), oltre a sicurezza e monitoraggio migliorati. Couchbase Enterprise Edition è disponibile in due livelli di abbonamento: Standard ed Enterprise.

Couchbase Server è un database distribuito nativo del cloud che combina la forza dei database relazionali con la potenza di NoSQL. Questo servizio cloud è disponibile come servizio nei cloud pubblici, nei cloud privati ​​e nei cloud ibridi. la latenza viene misurata in millisecondi utilizzando l'architettura memory-first del sistema. Per le applicazioni mission-critical, la piattaforma Couchbase ridefinisce l'economia dei database. Utilizzando una varietà di metodi come valore-chiave, query e ricerca, puoi creare applicazioni accattivanti che vengono eseguite su più piattaforme. SQL, schema, transazioni e funzioni definite dall'utente sono solo alcuni dei costrutti familiari. Inoltre, Couchbase supporta i costrutti Schema dinamici che possono essere utilizzati per mappare bucket, ambiti, raccolte e documenti su RDBMS.

N1QL è un linguaggio dichiarativo che consente agli sviluppatori di applicazioni di interrogare, trasformare e manipolare i dati in modo espressivo, potente e completo. Quando si tratta di ridimensionare la tua azienda, il data center multilivello offre il meglio di entrambi i mondi: ti consente di soddisfare i tuoi carichi di lavoro più impegnativi in ​​un'unica piattaforma utilizzando il partizionamento dei carichi di lavoro di calcolo, archiviazione ed elaborazione. Puoi facilmente replicare i tuoi dati nel tuo data center per soddisfare le esigenze della tua azienda, che si tratti di alta disponibilità, ripristino di emergenza o replica globale flessibile. Sono disponibili una funzionalità di controllo integrata, nonché il controllo degli accessi basato sui ruoli e la comunicazione crittografata. I tuoi dati saranno al sicuro in rete e nel cloud.

Couchbase: un popolare database Nosql

Un database NoSQL come Couchbase è un'ottima opzione per una varietà di applicazioni Web, mobili e Internet of Things (IoT). Fornitore leader di soluzioni basate su cloud, Couchbase serve oltre 2.000 clienti da uffici in cinque paesi, tra cui Emirates Airlines, Tommy Hilfiger, SyncThink, LinkedIn e Marriott Hotels.