Об этом проекте
Neon — это платформа для серверного PostgreSQL с открытым исходным кодом. Она разделяет хранение и вычисления, заменяя слой хранения PostgreSQL путем распределения данных по кластеру узлов.
В разделе быстрого старта README предлагается использовать бесплатный уровень Neon для создания экземпляра серверного PostgreSQL и подключения к нему с помощью клиента PostgreSQL, такого как psql или dbeaver, или использования онлайн-редактора SQL. Также отмечается, что проект можно скомпилировать и запустить локально.
Обзор архитектуры: установка Neon состоит из вычислительных узлов и движка хранения Neon. Вычислительные узлы — это безсостоятельные узлы PostgreSQL, поддерживаемые движком хранения. Движок хранения имеет два основных компонента: Pageserver, масштабируемый бэкэнд для хранения для вычислительных узлов; и Safekeepers, избыточная служба WAL, которая получает WAL от вычислительных узлов и надежно хранит его до тех пор, пока pageserver не обработает его и не загрузит в облачное хранилище. Документация для разработчиков находится в docs/SUMMARY.md.
Локальная разработка: README содержит инструкции по установке зависимостей для дистрибутивов Linux, таких как Ubuntu или Debian, Fedora и Arch, а также для macOS, включая protobuf-compiler 3.15+, Rust, клиент PostgreSQL и инструменты сборки. Сборка создает neon и пропатченный postgres, а репозиторий использует файл rust-toolchain. После рекурсивного клонирования и сборки с помощью make пользователи запускают cargo neon init, cargo neon start, cargo neon tenant create --set-default, cargo neon endpoint create main и cargo neon endpoint start main. Примеры показывают, как запустить psql против локальной конечной точки и создать ветку с помощью cargo neon timeline branch --branch-name migration_check, а затем создать и запустить конечную точку PostgreSQL на этой ветке. В README указано, что ветка начинается с данных из main, а последующие изменения остаются изолированными.
Тестирование и очистка: модульные тесты Rust используют cargo-nextest; интеграционные тесты требуют зависимостей и запускаются через ./scripts/pytest с возможностью выбора версии PostgreSQL и типа сборки. Пламенные графики можно генерировать с помощью flamegraph-rs или flamegraph.pl. Для очистки используются make clean и make distclean, а удаление каталога .neon удаляет локальную базу данных. Документация включает docs/sourcetree.md и rustdoc. В README есть ссылки на сообщения в блоге, видео, глоссарий Neon, глоссарий PostgreSQL, CONTRIBUTING.md, а также просьба к участникам прочитать документацию по стилю кода и структуре дерева исходного кода.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.