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

Architecture Overview

Этот документ — карта архитектуры AngaraBase as-is: какие крупные подсистемы существуют, как по ним течёт SQL-запрос и где лежат границы ответственности. Для пользовательского введения см. Архитектура AngaraBase.

Высокоуровневые компоненты

КомпонентЧто делает
angarabasedСерверный адаптер: pgwire-протокол, listener, управление соединениями и сессиями
angarabase (engine core)Parse/bind/plan/execute, транзакции, storage API, WAL/recovery primitives
angara-cliCLI для администрирования (identity, ops через admin endpoint)
Operational surfaceКонфигурация, метрики, логи, диагностические bundle, политики upgrade

Полный layering-контракт и правила зависимостей: Layering and Boundaries.

Поток запроса (упрощённо)

flowchart LR
    C[Client/Driver] -- pgwire --> S[angarabased adapter]
    S -- SQL + session ctx --> E[angarabase engine core]
    E --> P[Parse / Bind / Plan / Execute]
    P --> Sec[Security: RBAC + RLS]
    P --> T[Txn / MVCC]
    P --> St[Storage API]
    P --> Stat[Stats / CBO feedback]
    T --> Wal[WAL / Recovery]
    St --> Wal
    Wal --> IO[IO / fsync contract]
    E -- rows / errors --> S
    S -- pgwire responses --> C

Ключевые архитектурные решения

ОбластьРешениеПочему
MVCCUNDO-log (история — отдельный append-only log; heap содержит только текущие версии)Меньше bloat, нет тяжёлого VACUUM, детерминированный GC
StoragePluggable: row-store baseline + AngaraMemory; AngaraColumn в roadmapHTAP-направление, разные tier’ы для разных нагрузок
RecoveryWAL-first, идемпотентный replay, fail-closed при отсутствии WAL целостностиКорректность важнее latency
OptimizerCost-based AngaraPlan + LEO feedback loop, robust planningУстойчивость к ошибкам оценок
ExecutionVolcano streaming (AngaraFlow) + vector path (AngaraVector)Разделение по плановым формам, явное управление через EXPLAIN
CatalogPersisted SysCatalog, DDL переживает restartПредсказуемость для production
Security6-слойная модель: TLS/Auth → RBAC → RLS → Break-glass → Audit chain → TDEDefence-in-depth, fail-closed
BackupPer-database, cold + online/PITR baselineMulti-tenant изоляция
DistributionSingle-node engine; distributed SQL — горизонт major-ветокConcentration on correctness first

Границы и инварианты

  • angarabased (адаптер) не содержит SQL-логики — только pgwire framing, session ctx, маршрутизация в core.
  • angarabase core не знает о pgwire — общается через core API контракт.
  • Storage не делает MVCC visibility — только heap I/O. Visibility вычисляет MVCC layer.
  • Index не определяет видимость — только указывает на TID; visibility всегда recheck по heap.
  • Любая неподдерживаемая SQL-конструкция возвращает явный SQLSTATE (0A000 и др.) — никаких silent bypass.
  • Public API: pgwire + admin endpoint. Внутренние модули — implementation detail и могут меняться.

Архитектурные ограничения и do-not-block правила: Architecture Constraints.

Надёжность и физическая переносимость

  • Cold/offline backup и restore — full-instance copy на уровне data-directory (см. Backup/Restore).
  • Host migration — без pg_dump/pg_restore: copy + verify + start. Подробнее в Crash recovery.
  • Identity rehearsal — каждый release проходит rehearsal upgrade pipeline.
  • Page checksums + WAL CRC — обнаружение corruption на чтении/восстановлении.

Дополнительные материалы