33 lines
2.2 KiB
Markdown
33 lines
2.2 KiB
Markdown
---
|
||
aliases:
|
||
tags:
|
||
- зрелость/🌱
|
||
date:
|
||
- - 2024-05-26
|
||
zero-link:
|
||
- "[[00 Базы Данных]]"
|
||
parents:
|
||
linked:
|
||
---
|
||
- В [PostgreSQL](00%20PostgreSQL.md) журнал называется [WAL](Write-Ahead%20Log.md)
|
||
- [Журналы в MySQL](Журналы%20в%20MySQL.md)
|
||
|
||
Основное преимущество БД - это [транзакции](Транзакция%20БД.md), то есть изменения происходят либо целиком, либо не происходят, вообще. Журнал выполняет важную функцию в этом процессе.
|
||
|
||
![](Pasted%20image%2020240528081137.png)
|
||
|
||
Мы пишем в отдельное место – в журнал – то, что мы хотим сделать. Мы сначала пишем все данные в журнал, а после того, как журнал зафиксирован на диске, мы изменяем сами данные в памяти. Потом, возможно, сильно позже, эти данные окажутся на диске. Этот алгоритм называется [PITR](Point%20In%20Time%20Recovery%20(PITR).md)
|
||
|
||
Как правило журналы имеют циклическую структуру. Например, у нас есть 10 журналов, когда заполняется последний новые данные начинают писаться поверх первого.
|
||
|
||
Какие проблемы решает журнал:
|
||
- Консистентность данных
|
||
|
||
Главные вопросы, которые встают перед разработчиком любой БД:
|
||
- Как организовать журнал?
|
||
- Как его писать?
|
||
- Как писать его меньше?
|
||
- Как сделать так, чтобы это работало быстрее?
|
||
- При чем тут репликация?
|
||
|
||
Для улучшения производительности желательно под журналы выделять отдельные жесткие диски. Чтобы у журнала был эксклюзивный доступ к ресурсам диска. Менее актуально для SSD. |