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. Термины расположены в алфавитном порядке (латиница, затем кириллица).

B

AngaraAdapt — подсистема адаптивной обработки запросов (v5). Автоматическая коррекция планов на основе runtime feedback: если фактическая кардинальность значительно отличается от оценки, план пересчитывается на лету.

AngaraFlow — подсистема потокового исполнения запросов. Реализует Volcano-модель (iterator model) с операторами scan, filter, join, sort, aggregate. Каждый оператор запрашивает следующую порцию данных у дочернего оператора.

AngaraGC — подсистема сборки мусора MVCC. Использует epoch-based watermark для определения безопасной границы очистки. Удаляет версии строк, невидимые ни одной активной транзакции.

AngaraIO — подсистема асинхронного I/O. Использует io_uring для операций со storage и WAL, минимизируя системные вызовы и переключения контекста.

AngaraMemory — in-memory storage engine (v5). Поддерживает три режима работы: volatile (данные только в памяти), logged (с записью в WAL), snapshotted (с периодическими снимками на диск).

AngaraNet — подсистема сетевого I/O на базе io_uring (v5). Обеспечивает асинхронную обработку сетевых операций без блокировки потоков.

AngaraParallel — подсистема параллельного исполнения запросов (v5). Morsel-driven модель с work-stealing scheduler для утилизации многоядерных процессоров. NUMA-aware распределение (per-node morsel queues, thread pinning) отложено в v0.7 (RFC-2026-376 §13 H2 — «NUMA-aware shard selection»); до этого исполнение NUMA-agnostic, EXPLAIN репортит numa_affinity=disabled.

AngaraPlan — cost-based оптимизатор запросов. Использует robust planning (устойчивость к ошибкам оценок) и LEO feedback (обучение на фактических метриках выполнения).

AngaraPool — подсистема управления соединениями и потоками. Отвечает за connection pooling, thread scheduling и распределение ресурсов между сессиями.

AngaraStat — подсистема сбора статистики для оптимизатора. Включает HyperLogLog для NDV, equi-height гистограммы, MCV (Most Common Values) и reservoir sampling для построения выборок.

AngaraTree — индексный движок. Поддерживает B+tree (основной тип индекса), BRIN (Block Range Index для append-only данных) и Hash (для точечных поисков по равенству).

AngaraVector — подсистема векторизованного исполнения (v5). Обрабатывает данные пакетами (batches) с использованием SIMD-инструкций: AVX2, AVX-512 на x86-64 и NEON на ARM.

BRIN (Block Range Index) — легковесный индекс, хранящий min/max значения для диапазонов страниц. Эффективен для append-only и time-series данных, где значения естественно упорядочены.

Break-glass — механизм контролируемого повышения привилегий. Позволяет авторизованным пользователям временно получить расширенные права с обязательным указанием причины, ограниченным TTL и полным аудитом всех действий.

C

CBO (Cost-Based Optimizer) — оптимизатор запросов, выбирающий план выполнения на основе статистики (кардинальность, NDV, гистограммы) и моделей стоимости (CPU, I/O, memory).

E

Epoch — логическая единица времени в подсистеме MVCC. Каждый успешный commit увеличивает глобальный epoch. Epoch используется для определения видимости версий строк и вычисления GC watermark.

F

Fail-closed — принцип безопасности, при котором система в случае неопределённости отклоняет операцию, а не пропускает. Например, если RLS-политику невозможно вычислить, доступ запрещается.

G

GC watermark — минимальный snapshot среди всех активных транзакций. Определяет безопасную границу для сборки мусора: версии строк с deleted_commit < watermark могут быть удалены.

H

HLL (HyperLogLog) — вероятностная структура данных для приблизительного подсчёта уникальных значений (NDV). Использует фиксированный объём памяти (~1 КБ) независимо от количества значений. Относительная погрешность ~2%.

L

LEO (Learning Optimizer) — компонент AngaraPlan, корректирующий модели стоимости на основе фактических метрик выполнения запросов. После каждого выполнения сравнивает оценочную и реальную кардинальность и обновляет поправочные коэффициенты.

LSN (Log Sequence Number) — монотонно растущий идентификатор записи в WAL. Используется для определения порядка записей, позиции восстановления и репликации.

M

MCV (Most Common Values) — список наиболее часто встречающихся значений колонки вместе с их частотами. Используется оптимизатором для точной оценки кардинальности при фильтрации по конкретным значениям.

MVCC (Multi-Version Concurrency Control) — механизм конкурентного доступа к данным через версионирование строк. Позволяет читателям и писателям работать одновременно без взаимных блокировок. Каждая модификация создаёт новую версию строки, а не изменяет существующую.

N

NDV (Number of Distinct Values) — количество уникальных значений в колонке. Ключевая метрика для оптимизатора: влияет на оценку кардинальности joins и group by.

P

pgwire — PostgreSQL wire protocol. Сетевой протокол, используемый AngaraBase для взаимодействия с клиентами. Обеспечивает совместимость с PostgreSQL-клиентами (psql, драйверы libpq, JDBC).

PITR (Point-In-Time Recovery) — механизм восстановления базы данных на произвольный момент времени. Использует базовый backup + воспроизведение WAL-записей до указанного LSN или timestamp.

R

RBAC (Role-Based Access Control) — модель управления доступом на основе ролей. Привилегии назначаются ролям, роли — пользователям. Поддерживает вложенные роли и наследование привилегий.

RLS (Row-Level Security) — механизм политик видимости строк на уровне таблицы. Позволяет ограничить доступ к отдельным строкам на основе атрибутов текущего пользователя (роль, department, tenant_id).

S

SQLSTATE — 5-символьный код ошибки по стандарту SQL (ISO/IEC 9075). AngaraBase использует явные SQLSTATE для всех ожидаемых ошибок, что упрощает обработку ошибок в клиентских приложениях.

SysCatalog — системный каталог, центральный реестр метаданных всех объектов базы данных: таблиц, колонок, индексов, пользователей, ролей, привилегий, политик безопасности и статистики.

T

TDE (Transparent Data Encryption) — прозрачное шифрование данных на диске. Шифруются страницы данных, записи WAL и журнал аудита. Прозрачно для приложений — шифрование и дешифровка происходят на уровне storage engine.

TID (Tuple Identifier) — физический адрес строки в хранилище, состоящий из двух компонентов: (page_id, slot_id). Используется для прямого доступа к строке через индекс.

W

WAL (Write-Ahead Log) — журнал транзакций, обеспечивающий durability и recovery. Все изменения сначала записываются в WAL, затем применяются к страницам данных. При восстановлении после сбоя WAL используется для повторного применения зафиксированных, но не записанных на диск изменений.

Дальше