⏳ Curating articles…
Technologie 3 min read 1h ago

TurboKV : base Rust clé-valeur rapide

  • TurboKV 0.6, base clé-valeur asynchrone en Rust, atteint 2,33 millions d'opérations par seconde en insertion groupée (1 000 clés par transaction) sur Apple M4, selon des
  • Face à fjall 2.11.2 en mode durable, TurboKV affiche un facteur de performance compris entre 1,8× et 4,4× selon le scénario ; la comparaison avec redb est explicitement qualifiée
  • L'API propose trois préréglages de durabilité (fast, durable, paranoid), des écritures atomiques par lot, des balayages par préfixe et une compression configurable (LZ4, Snappy,
TurboKV : base Rust clé-valeur rapide

TurboKV 0.6 se présente comme une base de données clé-valeur asynchrone embarquée, entièrement écrite en Rust, et dotée de fonctionnalités avancées : insertions atomiques par lot, balayages ordonnés par préfixe, niveaux de durabilité configurables, compression multi-algorithme et compaction en arrière-plan. Des benchmarks réalisés le 28 août 2026 sur un Apple M4 — 32 Gio de RAM, macOS 15.3.2 et rustc 1.88.0 — documentent ses performances face à deux concurrents directs, fjall 2.11.2 et redb 2.6.3.

Des chiffres qui interpellent, assortis de réserves méthodologiques

Dans le scénario d'écriture séquentielle en mode durable, TurboKV affiche 1 407 678 opérations acquittées par seconde, contre 485 252 pour fjall — soit un rapport de 2,9 en faveur de TurboKV. L'écart se creuse davantage avec les insertions groupées : à raison de 1 000 clés par transaction, TurboKV culmine à 2 333 582 ops/s contre 572 671 pour fjall, un facteur 4,07. Ces mesures portent sur 200 000 clés déterministes de 20 octets pour des valeurs de 400 octets, compression et cache de blocs désactivés, mémoire de pages non purgée.

Les résultats de redb appellent une lecture prudente : sur macOS, sa durabilité s'appuie sur F_BARRIERFSYNC par transaction, garantie plus stricte que la frontière " récupération après crash de processus " retenue par TurboKV et fjall en mode durable. La source précise explicitement que les chiffres de redb en insertion unitaire constituent " un contexte architectural plutôt qu'une revendication de durabilité comparable ". Les performances inter-moteurs en mode stabilisé ne sont pas directement comparées.

Advertisement
Ad Unit · 728×90 / Responsive

Trois préréglages de durabilité, un filtre de Bloom matériel

L'API expose trois niveaux de durabilité : DbOptions::fast(), qui renonce au journal d'écriture anticipée (WAL) pour un usage de type cache ; DbOptions::durable(), mode par défaut garantissant la récupération après un plantage du processus ; et DbOptions::paranoid(), qui impose une synchronisation complète avant tout acquittement. Tous les préréglages démarrent avec une memtable de 64 Mio et un cache de blocs de 64 Mio. La compression peut être choisie parmi LZ4, Snappy, Zstd ou désactivée ; les tables déjà écrites conservent leur format d'origine.

Le filtre de Bloom persistant repose sur les instructions AES matérielles : les cibles x86/x86_64 exigent RUSTFLAGS="-C target-feature=+aes,+sse2", les cibles ARM/AArch64 nécessitent +aes,+neon. L'option -C target-cpu=native reste utilisable lorsque le binaire tourne sur la même génération de processeur.

API et gestion de la cohérence

Les écritures unitaires et groupées opèrent sur des séquences d'octets arbitraires ; les API de mutation copient leurs entrées avant de retourner. Un WriteBatch publie l'ensemble de ses opérations de manière atomique — les lecteurs n'observent jamais un état intermédiaire. Les balayages capturent un instantané cohérent du moment, mais peuvent geler une memtable active non vide, augmentant le travail de vidage ultérieur si les scans sont fréquents et de faible portée. L'itérateur en flux (RangeIter) signale les erreurs de corruption au fil du parcours, via des items de type Result.

Dans l'écosystème des bases embarquées en Rust, TurboKV rejoint des projets comme BriskDB, qui propose des écritures parallèles sur SQLite distribué, illustrant la vitalité de ce segment où la performance brute et la sûreté mémoire convergent. L'enjeu, pour TurboKV, sera de confirmer ces résultats dans des conditions de charge concurrente et sur des systèmes de fichiers autres qu'APFS, paramètres non couverts par les benchmarks publiés.

Sujets

Bases de données embarquéesProgrammation Rust

Organisations

TurboKV
Advertisement
Ad Unit · 300×250 / Responsive

More in Technologie

Read in another language

← Home