Update README.md

This commit is contained in:
2026-05-20 21:24:18 +00:00
parent 0de6fa2ff6
commit 564bcd8ba4

View File

@@ -407,6 +407,30 @@ futriix:~> drop index employees dept_age_idx
WAL- это журнал предзаписи транзакций, который в субд **futriix** выполняет следующие действия:
1. Хранит все операции транзакций до их фиксации (INSERT, UPDATE, DELETE)
2. Записывает каждое изменение последовательно с LSN (Log Sequence Number)
3. Используется для восстановления после сбоя через recoverFromWAL()
4. Формат: бинарный с CRC-контролем, размером записи и типом (Transaction/Checkpoint)
5. Расположение: /futriix/futriix.wal (один файл)
Кроме того существуют так называемые **Периодические снимки состояния** журнала предзаписи, которые выполняют следующие функции:
1. Фиксируют состояние всех активных транзакций на момент создания
2. Создаются автоматически каждые 5 минут (300 секунд)
3. Именуются по маске: futriis.wal.checkpoint.{timestamp}
4. Хранят сжатое состояние: последний LSN + активные транзакции
5. Автоматически очищаются: остаётся только 5 последних чекпоинтов
6. Расположение: /futriix/wal.checkpoint.wal (несколько файлов файл)
Подводя итог, хочется отметить следующее: журнал предзаписи транзакций и периодические снимки состояния работают следующим образом:
* Штатная работа: WAL пишет каждую транзакцию
* Периодически: создаётся checkpoint (снимок активных транзакций)
* При сбое: восстанавливаемся с последнего checkpoint + доигрываем операции из WAL
Это стандартный подход для обеспечения durability и fast recovery в системах с WAL.
```sh
# Начало сессии