Disponibile il motore di archiviazione integrato TidesDB 1.0, che supporta transazioni ACID

È stata pubblicata la prima versione stabile del progetto TidesDB, che sviluppa una libreria per l'archiviazione dei dati in formato chiave/valore. Il progetto può essere utilizzato sia come motore autonomo che per l'integrazione nelle applicazioni. Tra le funzionalità principali troviamo il supporto per le transazioni ACID e l'ottimizzazione per un'efficiente memorizzazione dei dati su unità Flash e in memoria RAM. Il codice è scritto in C e distribuito con licenza MPL 2.0. Sono stati preparati i bind per i linguaggi C++, Go, Java, Python, Rust, Lua e JavaScript.

Per l'archiviazione dei dati è utilizzata una struttura LSM-tree (albero a log-structured con merging), che garantisce alte prestazioni non solo durante la lettura, ma anche durante l'esecuzione di operazioni di scrittura e modifica dei dati. Le operazioni di lettura non bloccano la scrittura e la lettura dei dati, mentre le operazioni di scrittura bloccano solo la famiglia di colonne in cui viene eseguita la scrittura. Per accelerare ulteriormente la lettura, sono supportati indici e caching basati su bloom filters (che consentono di verificare l'appartenenza a un insieme, ammettendo un falso positivo per un elemento mancante, ma escludendo il salto di un elemento esistente).

È disponibile un supporto completo per le transazioni ACID, che consente di apportare modifiche in modo atomico a insiemi di colonne e di annullare le operazioni in modo atomico, se necessario. I dati possono essere memorizzati in forma compressa con la scelta dell'algoritmo di compressione specifico per ogni famiglia di colonne. È possibile impostare blocchi a livello di singole famiglie di colonne e di impacchettamento dello storage in modalità parallela senza bloccare l'esecuzione delle operazioni sul database.

Funzionalità principali:

  • Supporto per le famiglie di colonne (Column Families) - insieme isolati di dati in formato chiave/valore. Ogni famiglia di colonne utilizza il proprio memtable, SSTable e WAL-log.
  • Transazioni ACID che coprono più operazioni con famiglie di colonne.
  • Ottimizzazione per l'accesso parallelo ai dati.
  • Supporto per iteratori bidirezionali, che consentono di scorrere le coppie chiave/valore avanti o indietro rispetto alla posizione selezionata nello storage, utilizzando il metodo di ordinamento originariamente specificato.
  • Supporto per l'aggiunta di funzioni personalizzate per il confronto delle chiavi. Inclusione di funzioni di confronto incorporate come memcmp, string e numeric.
  • Registrazione delle operazioni (WAL, Write-Ahead Log) e ripristino automatico del memtable (memoria volatile) da questo log all'avvio.
  • Utilizzo di filtri Bloom per ridurre al minimo le richieste al disco verificando la presenza della chiave prima della lettura da SSTable (memoria permanente).
  • Supporto per gli algoritmi Snappy, LZ4 e ZSTD per la compressione delle registrazioni in SSTable e nel WAL.
  • Possibilità di definire il tempo di vita delle registrazioni (TTL) e di escludere automaticamente quelle scadute.
  • Tre modalità di sincronizzazione dei dati in RAM con la memoria permanente: NONE (la più veloce), BACKGROUND (bilanciata), FULL (la più affidabile).
  • Possibilità di configurare le dimensioni del memtable, i metodi di compressione, i filtri Bloom, le modalità di sincronizzazione e i parametri di impacchettamento per ogni famiglia di colonne.
  • Semplice API C che restituisce 0 per un'operazione riuscita e -1 in caso di errore.
  • Utilizzo di SBHA (Sorted Binary Hash Array) per una rapida ricerca dei dati in SSTable, consentendo di determinare gli offset dei blocchi con le chiavi senza una scansione completa.
  • Formato binario compatto e portatile per la rappresentazione del database, con supporto per il versioning.
  • Meccanismi integrati di controllo dell'integrità, rilevamento dei dati corrotti e ripristino.

Fonte: opennet.ru

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