Долговечность
Закрываем цикл постов про A C I D
🔤Durability (Долговечность) гарантирует, что после завершения транзакции внесенные изменения сохранятся даже в случае сбоев электропитания, сбоев или других катастрофических событий.
Другими словами, как только транзакция завершается, данные фиксируются навсегда и не могут просто исчезнуть.
Как базы данных обеспечивают долговечность:
1.Журналы транзакций (журналы предварительной записи - Write-Ahead Logs, он же WAL)
Большинство реляционных баз данных используют журнал предварительной записи (WAL) для сохранения изменений до их записи в основные файлы данных:
• Запись изменений в WAL: предполагаемые операции (обновления, вставки, удаления) записываются в WAL на долговременном носителе (диске).
• Зафиксировать транзакцию: как только запись WAL будет безопасно сохранена, база данных может отметить транзакцию как зафиксированную.
• Применение изменений к основным файлам данных: обновленные данные в конечном итоге записываются в основные файлы — возможно, сначала в память, а затем сбрасываются на диск.
В случае сбоя базы данных при восстановлении она использует WAL :
• Повторить: любые зафиксированные транзакции, еще не отраженные в основных файлах, применяются повторно.
• Отмена: все незавершенные (незафиксированные) транзакции откатываются для сохранения целостности базы данных.
2. Репликация/Избыточность
Помимо WAL, многие системы используют репликацию, чтобы гарантировать сохранность данных даже в случае выхода из строя оборудования или всего центра обработки данных.
• Синхронная репликация: записи немедленно копируются на несколько узлов или центров обработки данных. Транзакция считается завершённой только в том случае, если первичный узел и хотя бы одна реплика подтверждают её безопасное сохранение.
• Асинхронная репликация: изменения в конечном итоге синхронизируются с другими узлами, но существует (небольшое) окно, в котором может произойти потеря данных, если основной узел выйдет из строя до обновления реплики.
3. Резервные копии
Регулярное резервное копирование обеспечивает дополнительную защиту, выходящую за рамки журналов и репликации. В случае серьёзного повреждения данных, человеческой ошибки или катастрофического сбоя:
• Полные резервные копии: сохранение всей базы данных на определенный момент времени.
• Инкрементное/дифференциальное резервное копирование: сохранение изменений с момента последнего резервного копирования для более быстрого и частого резервного копирования.
• Внешнее хранение: обеспечивает сохранность резервных копий в случае локальных сбоев, позволяя восстанавливать данные даже в случае повреждения оборудования.
it пингвин | data engineer 🐧
#Вопросы_с_собесов #acid
Закрываем цикл постов про A C I D
🔤Durability (Долговечность) гарантирует, что после завершения транзакции внесенные изменения сохранятся даже в случае сбоев электропитания, сбоев или других катастрофических событий.
Другими словами, как только транзакция завершается, данные фиксируются навсегда и не могут просто исчезнуть.
Как базы данных обеспечивают долговечность:
1.Журналы транзакций (журналы предварительной записи - Write-Ahead Logs, он же WAL)
Большинство реляционных баз данных используют журнал предварительной записи (WAL) для сохранения изменений до их записи в основные файлы данных:
• Запись изменений в WAL: предполагаемые операции (обновления, вставки, удаления) записываются в WAL на долговременном носителе (диске).
• Зафиксировать транзакцию: как только запись WAL будет безопасно сохранена, база данных может отметить транзакцию как зафиксированную.
• Применение изменений к основным файлам данных: обновленные данные в конечном итоге записываются в основные файлы — возможно, сначала в память, а затем сбрасываются на диск.
В случае сбоя базы данных при восстановлении она использует WAL :
• Повторить: любые зафиксированные транзакции, еще не отраженные в основных файлах, применяются повторно.
• Отмена: все незавершенные (незафиксированные) транзакции откатываются для сохранения целостности базы данных.
2. Репликация/Избыточность
Помимо WAL, многие системы используют репликацию, чтобы гарантировать сохранность данных даже в случае выхода из строя оборудования или всего центра обработки данных.
• Синхронная репликация: записи немедленно копируются на несколько узлов или центров обработки данных. Транзакция считается завершённой только в том случае, если первичный узел и хотя бы одна реплика подтверждают её безопасное сохранение.
• Асинхронная репликация: изменения в конечном итоге синхронизируются с другими узлами, но существует (небольшое) окно, в котором может произойти потеря данных, если основной узел выйдет из строя до обновления реплики.
3. Резервные копии
Регулярное резервное копирование обеспечивает дополнительную защиту, выходящую за рамки журналов и репликации. В случае серьёзного повреждения данных, человеческой ошибки или катастрофического сбоя:
• Полные резервные копии: сохранение всей базы данных на определенный момент времени.
• Инкрементное/дифференциальное резервное копирование: сохранение изменений с момента последнего резервного копирования для более быстрого и частого резервного копирования.
• Внешнее хранение: обеспечивает сохранность резервных копий в случае локальных сбоев, позволяя восстанавливать данные даже в случае повреждения оборудования.
it пингвин | data engineer 🐧
#Вопросы_с_собесов #acid