⏳ Curating articles…
Tecnología 4 min read 1h ago

TurboKV: base de datos Rust veloz

  • TurboKV 0.6 es un almacén clave-valor asíncrono embebido en Rust con lotes atómicos, escaneos de rango y tres preajustes de durabilidad basados en WAL.
  • En benchmarks del 28 de agosto de 2026 sobre Apple M4, TurboKV superó a fjall 2.11.2 hasta 4,44× en escrituras por lotes y alcanzó 2,33 millones de operaciones por segundo.
  • La metodología aclara que los resultados de redb en clave individual reflejan una barrera de fsync por transacción en macOS y no constituyen una comparación de durabilidad
TurboKV: base de datos Rust veloz

TurboKV, un almacén clave-valor embebido desarrollado en Rust, ha publicado su versión 0.6 con un conjunto de características orientadas al rendimiento extremo: lotes de escritura atómicos, escaneos de rango ordenados, durabilidad configurable, compresión y compactación en segundo plano. Los resultados de sus pruebas de rendimiento, ejecutadas el 28 de agosto de 2026 sobre un procesador Apple M4 con macOS 15.3.2 y rustc 1.88.0, muestran una ventaja de hasta 4,4 veces frente a fjall 2.11.2 en escrituras por lotes.

Arquitectura y modos de durabilidad

La biblioteca expone tres preajustes de durabilidad que determinan cuándo se considera confirmada una escritura. DbOptions::fast() opera sin registro de escritura anticipada (WAL) y es adecuado para cachés o datos reproducibles. DbOptions::durable(), el modo recomendado por defecto, añade las mutaciones al WAL sin sincronización por escritura, lo que garantiza la recuperación ante caídas del proceso. DbOptions::paranoid() espera un sync_all completo antes de confirmar cada grupo de mutaciones, ofreciendo la mayor garantía posible sujeta a las capacidades del sistema de archivos y el dispositivo. Todos los preajustes arrancan con una tabla de memoria de 64 MiB, una caché de bloques de 64 MiB y compresión LZ4; los campos públicos pueden ajustarse antes de abrir la base de datos. El filtro de Bloom persistente utiliza AES por hardware, por lo que la compilación requiere activar los indicadores correspondientes según la arquitectura objetivo.

Operaciones principales

La API asíncrona, construida sobre Tokio, cubre inserciones, lecturas puntuales, eliminaciones, lotes atómicos mediante WriteBatch e iteradores de rango y prefijo. Las lecturas de rango capturan una vista coherente en el tiempo; crear un iterador puede congelar la tabla de memoria activa, por lo que el uso frecuente de escaneos pequeños puede incrementar el trabajo de vaciado posterior. Las claves y los valores son secuencias de bytes arbitrarias; la codificación es responsabilidad del llamador. Una instancia abierta de Db posee en exclusiva su directorio de datos, y el cierre limpio debe realizarse explícitamente mediante close() o close_with_status(). Esta creciente tendencia a construir herramientas de infraestructura en Rust queda también reflejada en otros proyectos recientes, como BriskDB, que fragmenta SQLite con soporte PostgreSQL, o en el análisis más amplio de cómo los LLMs están impulsando el auge de Rust y Zig en el software de alto rendimiento.

Advertisement
Ad Unit · 728×90 / Responsive

Resultados del benchmark

Las pruebas compararon TurboKV 0.6.0, fjall 2.11.2 y redb 2.6.3 en modo Durable, con 200.000 claves deterministas de 20 bytes y valores de 400 bytes —84 MB de entrada lógica, por encima del umbral de la tabla de memoria de 64 MiB—, compresión y caché de bloques desactivadas y caché de páginas del sistema operativo sin limpiar. La metodología aclara que redb 2.6.3 emite un F_BARRIERFSYNC de macOS por transacción en su modo Durability::Eventual, mientras que TurboKV y fjall se detienen en el límite recuperable de la caché del sistema operativo, por lo que los tiempos de redb en operaciones de clave individual representan contexto arquitectónico y no una comparación de durabilidad equivalente.

Carga de trabajoTurboKV (ops/s)fjall (ops/s)redb (ops/s)TurboKV / fjall
Relleno secuencial (1 clave/txn)1.407.678485.2521.3972,90×
Relleno aleatorio (1 clave/txn)834.137456.9241.5491,83×
Sobreescritura (1 clave/txn)853.083446.7331.5161,91×
Lote secuencial (100 claves/txn)2.272.259511.60080.1974,44×
Lote secuencial (1.000 claves/txn)2.333.582572.671134.6364,08×

La ventaja de TurboKV se acentúa en escrituras por lotes, donde alcanza los 2,33 millones de operaciones confirmadas por segundo, frente a los 572.671 de fjall. El hecho de que las escrituras individuales también dupliquen el rendimiento del competidor más próximo sugiere que la arquitectura de WAL y tabla de memoria de TurboKV está optimizada para minimizar la amplificación de escritura incluso fuera del modo de lotes, aunque las pruebas se han ejecutado en un único entorno —Apple M4 con APFS— y los resultados en otras plataformas pueden diferir. La posibilidad de que el WAL presente vulnerabilidades no detectadas durante años, como ha ocurrido en otras bibliotecas de almacenamiento, recuerda que el rendimiento no puede evaluarse de forma aislada respecto a la solidez de la recuperación.

Temas

Bases de datos embebidasProgramación en Rust

Organizaciones

TurboKV
Advertisement
Ad Unit · 300×250 / Responsive

More in Tecnología

Read in another language

← Home