pgrust - клон PostgreSQL на Rust, проходящий все регрессионные тесты

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 1808
Зарегистрирован: 20.08.2022

#

pgrust - клон PostgreSQL на Rust, проходящий все регрессионные тесты
Дата публикации:Fri, 10 Jul 2026 09:19:11 +0300

Опубликован проект pgrust с реализацией СУБД PostgreSQL, переписанной на языке Rust c использованием транслятора c2rust и AI-ассистента. Заявлено, что проект пока не готов для использования в рабочих проектах, но уже успешно проходит все регрессионные тесты PostgreSQL, совместим с форматом хранения данных PostgreSQL 18.3 и может использовать data-каталог от PostgreSQL 18.3. Код проекта распространяется под лицензией AGPLv3, в отличие от оригинального PostgreSQL, поставляемого под пермиссивной лицензией PostgreSQL, близкой к лицензиям BSD и MIT. Доступна online-демонстрация возможностей, основанная на сборке в WebAssembly, а также docker-образ для быстрого запуска.
В качестве цели разработки упоминается достижение полной совместимости с PostgreSQL 18.3, а также проведение экспериментов по изменению внутреннего устройства и созданию версии PostgreSQL, избавленной от архитектурных ограничений, от которых не удаётся избавиться по историческим причинам. Проект успешно проходит набор из более чем 46 тысяч регрессионных тестов PostgreSQL, но пока несовместим с дополнениями к PostgreSQL, не предоставляет желаемых оптимизиций производительности и не полностью реализует процедурные языки PL/Python, PL/Perl и PL/Tcl.
Планы на будущее:
  • Перевод на многопоточную внутреннюю архитектуру. Реализация пулинга соединений. Оптимизация для рабочих процессов, активно использующих JSON. Возможность создания копий и ответвлений элементов БД в режиме Copy-on-Write без копирования данных. Эксперименты с архитектурой, не требующей выполнения операции VACUUM. Система ограничений SQL-запросов, позволяющая блокировать излишнее потребление ресурсов при выполнении некачественных запросов. Защита от переключение оптимизатора на менее эффективные планы выполнения запросов.
По словам автора проекта, в настоящее время ведётся работа над следующей версией pgrust, в которой вместо пула рабочих процессов реализована многопоточная модель обработки соединений, а также задействованы дополнительные оптимизации, такие как пакетная обработка строк в таблицах и упреждающая загрузка данных. При тестировании инструментарием percona-tpcc при обработке транзакций новая версия pgrust оказалась быстрее штатного PostgreSQL на 50%, а при обработке аналитических запросов - в 300 раз.
При переводе на Rust использован гибридный подход, при котором код PostgreSQL вначале был обработан помощи транслятора c2rust, генерирующего unsafe-представление Rust, близкое по своей структуре к изначальному коду на Си. После обработки в c2rust было создано около 1000 crate-пакетов, которые параллельно переводились на идиоматический Rust при помощи AI-модели Claude и инструментария Conductor для распределения задач между одновременно запускаемыми субагентами.

Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=65879

Жизнь за Нер'зула!

Ответить