- Una DB clave-valor de alto rendimiento desarrollada en Go, con soporte para interfaz C, que incorpora principios modernos de diseño de bases de datos como árbol LSM, MVCC y estructura lock-free
- Garantiza consistencia inmediata y durabilidad basada en WAL (Write Ahead Logging), y ofrece alto rendimiento de escritura/lectura mediante flush/compaction en segundo plano y procesamiento paralelo lock-free
- Apunta a un almacenamiento de datos ligero y rápido con una arquitectura embebida de nodo único, sin red ni distribución
Características principales de Wildcat
- Basado en árbol LSM, optimizado para cargas de trabajo intensivas en escritura
- MVCC (control de concurrencia multiversión) y estructuras de datos lock-free para procesamiento sin bloqueos en las rutas principales
- Registro WAL: guarda el estado completo de las transacciones y permite recuperación
- Skip list consciente de versiones para acelerar MVCC en memoria
- Escrituras thread-safe/lock-free y gestión atómica de caché/memoria
- SSTable con estructura BTree inmutable (
immutable), soporte para separación clave-valor y optimización con Bloom Filter
- Garantía ACID en transacciones y posibilidad de elegir nivel de durabilidad (Full/Partial/None)
- Crash recovery para recuperar tanto transacciones confirmadas como incompletas
- Batch/iterators: soporte para rango, prefijo e iteración bidireccional
- Diseño moderno con Bloom Filter, separación key-value (
.klog, .vlog) y compaction consciente de tombstones/versiones
- Estadísticas/logging/monitorización: ofrece varias interfaces de diagnóstico y estadísticas como Stats() y LogChannel
- Build como librería C y API: se compila como librería compartida de Go y puede usarse directamente desde varios lenguajes
- Soporta Go 1.24+ y Linux/macOS/Windows (64 bits)
¿Por qué es importante? (diferencias frente a otros KV embebidos)
- Tiene una estructura LSM+MVCC similar a RocksDB y Badger, pero con diseño nativo en Go, lock-free y multihilo, optimizado para usabilidad en entornos Go
- Especializado en DB embebidas: implementa consistencia inmediata/durabilidad/alto rendimiento sin la sobrecarga de red o replicación
- Alta confiabilidad y transparencia gracias a la recuperación de transacciones y la preservación de estados incompletos
- Permite ajuste fino según la carga de trabajo mediante diversos parámetros de compaction/buffer/caché
2 comentarios
Es un lenguaje del que sospechosamente salen muchísimas bases de datos.
Es sospechoso la enorme cantidad de bases de datos que salen de ese lenguaje.