Update README.md
This commit is contained in:
27
README.md
27
README.md
@@ -402,7 +402,32 @@ futriix:~> drop index employees dept_age_idx
|
||||
|
||||
## Транзакции
|
||||
|
||||
В субд реализована полноценная поддержка ACID-транзакций с MVCC (Multi-Version Concurrency Control) и WAL (Write-Ahead Logging). Доступны команды startSession(), startTransaction(), commitTransaction(), abortTransaction() с восстановлением после сбоев через журнал предзаписи.
|
||||
В субд реализована полноценная поддержка ACID-транзакций с MVCC (Multi-Version Concurrency Control) и WAL (Write-Ahead Logging). Журнал WAL по умолчанию хранится в файле `futriix.wal`, находящимся в каталоге `futriix`. Доступны команды startSession(), startTransaction(), commitTransaction(), abortTransaction() с восстановлением после сбоев через журнал предзаписи.
|
||||
|
||||
WAL- это журнал предзаписи транзакций, который в субд `futriix` выполняет следующие действия:
|
||||
|
||||
* Хранит все операции транзакций до их фиксации (INSERT, UPDATE, DELETE)
|
||||
* Записывает каждое изменение последовательно с LSN (Log Sequence Number)
|
||||
* Используется для восстановления после сбоя через recoverFromWAL()
|
||||
* Формат: бинарный с CRC-контролем, размером записи и типом (Transaction/Checkpoint)
|
||||
* Расположение: futriis.wal (один файл)
|
||||
|
||||
Кроме того существуют так называемые **Периодические снимки состояния** журнала предзаписи, которые выполняют следующие функции:
|
||||
|
||||
* Фиксируют состояние всех активных транзакций на момент создания
|
||||
* Создаются автоматически каждые 5 минут (300 секунд)
|
||||
* Именуются по маске: futriis.wal.checkpoint.{timestamp}
|
||||
* Хранят сжатое состояние: последний LSN + активные транзакции
|
||||
* Автоматически очищаются: остаётся только 5 последних чекпоинтов
|
||||
|
||||
Подводя итог, хочется отметить следующее: журнал предзаписи транзакций и периодические снимки состояния работают следующим образом:
|
||||
|
||||
* Штатная работа: WAL пишет каждую транзакцию
|
||||
* Периодически: создаётся checkpoint (снимок активных транзакций)
|
||||
* При сбое: восстанавливаемся с последнего checkpoint + доигрываем операции из WAL
|
||||
|
||||
Это стандартный подход для обеспечения durability и fast recovery в системах с WAL.
|
||||
|
||||
|
||||
```sh
|
||||
# Начало сессии
|
||||
|
||||
Reference in New Issue
Block a user