Skip to content
research

Votre base de données est un processeur secret

Des développeurs viennent de faire tourner le jeu de tir classique DOOM à l'intérieur d'une base de données, et non par-dessus. Cette prouesse audacieuse révèle la puissance de calcul cachée des moteurs de base de données modernes et marque un changement majeur dans ce qui est possible au niveau de la couche de données.

Aki Tanaka
Votre base de données est un processeur secret

Au-delà des lignes : SQL est désormais un moteur de jeu

Les développeurs de Turso ont récemment réalisé une prouesse technique remarquable : ils ont réussi à compiler et à exécuter le jeu classique DOOM entièrement à l'intérieur de leur moteur de base de données. Il ne s'agissait pas simplement de faire tourner le jeu sur une base de données ; sa logique fondamentale a été exécutée directement au sein du cœur de calcul de la base de données.

Cette prouesse repose sur un aspect souvent négligé de l'architecture des bases de données. Lorsqu'un utilisateur soumet une requête SQL, le moteur de base de données ne l'exécute pas directement. Au lieu de cela, il compile la requête dans un jeu d'instructions de bas niveau, appelé bytecode, qui s'exécute ensuite sur une machine virtuelle (VM) interne. Cette VM, semblable à un minuscule processeur, traite depuis longtemps les opérations pour des systèmes comme SQLite.

L'équipe de Turso, en reconstruisant un moteur de base de données à partir de zéro en Rust, a tiré parti de cette VM interne. Ils ont compilé la logique de jeu de DOOM dans le propre bytecode de la base de données, permettant au même jeu d'instructions qui gère `SELECT * FROM users` de rendre un jeu de tir à la première personne. Un petit compilateur C vers VDBE (`vdbecc`) a facilité cette transformation.

Cette démonstration prouve un point profond : un moteur de base de données est bien plus qu'un système de stockage passif pour des lignes et des tables. Il incarne un ordinateur puissant et polyvalent, caché à la vue de tous au sein même de l'infrastructure que nous utilisons quotidiennement. Cela redéfinit notre compréhension de ce qu'une base de données peut accomplir.

Débloquer le processeur caché dans votre base de données

Les requêtes SQL sont rarement exécutées directement. Au lieu de cela, la plupart des bases de données, y compris SQLite, les compilent en un bytecode compact. Ce bytecode s'exécute ensuite sur un Virtual Database Engine (VDBE) interne, essentiellement un minuscule processeur spécialisé caché au sein même de la base de données.

Une équipe chez Turso reconstruit fondamentalement ce moteur central en Rust. Ils l'envisagent comme le « LLVM des bases de données », un backend universel capable de prendre en charge divers frontends de bases de données. Cela inclut la compatibilité actuelle avec SQLite et une intégration future prévue pour Postgres.

Faire tourner DOOM directement sur ce VDBE démontre de manière frappante la puissance de calcul qui y réside. Cela prouve que ce « processeur » interne gère bien plus que la simple récupération de données, en exécutant une logique de jeu complexe et le rendu. Le même jeu d'instructions qui traite `SELECT * FROM users` peut désormais rendre un jeu de tir à la première personne.

Cet exploit souligne un changement profond : les bases de données évoluent au-delà de simples référentiels de données. Elles deviennent des moteurs de calcul polyvalents, capables d'opérations sophistiquées auparavant confinées aux couches d'application dédiées. Un véritable ordinateur programmable vit à l'intérieur de votre base de données.

D'un écrivain unique à une échelle mondiale

L'élégante simplicité de SQLite a longtemps imposé une contrainte critique : son modèle à écrivain unique. Cette architecture, bien que robuste pour de nombreux cas d'utilisation, limite le débit pour les opérations d'écriture simultanées, créant un goulot d'étranglement dans les scénarios à forte demande.

La réécriture en Rust de Turso réarchitecte fondamentalement cette limitation centrale. Elle implémente le Multi-Version Concurrency Control (MVCC), permettant des écritures simultanées à haut débit et transformant la base de données d'une ressource sérialisée en un système parallèle hautement évolutif.

Au-delà de la concurrence, Turso intègre une suite de fonctionnalités cruciales pour les applications distribuées modernes. Les développeurs bénéficient de fonctionnalités puissantes telles que : - le branching de base de données, offrant des environnements de développement isolés - la restauration granulaire à un instant T pour une récupération de données robuste - la recherche vectorielle native, essentielle pour les applications pilotées par l'IA

Il inclut également un support robuste de WebAssembly (WASM). Cela permet l'exécution directe de la logique de base de données à la périphérie (edge) ou au sein des navigateurs, estompant les frontières traditionnelles entre client et serveur.

Cet article vous plaît ? Recevez-en un comme celui-ci chaque matin.

un e-mail par jour · désinscription en deux clics · aucun traqueur tiers

Cette conception distribuée sous-tend l'avantage "Data Edge" de Turso. Elle offre une réplication mondiale à faible latence, garantissant que les données résident géographiquement près des utilisateurs, où qu'ils soient. Cette capacité concurrence directement les principaux fournisseurs de bases de données cloud, garantissant un accès aux données cohérent et performant dans le monde entier. La vision architecturale ambitieuse de Turso pour un cœur de base de données généralisé est détaillée dans leurs travaux : We're building Postgres in Rust. Using the LLVM of databases - Turso.

La prochaine frontière : Postgres sur un cœur SQLite

La feuille de route stratégique de Turso vise désormais une compatibilité profonde avec le dialecte Postgres et le protocole wire. Cette prochaine étape ambitieuse étend leur moteur principal propulsé par Rust au-delà de ses origines SQLite, visant à servir un paysage de bases de données beaucoup plus large. Imaginez la flexibilité : les applications Postgres existantes pourraient se connecter de manière transparente, fonctionnant sur le moteur haute performance de Turso, héritant de son architecture moderne et de son contrôle de concurrence multi-version. Il ne s'agit pas seulement de traduction ; il s'agit d'un changement fondamental.

Cette approche promet des avantages substantiels pour les utilisateurs de Postgres. Elle répond directement aux défis classiques de Postgres, tels que la surcharge du processus par connexion, gourmande en ressources, qui limite souvent l'évolutivité dans les déploiements traditionnels. Les utilisateurs bénéficieraient d'un cœur Rust moderne et intégrable, offrant une performance edge supérieure, des écritures concurrentes robustes et la simplicité opérationnelle d'un binaire unique hautement optimisé. C'est comme remplacer une flotte de moteurs spécialisés par une centrale électrique universelle à haute efficacité.

La poursuite par Turso de la compatibilité Postgres concrétise leur vision du "LLVM of databases". Ce concept envisage un moteur de base de données virtuel unique et hautement optimisé, capable de compiler et d'exécuter du bytecode provenant de divers « langages » SQL, englobant à la fois SQLite et Postgres. Une telle architecture crée un écosystème de données plus efficace et polyvalent, prouvant qu'un moteur de base de données peut transcender son rôle de simple stockage. Il peut fonctionner comme un tissu computationnel universel, adaptable à de multiples paradigmes.

Foire aux questions

Que signifie exécuter DOOM « à l'intérieur » d'une base de données ?

Cela signifie que la logique du jeu a été compilée dans le jeu d'instructions natif (bytecode) de la base de données et exécutée par sa machine virtuelle interne, la même que celle qui exécute les requêtes SQL. La logique du jeu s'exécute directement sur le cœur du moteur de base de données, et non dans une couche d'application séparée.

Qu'est-ce que le « LLVM of databases » ?

C'est la vision de Turso pour un cœur de base de données universel et haute performance écrit en Rust. Comme LLVM pour les compilateurs, il fournit un backend commun vers lequel différents frontends de base de données (comme SQLite ou Postgres) peuvent compiler, permettant des optimisations et des fonctionnalités partagées.

Pourquoi Turso a-t-il exécuté DOOM dans sa base de données ?

C'était une preuve de concept puissante pour démontrer la généralité et la capacité de leur machine virtuelle de bytecode (VDBE). Cela prouve que le moteur n'est pas seulement destiné aux instructions `SELECT`, mais qu'il s'agit d'un véritable moteur computationnel à usage général.

En quoi Turso diffère-t-il de SQLite standard ?

Turso est une réimplémentation en Rust de SQLite qui ajoute des fonctionnalités modernes telles que le contrôle de concurrence multi-version (MVCC) pour les écritures simultanées, la recherche vectorielle native, le branchement de base de données, et est conçu pour les environnements edge distribués avec un support WebAssembly.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$500 · AI tools & software only