Больше, чем просто строки: SQL теперь — игровой движок
Разработчики из Turso недавно совершили выдающийся технический подвиг: они успешно скомпилировали и запустили классическую игру DOOM полностью внутри своего движка базы данных. Это было не просто запуск игры поверх базы данных; её основная логика выполнялась непосредственно внутри вычислительного ядра базы данных.
Этот трюк основан на часто упускаемом из виду аспекте архитектуры баз данных. Когда пользователи отправляют SQL-запрос, движок базы данных не выполняет его напрямую. Вместо этого он компилирует запрос в низкоуровневый набор инструкций, известный как bytecode, который затем выполняется на внутренней Virtual Machine (VM). Эта виртуальная машина, похожая на крошечный процессор, уже давно обрабатывает операции для таких систем, как SQLite.
Команда Turso, переписывающая движок базы данных с нуля на Rust, использовала эту внутреннюю виртуальную машину. Они скомпилировали игровую логику DOOM в собственный байт-код базы данных, позволив тому же набору инструкций, который обрабатывает `SELECT * FROM users`, отрисовывать шутер от первого лица. Небольшой компилятор C в VDBE (`vdbecc`) облегчил это преобразование.
Эта демонстрация доказывает глубокую мысль: движок базы данных — это гораздо больше, чем пассивная система хранения строк и таблиц. Он воплощает в себе мощный компьютер общего назначения, скрытый на виду в самой инфраструктуре, которую мы используем ежедневно. Это переопределяет наше понимание того, чего может достичь база данных.
Разблокировка процессора, скрытого в вашей базе данных
SQL-запросы редко выполняются напрямую. Вместо этого большинство баз данных, включая SQLite, компилируют их в компактный байт-код. Этот байт-код затем выполняется на внутреннем Virtual Database Engine (VDBE) — по сути, крошечном специализированном процессоре, скрытом внутри самой базы данных.
Команда Turso фундаментально перестраивает этот основной движок на Rust. Они представляют его как «LLVM для баз данных», универсальный бэкенд, способный поддерживать различные фронтенды баз данных. Это включает текущую совместимость с SQLite и планируемую интеграцию с Postgres в будущем.
Запуск DOOM непосредственно на этом VDBE наглядно демонстрирует вычислительную мощность, скрытую внутри. Это доказывает, что этот внутренний «процессор» справляется с гораздо большим, чем просто извлечение данных, выполняя сложную игровую логику и рендеринг. Тот же набор инструкций, который обрабатывает `SELECT * FROM users`, теперь может отрисовывать шутер от первого лица.
Этот подвиг подчеркивает глубокий сдвиг: базы данных эволюционируют за пределы простых хранилищ данных. Они становятся вычислительными движками общего назначения, способными выполнять сложные операции, ранее ограниченные выделенными уровнями приложений. Настоящий программируемый компьютер живет внутри вашей базы данных.
От единственного писателя к глобальному масштабу
Элегантная простота SQLite долгое время накладывала критическое ограничение: модель с единственным писателем. Эта архитектура, хотя и надежна для многих сценариев использования, ограничивает пропускную способность для параллельных операций записи, создавая узкое место в сценариях с высоким спросом.
Переписывание на Rust от Turso фундаментально переосмысливает это ключевое ограничение. Оно реализует Multi-Version Concurrency Control (MVCC), обеспечивая высокую пропускную способность параллельных записей и превращая базу данных из сериализованного ресурса в высокомасштабируемую параллельную систему.
Помимо параллелизма, Turso объединяет набор возможностей, критически важных для современных распределенных приложений. Разработчики получают мощные функции, такие как: - ветвление баз данных, предлагающее изолированные среды разработки; - гранулярное восстановление на момент времени для надежного восстановления данных; - нативный векторный поиск, необходимый для приложений на базе ИИ.
Он также включает надежную поддержку WebAssembly (WASM). Это позволяет напрямую выполнять логику базы данных на границе сети (edge) или в браузерах, стирая традиционные границы между клиентом и сервером.
Нравится статья? Получайте такие каждое утро на почту.
одно письмо в день · отписка в два клика · без сторонних трекеров
Этот распределенный дизайн лежит в основе преимущества «Data Edge» от Turso. Он обеспечивает глобальную репликацию с низкой задержкой, гарантируя, что данные находятся географически близко к пользователям, где бы они ни находились. Эта возможность напрямую конкурирует с крупными облачными провайдерами баз данных, гарантируя согласованный и производительный доступ к данным по всему миру. Амбициозное архитектурное видение Turso для обобщенного ядра базы данных подробно описано в их работе: We're building Postgres in Rust. Using the LLVM of databases - Turso.
Следующий рубеж: Postgres на ядре SQLite
Стратегическая дорожная карта Turso теперь нацелена на глубокую совместимость с диалектом Postgres и протоколом передачи данных. Этот амбициозный следующий шаг расширяет их ядро, написанное на Rust, за пределы его происхождения от SQLite, стремясь охватить гораздо более широкий ландшафт баз данных. Представьте себе гибкость: существующие приложения Postgres могут подключаться бесшовно, работая поверх высокопроизводительного движка Turso и наследуя его современную архитектуру и многоверсионное управление параллелизмом. Это не просто перевод; это фундаментальный сдвиг.
Такой подход обещает существенные преимущества для пользователей Postgres. Он напрямую решает классические проблемы Postgres, такие как ресурсоемкие накладные расходы процесса на каждое соединение, которые часто ограничивают масштабируемость в традиционных развертываниях. Пользователи получат встраиваемое, современное ядро на Rust, обеспечивающее превосходную производительность на границе сети (edge performance), надежную параллельную запись и эксплуатационную простоту одного, высокооптимизированного бинарного файла. Это как замена парка специализированных двигателей на одну универсальную, высокоэффективную силовую установку.
Стремление Turso к совместимости с Postgres конкретизирует их видение «LLVM для баз данных». Эта концепция предполагает создание единого, высокооптимизированного виртуального движка баз данных, способного компилировать и выполнять байт-код из различных SQL-«языков», включая как SQLite, так и Postgres. Такая архитектура создает более эффективную и универсальную экосистему данных, доказывая, что движок базы данных может выйти за рамки роли простого хранилища. Он может функционировать как универсальная вычислительная среда, адаптируемая к различным парадигмам.
Часто задаваемые вопросы
Что значит запустить DOOM «внутри» базы данных?
Это означает, что логика игры была скомпилирована в нативный набор инструкций (байт-код) базы данных и выполнена ее внутренней виртуальной машиной — той же самой, которая выполняет SQL-запросы. Игровая логика работает непосредственно на ядре движка базы данных, а не на отдельном уровне приложения.
Что такое «LLVM для баз данных»?
Это видение Turso универсального, высокопроизводительного ядра базы данных, написанного на Rust. Подобно LLVM для компиляторов, оно предоставляет общий бэкенд, к которому могут компилироваться различные фронтенды баз данных (такие как SQLite или Postgres), что позволяет использовать общие оптимизации и функции.
Почему Turso запустили DOOM в своей базе данных?
Это было мощное доказательство концепции, демонстрирующее универсальность и возможности их виртуальной машины байт-кода (VDBE). Это доказывает, что движок предназначен не только для операторов `SELECT`, но является настоящим вычислительным движком общего назначения.
Чем Turso отличается от стандартного SQLite?
Turso — это переписанная на Rust реализация SQLite, которая добавляет современные функции, такие как многоверсионное управление параллелизмом (MVCC) для одновременной записи, нативный векторный поиск, ветвление баз данных, и спроектирована для распределенных edge-сред с поддержкой WebAssembly.

