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 Дельта-согласованность | Обеспечивает, что реплики сходятся к одному значению в пределах фиксированного временного окна (дельты). Похожа на конечную согласованность, но с ограниченным временем сходимости. |