Уровни линеаризации для распределённых баз данных

Consistency levels in Azure Cosmos DB От Isolation к Consistency — дорога длиной в 30 лет Кликабельная схема

Уровни линеаризации для распределённых баз данных

Уровни линеаризации, также известные как модели согласованности, определяют правила порядка и видимости обновлений в распределённой системе. Ниже приведены основные уровни линеаризации, используемые в распределённых базах данных:

Уровень линеаризации Описание
Strong Consistency Сильная согласованность Обеспечивает, что любое чтение данных возвращает самую последнюю запись, независимо от узла. Это гарантирует, что после подтверждения записи все последующие чтения отразят эту запись.
Linearizability Линеаризуемость Строгая форма сильной согласованности. Операции выглядят мгновенными и следуют в общем порядке, соответствующем реальным временным ограничениям. Каждое чтение возвращает самую последнюю запись.
Sequential Consistency Последовательная согласованность** Обеспечивает, что операции появляются в некотором последовательном порядке и уважают порядок программ для каждого процесса, но не требуют реальных временных ограничений. Все процессы видят один и тот же порядок операций.
Causal Consistency Причинно-следственная согласованность Обеспечивает, что причинно связанные операции видны всеми узлами в одном и том же порядке. Операции, не связанные причинно, могут быть видны в разных порядках на разных узлах.
Causal+ Consistency Расширяет причинно-следственную согласованность, гарантируя, что все записи от одного клиента видны всеми узлами в одном и том же порядке, чего не гарантирует причинно-следственная согласованность.
Eventual Consistency Конечная согласованность Обеспечивает, что все реплики в конечном итоге сойдутся к одному значению. Нет гарантий порядка или времени чтений и записей.
Read-Your-Writes Consistency Согласованность "чтение-после-записи" Обеспечивает, что после записи, выполненной процессом, он всегда будет видеть эту запись при последующих чтениях. Это подмножество причинно-следственной согласованности.
Monotonic Reads Consistency Монотонное чтение Обеспечивает, что если процесс видел определённое значение данных, он никогда не увидит более старое значение при последующих чтениях.
Monotonic Writes Consistency Монотонная запись Обеспечивает, что операции записи процессом выполняются в порядке их выдачи, гарантируя, что последовательность записей не будет видна в неправильном порядке.
Session Consistency Согласованность сессии Обеспечивает гарантии согласованности в пределах сессии, обычно предоставляя согласованность "чтение-после-записи" и монотонное чтение. Когда сессия заканчивается, гарантии не действуют между сессиями. Вторая запись, происходящая в результате чтения после первой записи всегда будет отображена второй.
Bounded Staleness Ограниченная устарелость Обеспечивает, что чтения могут отставать от записей не более чем на фиксированное время или версии. Это даёт предсказуемую верхнюю границу устарелости данных.
Delta Consistency Дельта-согласованность Обеспечивает, что реплики сходятся к одному значению в пределах фиксированного временного окна (дельты). Похожа на конечную согласованность, но с ограниченным временем сходимости.