🤓🧐Согласованность данных и ее виды
Понятие согласованности данных является сложным и многозначным, и его определение может различаться в зависимости от контекста. В своей статье, которую перевела команда VK Cloud, автор обсуждает понятие "согласованность" в контексте распределенных баз данных и предлагает свое определение этого термина. В данной статье автор выделяет 3 вида согласованности данных:
1. Согласованность в теореме Брюера - В соответствии с данной теоремой, в распределенной системе возможно гарантировать только два из трех следующих свойств:
Согласованность: система обеспечивает предоставление актуальной версии данных при их чтении
Доступность: каждый запрос к узлу, функционирующему должным образом, завершается получением правильного ответ
Устойчивость к разделению: Система продолжает функционировать, даже если возникают сбои в сетевом трафике между некоторыми узлами
2. Согласованность в ACID-транзакциях - В данной категории согласованность означает, что транзакция не может привести к недопустимому состоянию, так как необходимо соблюдение следующих составляющих:
Атомарность: любая операция будет выполнена полностью или вообще не будет выполнена
Согласованность: после завершения транзакции база данных находится в корректном состоянии
Изолированность: при выполнении одной транзакции все остальные параллельные транзакции не должны оказывать на нее никакого результата
Надежность: даже в случае сбоя (неважно, какого) завершенная транзакция сохраняется
3. Модели согласованности данных - данное определение термина также относится к базам данных и связано с концепцией моделей согласованности. В модели согласованности базы данных существует два основных элемента:
Linearizability - репликация отдельного фрагмента данных на нескольких узлах влияет на его обработку в базе данных
Serializability - одновременное выполнение транзакций, работающих с несколькими фрагментами данных, влияет на их обработку в базе данных
Подробнее можно узнать в источнике: https://habr.com/ru/companies/vk/articles/723734/
Post #424
853