Кратко / Главное
Новый проект под названием pgrust полностью переписал Postgres на Rust, и он проходит каждый регрессионный тест. Но настоящая история не только в скорости — она в том, как ИИ сделал этот «невозможный» подвиг реальностью.
Больше, чем форк: Идеальный клон?
Полная переработка Postgres на Rust, названная pgrust, была выпущена, и это гораздо больше, чем просто академическое упражнение. Этот дерзкий проект достиг монументального подвига, пройдя все 46 000+ официальных регрессионных запросов Postgres – эталон, который немногие, если вообще кто-либо из «совместимых» баз данных, осмеливаются заявлять. Это не просто намек на совместимость; это декларация.
Важно отметить, что pgrust не является форком существующей кодовой базы на C, и не является расширением, прикрепленным к оригиналу. Он представляет собой полную, с нуля, перереализацию, тщательно спроектированную для 100% поведенческой совместимости с Postgres 18.3. Цель состояла не в том, чтобы доработать старый движок, а в том, чтобы полностью заменить его на Rust, сохранив каждый нюанс внешнего контракта.
В результате получился сервер баз данных, который снаружи совершенно неотличим от своего предшественника на C. Он использует тот же сетевой протокол, что обеспечивает бесшовную интеграцию со стандартными клиентами `psql`. Что еще более удивительно, pgrust может даже загружаться непосредственно из существующего каталога данных Postgres 18.3, демонстрируя уровень совместимости дисков, который стирает грань между новым движком и полноценным клоном. Это не просто поверхностное подражание; это глубокое, фундаментальное соответствие.
Настоящая цель: Потоки вместо процессов
Postgres, при всей своей стабильности, полагается на тяжелую модель процесс на соединение. Каждый клиент требует свой собственный фоновый процесс, что обеспечивает надежную изоляцию, но влечет за собой значительные накладные расходы на память. Эта конструкция также усложняет совместное использование состояния для параллельных операций, часто требуя пула соединений.
Однако pgrust в своей невыпущенной экспериментальной версии выбирает другой путь. Он стремится заменить это архитектурой поток на соединение. Этот сдвиг обещает меньшее потребление памяти на каждое соединение и упрощает обмен информацией между различными компонентами базы данных, что является критическим преимуществом для современных рабочих нагрузок.
Тем не менее, этот архитектурный поворот вносит существенный компромисс. Изоляция процессов Postgres обеспечивает важную страховку: сбой в одном соединении обычно не приводит к падению всего сервера. С потоками же одна ошибка памяти или небезопасное расширение потенциально могут дестабилизировать весь процесс, устраняя некоторые из этих встроенных механизмов безопасности.
Эта фундаментальная переархитектура лежит в основе самых смелых заявлений pgrust о производительности. Разработчики сообщают о непроверенном увеличении на 50% для транзакционных нагрузок и ошеломляющем 300-кратном улучшении для аналитических запросов в этой невыпущенной версии. Эти впечатляющие цифры остаются спекулятивными, поскольку код, подтверждающий эти бенчмарки, еще не доступен публично для независимой проверки.
Секретное оружие: Разработка, управляемая ИИ
Монументальная переработка Postgres в pgrust была не просто свидетельством возможностей Rust; это была дерзкая демонстрация разработки, управляемой ИИ. Майкл Малис и Джейсон Зайбель широко использовали агентов ИИ для кодирования, что позволило им перевести миллионную кодовую базу Postgres на C с поразительной скоростью и осуществимостью. Эта монументальная задача, ранее немыслимая для небольшой команды, стала выполнимой благодаря автоматизированному переводу, что коренным образом изменило экономику такого предприятия.
Это раскрывает истинный эксперимент: не просто сможет ли Rust сделать Postgres быстрее, но и сможет ли ИИ сделать переписывание устаревшей инфраструктуры достаточно доступным, чтобы переосмыслить базовую архитектуру. Десятилетия накопленного C code, когда-то считавшегося неприкосновенным монолитом, стали реальной целью для глубоких архитектурных изменений. Опубликованная версия pgrust во многом повторяет оригинальную структуру Postgres, но невыпущенная модель thread-per-connection демонстрирует настоящие амбиции в отношении фундаментальных изменений в дизайне.
Этот сдвиг парадигмы фундаментально переопределяет анализ затрат и выгод для модернизации других крупномасштабных, десятилетних программных проектов. Такие системы, как Linux, Apache или даже более старые корпоративные приложения, ранее считавшиеся слишком дорогими или рискованными для переписывания, теперь входят в сферу возможного. AI agents значительно сокращают первоначальную нагрузку на перевод, освобождая инженеров-людей для сосредоточения на инновационных архитектурных перестройках, как более подробно описано на malisper/pgrust: Postgres rewritten in Rust, now passing 100% of the Postgres regression tests - GitHub.
Шумиха против реальности: Вердикт по pgrust
Неудивительно, что вердикт инженерного сообщества по pgrust резко разделился. В то время как многие разработчики выражают огромное уважение к такому достижению, как прохождение всех 46 000+ официальных регрессионных запросов Postgres, здоровый скептицизм сохраняется. Непроверенные бенчмарки, заявляющие о 50% лучшей производительности транзакций и в 300 раз более быстрой аналитической нагрузке от невыпущенной версии, подпитывают эту осторожность.
Enjoying this? Get one like it in your inbox each morning.
one email a day · unsubscribe in two clicks · no third-party tracking
Не заблуждайтесь: pgrust — это новаторский эксперимент, а не готовая к производству замена. Основные области, такие как обширная extension ecosystem, остаются незавершенными, а критически важное усиление, необходимое для восстановления после сбоев и долгосрочной стабильности, еще предстоит реализовать. Развертывание этого в реальной среде было бы безответственным.
В конечном итоге, самым глубоким вкладом pgrust может быть не отдельный бенчмарк или даже прямая замена Postgres. Вместо этого, его истинная ценность заключается в беспрецедентной свободе, которую он создает. Благодаря AI-driven development, этот проект демонстрирует возможность тестирования радикально новых архитектур баз данных, таких как модель thread-per-connection, без непомерных затрат и сложности форка всего проекта Postgres.
Часто задаваемые вопросы
Что такое pgrust?
pgrust — это полная переработка базы данных Postgres с нуля на языке программирования Rust. Он стремится быть заменой "drop-in", поведенчески идентичной, пройдя все 46 000+ официальных регрессионных тестов Postgres.
Является ли pgrust быстрее, чем Postgres?
Текущая выпущенная версия pgrust не ориентирована на производительность. Однако невыпущенная версия для разработки заявляет о значительном ускорении — до 50% для транзакционных нагрузок и в 300 раз для аналитических нагрузок — за счет перехода на модель thread-per-connection.
Могу ли я использовать pgrust в продакшене?
Нет. Разработчики заявляют, что pgrust не готов к продакшену. Хотя он проходит регрессионные тесты, он не прошел годы реального тестирования, необходимого для доверия в продакшене, особенно в таких областях, как восстановление после сбоев и репликация.
Как ИИ использовался для создания pgrust?
Разработчики активно использовали AI-powered coding agents для ускорения масштабной задачи по переводу почти миллиона строк C code на Rust. Это сделало иначе непомерно дорогой эксперимент осуществимым.
