3.6 KiB
aliases | tags | date | zero-link | parents | linked | ||||
---|---|---|---|---|---|---|---|---|---|
|
|
|
Основная цель журнала — фиксировать все изменения, происходящие в базе данных, до их окончательного применения. Это позволяет выполнять ../../../../_inbox/Транзакция БД и ../architecture/highload/Репликация БД.
Перед тем как выполнить SQL-запрос, база данных записывает в журнал все действия, которые собирается сделать. После того как журнал зафиксировался на диске, база данных изменяет сами данные в памяти. И только через какое-то время эти данные окажутся на диске в хранилище. Этот алгоритм называется PITR
Этот процесс обеспечивает два важных аспекта:
- Надежность: В случае сбоя системы, данные можно восстановить из журнала до последнего зафиксированного состояния.
- Консистентность: Все транзакции, записанные в журнал, будут применены в базе данных в правильном порядке, что предотвращает потерю данных и сохраняет целостность системы.
[!INFO] Журналы базы данных часто имеют циклическую структуру, где новые данные записываются поверх старых, когда журнал заполняется. Это позволяет эффективно использовать дисковое пространство и упрощает управление журналом.
Реализации в СуБД:
Главные вопросы, которые встают перед разработчиком любой БД:
- Как организовать журнал?
- Как его писать?
- Как писать его меньше?
- Как сделать так, чтобы это работало быстрее?
- При чем тут репликация?
Для улучшения производительности желательно под журналы выделять отдельные жесткие диски. Чтобы у журнала был эксклюзивный доступ к ресурсам диска. Менее актуально для SSD.
Мета информация
Область:: ../../meta/zero/00 Базы Данных Родитель:: Источник:: Автор:: Создана:: 2024-05-26