- Eine in Go entwickelte Hochleistungs-Key-Value-DB mit Unterstützung für eine C-Schnittstelle, die moderne Prinzipien des Datenbankdesigns wie LSM-Tree, MVCC und lock-free Strukturen umsetzt
- Garantiert auf Basis von WAL (Write Ahead Logging) sofortige Konsistenz und Dauerhaftigkeit und bietet durch Hintergrund-Flush/Kompaktierung sowie lock-free Parallelverarbeitung hohe Schreib-/Leseleistung
- Als eingebettete Single-Node-Architektur für leichtgewichtige und schnelle Datenspeicherung ohne Netzwerk oder Verteilung ausgelegt
Die wichtigsten Merkmale von Wildcat
- Basierend auf einem LSM-Tree, optimiert für schreibintensive Workloads
- MVCC (Multiversion Concurrency Control) und lock-free Datenstrukturen für sperrfreie Verarbeitung auf den kritischen Pfaden
- WAL-Logging: Protokollierung des vollständigen Transaktionszustands und Unterstützung der Wiederherstellung
- Versionsbewusste Skip List zur Beschleunigung von In-Memory-MVCC
- Thread-sichere/lock-free Schreibvorgänge sowie atomisches Cache-/Speichermanagement
- SSTable als unveränderliche (immutable) BTree-Struktur mit Unterstützung für Key-Value-Trennung und Bloom-Filter-Optimierung
- ACID-Garantien für Transaktionen sowie wählbare Dauerhaftigkeitsstufen (Full/Partial/None)
- Crash Recovery zur Wiederherstellung sowohl von abgeschlossenen als auch unvollständigen Transaktionen
- Batch/Iteratoren: Unterstützung für Bereichs-, Präfix- und bidirektionale Iteration
- Moderne Architektur mit Bloom Filter, Key-Value-Trennung (
.klog, .vlog), tombstone-/versionsbewusster Kompaktierung usw.
- Statistik/Logging/Monitoring: verschiedene Diagnose- und Statistik-Schnittstellen wie Stats() und LogChannel
- Build als C-Bibliothek und API: als Go-Shared-Library buildbar und direkt aus verschiedenen Sprachen nutzbar
- Unterstützung für Go 1.24+ sowie Linux/macOS/Windows (64-Bit)
Warum ist das wichtig? (Abgrenzung zu anderen eingebetteten KVs)
- Ähnliche LSM+MVCC-Architektur wie RocksDB oder Badger, aber mit Go-nativem lock-free Multi-Thread-Design für optimierte Nutzbarkeit in Go-Umgebungen
- Auf eingebettete DBs spezialisiert: sofortige Konsistenz/Dauerhaftigkeit/hohe Performance ohne Overhead durch Netzwerk oder Replikation
- Höhere Zuverlässigkeit und Transparenz durch Transaktionswiederherstellung und Erhalt unvollständiger Zustände
- Vielfältige Parameter für Kompaktierung/Puffer/Cache ermöglichen workload-spezifisches Tuning
2 Kommentare
Eine Sprache, aus der verdächtig viele Datenbanken hervorgehen
Eine Sprache, in der verdächtig viele Datenbanken erscheinen.