7 points par xguru 2025-06-25 | 2 commentaires | Partager sur WhatsApp
  • Base de données clé-valeur haute performance développée en Go, avec prise en charge d'une interface C, qui intègre des principes modernes de conception de bases de données comme les arbres LSM, le MVCC et une architecture lock-free
  • Garantit une cohérence immédiate et une durabilité basées sur le WAL (Write Ahead Logging), et offre de hautes performances en lecture/écriture grâce au flush/à la compaction en arrière-plan et au traitement parallèle lock-free
  • Vise un stockage de données léger et rapide avec une architecture embarquée sur nœud unique, sans réseau ni distribution

Principales caractéristiques de Wildcat

  • Basé sur un arbre LSM, optimisé pour les charges de travail intensives en écriture
  • MVCC (contrôle de concurrence multiversion) et structures de données lock-free, avec traitement sans verrou sur les chemins critiques
  • Journalisation WAL : enregistrement de l'état complet des transactions et prise en charge de la récupération
  • Skip list sensible aux versions pour accélérer le MVCC en mémoire
  • Écritures thread-safe/lock-free et gestion atomique du cache/de la mémoire
  • SSTable avec structure BTree immuable, prise en charge de la séparation clé-valeur et de l'optimisation par filtre de Bloom
  • Garanties ACID pour les transactions et choix du niveau de durabilité (Full/Partial/None)
  • Crash recovery pour restaurer à la fois les transactions validées et incomplètes
  • Lots/itérateurs : prise en charge des parcours par plage, par préfixe et bidirectionnels
  • Conception moderne avec Bloom Filter, séparation clé-valeur (.klog, .vlog), compaction tenant compte des tombstones/versions, etc.
  • Statistiques/journalisation/monitoring : fournit diverses interfaces de diagnostic et de statistiques comme Stats() et LogChannel
  • Build en bibliothèque C et API : compilation en bibliothèque partagée Go, utilisable directement depuis différents langages
  • Prise en charge de Go 1.24+ et de Linux/macOS/Windows (64 bits)

Pourquoi est-ce important ? (ce qui le différencie des autres KV embarqués)

  • Structure LSM+MVCC similaire à RocksDB ou Badger, mais avec une conception native Go lock-free et multithread, optimisée pour un usage en environnement Go
  • Spécialisé pour les bases embarquées : implémente cohérence immédiate, durabilité et hautes performances sans surcoût de réseau/réplication
  • La récupération des transactions et la conservation des états inachevés renforcent la fiabilité et la transparence
  • Nombreux paramètres de compaction/buffer/cache permettant un réglage fin selon la charge de travail

2 commentaires

 
kuber 2025-06-25

Une langue qui produit un nombre suspectement élevé de bases de données

 
sjc02183 2025-06-25

Une langue qui produit, de façon presque suspecte, énormément de bases de données.