Un moteur de stockage intégré TidesDB 1.0, prenant en charge les transactions ACID, est disponible.

La premiĂšre version stable du projet TidesDB a Ă©tĂ© publiĂ©e, dĂ©veloppant une bibliothĂšque pour le stockage de donnĂ©es au format clĂ©/valeur. Le projet peut ĂȘtre utilisĂ© comme un moteur autonome ou intĂ©grĂ© dans des applications. Parmi les fonctionnalitĂ©s clĂ©s, on note le support des transactions ACID et l'optimisation pour un stockage efficace des donnĂ©es sur des disques flash et en mĂ©moire vive. Le code est Ă©crit en C et est distribuĂ© sous la licence MPL 2.0. Des wrappers ont Ă©tĂ© prĂ©parĂ©s pour les langages C++, Go, Java, Python, Rust, Lua et JavaScript.

Pour le stockage des données, une structure LSM-tree (arbre log-structured avec fusion) est utilisée, garantissant une haute performance non seulement lors de la lecture, mais aussi lors de l'exécution d'opérations d'écriture et de modification des données. Les opérations de lecture ne bloquent pas l'écriture et la lecture des données, tandis que les opérations d'écriture bloquent uniquement la famille de colonnes dans laquelle l'écriture est effectuée. Pour un accélération supplémentaire des lectures, des index et un cache basé sur des filtres de Bloom sont supportés (permettant de vérifier l'appartenance à un ensemble, admettant une fausse déclaration d'absence d'un élément, mais excluant le passage d'un élément existant).

Un support complet des transactions ACID est disponible, permettant d'apporter des modifications atomiques couvrant des familles de colonnes et, si nĂ©cessaire, d'annuler atomiquement les opĂ©rations. Les donnĂ©es peuvent ĂȘtre stockĂ©es sous forme compressĂ©e avec le choix de l'algorithme de compression liĂ© Ă  la famille de colonnes. Il est possible d'appliquer des verrous au niveau de familles de colonnes individuelles et de packer le stockage en mode parallĂšle sans bloquer l'exĂ©cution des opĂ©rations sur la base de donnĂ©es.

Fonctionnalités principales :

  • Support des familles de colonnes (Column Families) — ensembles de donnĂ©es isolĂ©s au format clĂ©/valeur. Pour chaque famille de colonnes, des memtables, SSTables et journaux WAL distincts sont utilisĂ©s.
  • Transactions ACID couvrant plusieurs opĂ©rations avec des familles de colonnes.
  • Optimisation pour l'accĂšs parallĂšle aux donnĂ©es.
  • Support des itĂ©rateurs bidirectionnels permettant de parcourir des paires clĂ©/valeur en avant ou en arriĂšre par rapport Ă  une position donnĂ©e dans le stock, en utilisant une mĂ©thode de tri prĂ©cisĂ©e au dĂ©part.
  • Support de l'ajout de ses propres fonctions de comparaison de clĂ©s. PrĂ©sence de fonctions de comparaison intĂ©grĂ©es comme memcmp, string et numeric.
  • Journalisation des opĂ©rations (WAL, Write-Ahead Log) et restauration automatique du memtable (stockage en mĂ©moire) Ă  partir de ce journal lors du dĂ©marrage.
  • Utilisation de filtres Bloom pour minimiser les accĂšs au stockage grĂące Ă  la vĂ©rification de la prĂ©sence de clĂ©s avant la lecture depuis SSTable (stockage permanent).
  • Support des algorithmes Snappy, LZ4 et ZSTD pour la compression des enregistrements dans le stockage SSTable et le journal WAL.
  • PossibilitĂ© de dĂ©finir le temps de vie des enregistrements (TTL) et d'exclure automatiquement les enregistrements expirĂ©s.
  • Trois modes de synchronisation des donnĂ©es en RAM avec le stockage permanent : NONE (le plus rapide), BACKGROUND (Ă©quilibrĂ©), FULL (le plus fiable).
  • PossibilitĂ© de configurer la taille du memtable, les mĂ©thodes de compression, les filtres Bloom, le mode de synchronisation et les paramĂštres de packaging pour chaque famille de colonnes.
  • API C simple, retournant 0 en cas de rĂ©ussite de l'opĂ©ration et -1 en cas d'erreur.
  • Utilisation de SBHA (Sorted Binary Hash Array) pour une recherche rapide des donnĂ©es dans SSTable, permettant de dĂ©terminer les offsets des blocs de clĂ©s sans scanner l'intĂ©gralitĂ©.
  • Format binaire portable compact pour la reprĂ©sentation de la base de donnĂ©es, supportant le versionnement.
  • MĂ©canismes intĂ©grĂ©s de contrĂŽle d'intĂ©gritĂ©, de dĂ©tection des dommages de donnĂ©es et de rĂ©cupĂ©ration.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster