Skip to content
research

あなたのデータベースは秘密のCPUである

開発者たちが、データベースの上ではなく、データベースの中で古典的シューティングゲーム「DOOM」を動かしました。この驚くべき試みは、現代のデータベースエンジンに隠された計算能力を明らかにし、データレイヤーで何が可能かという概念に大きな転換をもたらします。

Aki Tanaka
あなたのデータベースは秘密のCPUである

行を超えて:SQLは今やゲームエンジンである

Tursoの開発チームは最近、驚くべき技術的偉業を成し遂げました。彼らは古典的ゲーム「DOOM」を完全にデータベースエンジン内でコンパイルし、実行することに成功したのです。これは単にデータベース「の上で」ゲームを動かしたのではなく、そのコアロジックがデータベースの計算コア内で直接実行されたことを意味します。

このスタントは、データベースアーキテクチャのあまり注目されない側面に焦点を当てています。ユーザーがSQLクエリを送信する際、データベースエンジンはそれを直接実行するわけではありません。その代わりに、クエリを「バイトコード」と呼ばれる低レベルの命令セットにコンパイルし、それを内部の「仮想マシン(VM)」で実行します。このVMは小さなCPUのようなもので、SQLiteのようなシステムでは長年処理を行ってきました。

Rustでデータベースエンジンをゼロから再構築したTursoのチームは、この内部VMを活用しました。彼らはDOOMのゲームロジックをデータベース独自のバイトコードにコンパイルし、「SELECT * FROM users」を処理するのと同じ命令セットで一人称視点のシューティングゲームをレンダリングできるようにしました。この変換には、C言語からVDBEへのコンパイラ(vdbecc)が使用されました。

このデモンストレーションは、データベースエンジンが単なる行やテーブルの受動的なストレージシステム以上の存在であるという、重大な事実を証明しています。それは、私たちが日常的に使用しているインフラの中に隠された、強力な汎用コンピュータそのものなのです。これにより、データベースで何ができるかという私たちの理解が再定義されます。

データベースに隠されたCPUを解き放つ

SQLクエリが直接実行されることはほとんどありません。その代わり、SQLiteを含むほとんどのデータベースは、クエリをコンパクトなバイトコードにコンパイルします。このバイトコードは、データベース自体の中に隠された小さな専用CPUである「仮想データベースエンジン(VDBE)」上で実行されます。

Tursoのチームは、このコアエンジンをRustで根本から再構築しています。彼らはこれを「データベースのLLVM」と位置づけ、多様なデータベースフロントエンドをサポート可能な汎用バックエンドを目指しています。これには現在のSQLiteとの互換性や、将来計画されているPostgresとの統合が含まれます。

このVDBE上で直接DOOMを動かすことは、そこに秘められた計算能力を鮮明に示しています。これは、内部の「CPU」が単なるデータ取得以上の処理、つまり複雑なゲームロジックの実行やレンダリングが可能であることを証明しています。「SELECT * FROM users」を処理するのと同じ命令セットで、一人称視点のシューティングゲームをレンダリングできるのです。

この偉業は、データベースが単なるデータリポジトリを超えて進化しているという大きな転換を強調しています。データベースは、以前は専用のアプリケーションレイヤーに限定されていた高度な操作が可能な、汎用計算エンジンへと変貌を遂げつつあります。あなたのデータベースの中には、本物のプログラム可能なコンピュータが存在しているのです。

シングルライターからグローバルスケールへ

SQLiteの洗練されたシンプルさは、長らくシングルライターモデルという重要な制約を課してきました。このアーキテクチャは多くのユースケースで堅牢ですが、同時書き込み操作のスループットを制限し、需要の高いシナリオにおいてボトルネックとなっていました。

TursoによるRustでの書き直しは、このコアとなる制限を根本から再設計するものです。「多版同時実行制御(MVCC)」を実装することで、高スループットの同時書き込みを可能にし、データベースをシリアル化されたリソースから、高度にスケーラブルな並列システムへと変革します。

