From 1d156affd002792bc998272eebc475d06effc8d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D1=80=D0=B8=D0=B3=D0=BE=D1=80=D0=B8=D0=B9=20=D0=A1?= =?UTF-8?q?=D0=B0=D1=84=D1=80=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Wed, 20 May 2026 21:31:11 +0000 Subject: [PATCH] Update README.md --- README.md | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/README.md b/README.md index f61cc0b..81fc3c2 100644 --- a/README.md +++ b/README.md @@ -396,39 +396,13 @@ Indexes on collection 'employees': # Удаление индекса futriix:~> drop index employees dept_age_idx ✓ Index 'dept_age_idx' dropped from collection 'employees' + ```

(К началу)

## Транзакции -В субд **futriix** реализована полноценная поддержка ACID-транзакций с MVCC (Multi-Version Concurrency Control) и WAL (Write-Ahead Logging). Журнал WAL по умолчанию хранится в файле **futriix.wal**, находящимся в каталоге **futriix**. -Доступны команды startSession(), startTransaction(), commitTransaction(), abortTransaction() с восстановлением после сбоев через журнал предзаписи. - -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