Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Что такое AngaraBase

AngaraBase — реляционная СУБД на Rust, совместимая с протоколом и подмножеством SQL PostgreSQL. Проектируется для нагрузок типа ERP/SaaS, где важны предсказуемое поведение, явные границы и отсутствие «магии».

  • Платформа сервера: Linux x86_64 / aarch64 (glibc >= 2.28)
  • Клиенты: любая платформа через стандартные PostgreSQL-драйверы
  • Текущая ветка: 0.6.x
Что описывает эта документация

AngaraBase — молодой проект. Эта документация описывает то, что уже работает в коде на текущей ветке, и явно отделяет это от того, что находится в roadmap.

Что вы получаете прямо сейчас

ВозможностьСостояние
pgwire-протокол, подключение psql/JDBC/psycopg/pgx без модификацийДоступно
Подмножество SQL PostgreSQL c явным контрактом и pinned-тестамиДоступно
Транзакции, MVCC (UNDO-log), уровни READ COMMITTED / REPEATABLE READДоступно
Per-database backup/restore (cold + online/PITR baseline)Доступно
Многоуровневая безопасность: SCRAM/TLS, RBAC, RLS v1, audit chain, TDE, break-glassДоступно
Индексы AngaraTree (B+tree, BRIN), статистика AngaraStat (HLL, гистограммы, MCV)Доступно
Cost-based оптимизатор AngaraPlan, streaming-исполнение AngaraFlowДоступно
Vectorized execution AngaraVector (scan/filter/project/join/agg, режим auto/force_*)Доступно (bounded)
In-memory storage AngaraMemory (storage='memory', durability tiers)Доступно (bounded)
Параллельное исполнение AngaraParallel (DOP-капы, partitioned join)Доступно (bounded)
Columnar storage AngaraColumn, HTAP, distributed SQLВ roadmap (см. Architecture)

Точные границы поддержки SQL и текущие ограничения зафиксированы в SQL compatibility overview и Known issues. AngaraBase не публикует «процент совместимости» — вместо этого приводит точный контракт.

Принципы

ПринципЧто это значит на практике
Restrictive by defaultПо умолчанию строгие проверки, ограничения и аутентификация. «Магические» обходы требуют явного флага
Contract-firstКаждая фича имеет явный контракт (что поддержано, какой SQLSTATE при отказе, какие инварианты)
No semantic surprisesНеподдержанная конструкция возвращает явный SQLSTATE (0A000 и др.), а не молчаливый bypass
Fail-closedПри неопределённости система отклоняет запрос, а не пропускает его
Evidence-firstКорректность доказывается артефактами тестов и oracle-скриптами, не маркетингом
PostgreSQL-friendlyСовместимость по pgwire и SQL подмножеству; никакой собственной обвязки в клиенте

Совместимость с PostgreSQL

AngaraBase реализует pgwire-протокол как первичный API. С точки зрения клиента это обычный PostgreSQL endpoint:

psql "host=127.0.0.1 port=5432 user=angara_root dbname=base sslmode=verify-full"
СтекДрайверСтатус
Pythonpsycopg2, psycopg3Поддерживается
Node.jspg (node-postgres)Поддерживается
JavaPostgreSQL JDBCПоддерживается
Golib/pq, pgxПоддерживается
.NETNpgsqlПоддерживается
Toolingpsql, DBeaverПоддерживается с оговорками — см. Client compatibility

Полный compat-контракт и smoke-сценарии: SQL compatibility overview.

Чем AngaraBase отличается от PostgreSQL

ОбластьPostgreSQLAngaraBase
Pluggable storageВ работе (pg_am v2)Встроено: row-store + AngaraMemory; AngaraColumn — в roadmap
MVCCUNDO-in-heap (bloat, VACUUM)UNDO-log (отдельный лог, heap содержит только текущие версии)
Backup/restoreКластерныйPer-database, cold + online/PITR baseline
БезопасностьРасширения и конфигурацияМногослойная модель из коробки: RBAC + RLS + audit chain + TDE + break-glass
Именованные подсистемыAngaraTree, AngaraStat, AngaraPlan, AngaraFlow, AngaraIO, AngaraGC, AngaraVector, AngaraMemory, AngaraParallel — каждая с явным контрактом и метриками
Поведение при unsupported SQLЧасто best-effortЯвный SQLSTATE, fail-closed
Совместимость как метрикаПолный SQLКонтрактное подмножество с pinned-тестами и публичным known-issues регистром

Кому подходит

  • Командам ERP/SaaS (например, на базе Odoo), которым нужна предсказуемая PostgreSQL-совместимая БД с явным контрактом совместимости.
  • DBA, ценящим явные границы поведения, а не «best-effort» совместимость.
  • Инженерам, которым важно понимать, что именно поддерживается, и иметь reproducible-тесты как доказательство.
  • Сообществу, готовому участвовать в формировании молодой СУБД.

Что AngaraBase не делает (на текущей ветке)

  • Не предоставляет distributed SQL и multi-master HA — это горизонт следующих major-веток.
  • Не реализует полный SQL PostgreSQL — только контрактное подмножество с явной границей.
  • Не маскирует неподдержанные фичи — вы получаете явную ошибку с SQLSTATE.
  • Не работает на не-Linux серверах. Клиенты — кросс-платформенные.

С чего начать

ВыКуда идти
Знакомитесь впервыеАрхитектура «с высоты птичьего полёта»
Хотите запустить локальноБыстрый старт
Оцениваете пригодность для своего стекаSQL compatibility overview, Known issues
Планируете продакшен-развёртываниеУстановка, Безопасность, Hardening
Сообщаете об ошибкеПоддержка

Ссылки

  • Quickstart — собрать, запустить, выполнить первый SQL за несколько минут.
  • Architecture — как устроена БД внутри.
  • SQL reference — какой SQL поддерживается.
  • Security model — модель безопасности.
  • Operations — конфигурация и эксплуатация.
  • Glossary — термины и именованные подсистемы.