Tursoは同時実行性だけでなく、現代の分散アプリケーションに不可欠な一連の機能を統合しています。開発者は以下のような強力な機能を利用できます。 - データベースのブランチ機能:分離された開発環境を提供 - きめ細かなポイントインタイムリカバリ:堅牢なデータ復旧を実現 - ネイティブベクトル検索:AI駆動型アプリケーションに不可欠

また、強力な WebAssembly (WASM) サポートも含まれています。これにより、データベースロジックをエッジやブラウザ内で直接実行することが可能となり、クライアントとサーバーの従来の境界線が曖昧になります。

この記事が気に入ったら、毎朝同じようなものをメールで受け取れます。

1日1通 · 2クリックで解除 · サードパーティのトラッキングなし

この分散設計は、Tursoの「Data Edge」という優位性を支えています。低遅延のグローバルレプリケーションを提供し、ユーザーがどこにいても地理的に近い場所にデータを配置します。この機能は主要なクラウドデータベースプロバイダーと直接競合し、世界中で一貫した高性能なデータアクセスを保証します。Tursoの汎用データベースコアに向けた野心的なアーキテクチャのビジョンについては、彼らのブログ記事で詳しく解説されています:We're building Postgres in Rust. Using the LLVM of databases - Turso

次のフロンティア:SQLiteコア上のPostgres

Tursoの戦略的ロードマップは現在、Postgres dialectおよびワイヤプロトコルとの深い互換性を目指しています。この野心的な次の一歩は、RustベースのコアエンジンをSQLiteの起源を超えて拡張し、より広範なデータベース環境に対応することを目指しています。その柔軟性を想像してみてください。既存のPostgresアプリケーションがTursoの高性能エンジン上でシームレスに接続し、そのモダンなアーキテクチャとマルチバージョン同時実行制御(MVCC)を継承できるのです。これは単なる変換ではなく、根本的な転換を意味します。

このアプローチは、Postgresユーザーに大きな利益をもたらします。従来のデプロイメントでスケーラビリティを制限しがちだった、リソースを大量に消費する「接続ごとのプロセス」というPostgresの古典的な課題に直接対処するものです。ユーザーは、埋め込み可能でモダンなRustコアを手に入れ、優れた edge performance、堅牢な同時書き込み、そして高度に最適化された単一バイナリによる運用のシンプルさを享受できます。これは、専門化されたエンジンの艦隊を、一つの普遍的で高効率な発電所に置き換えるようなものです。

TursoのPostgres互換性の追求は、彼らの「データベースのLLVM」というビジョンを具体化するものです。このコンセプトは、SQLiteとPostgresの両方を包含する多様なSQL「言語」のバイトコードをコンパイルおよび実行できる、単一の高度に最適化された virtual database engine を想定しています。このようなアーキテクチャは、より効率的で汎用性の高いデータエコシステムを構築し、データベースエンジンが単なるストレージとしての役割を超越できることを証明しています。それは、複数のパラダイムに適応可能な、普遍的な計算基盤として機能し得るのです。

よくある質問

データベースの「内部」でDOOMを動かすとはどういう意味ですか?

これは、ゲームのロジックがデータベースのネイティブ命令セット(バイトコード)にコンパイルされ、SQLクエリを実行するのと同じ内部仮想マシンによって実行されたことを意味します。ゲームロジックは別のアプリケーション層ではなく、データベースエンジンのコア上で直接動作します。

「データベースのLLVM」とは何ですか?

これは、Rustで書かれた普遍的で高性能なデータベースコアに対するTursoのビジョンです。コンパイラにおけるLLVMのように、異なるデータベースフロントエンド(SQLiteやPostgresなど)がコンパイル可能な共通のバックエンドを提供し、最適化や機能を共有できるようにします。

なぜTursoはデータベース内でDOOMを動かしたのですか?

これは、彼らのバイトコード仮想マシン(VDBE)の汎用性と能力を証明するための強力な概念実証でした。このエンジンが単なる `SELECT` 文のためだけでなく、真の汎用計算エンジンであることを証明しています。

Tursoは標準のSQLiteとどう違うのですか?

TursoはSQLiteをRustで再実装したもので、同時書き込みのための多版型同時実行制御(MVCC)、ネイティブベクトル検索、データベースブランチングといったモダンな機能を追加し、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