Поделиться через


Запись в нескольких регионах в Azure Cosmos DB

Чтобы достичь почти нулевого простоя во время частичного или общего сбоя, если согласованность чтения не требуется, настройте учетную запись для записи в нескольких регионах. В этой статье описываются основные понятия, которые необходимо знать при настройке учетной записи записи с несколькими регионами.

Регион концентратора

В учетной записи базы данных с несколькими регионами с двумя или более регионами первый регион, в котором создается учетная запись, называется "концентратор". Все остальные регионы, которые вы добавляете в учетную запись, называются "вспомогательными" регионами. При удалении центрального региона из учетной записи следующий регион в порядке их добавления автоматически выбирается в качестве центрального региона.

Все записи, поступающие в вспомогательные регионы, фиксируются в локальном регионе, а затем отправляются в центральный регион для разрешения конфликтов асинхронно. Когда запись отправляется в центральный регион и разрешается конфликт, она становится "подтвержденной" записью. До тех пор это "предварительный" или "неподтвержденный" запись. Любая запись, обслуживаемая из центрального региона, сразу же становится подтвержденной записью.

Общие сведения о метках времени

Учетная запись с несколькими регионами использует два значения метки времени сервера для каждой сущности. Первое — время эпохи сервера, когда сущность записывается в этом регионе. Эта метка времени отображается как в учетных записях записи в одном регионе, так и в нескольких регионах. Вторая метка времени сервера — это время эпохи, когда подтверждение отсутствия конфликта или конфликт фиксируется в концентраторе. Подтвержденная или конфликтоопределенная запись получает метку времени разрешения конфликтов (crts), но не получает crtsнеподтвержденную или предварительную запись. Cosmos DB задает две метки времени на сервере. Основное различие заключается в том, используется ли учетная запись с одной записью или конфигурацией региона с несколькими записями.

Метка времени Значение Когда предоставляется
_ts Эпоха сервера, в которую была записана сущность Всегда предоставляется всеми API чтения и запроса.
crts Эпоха, когда исправлен конфликт с несколькими записью или отсутствие конфликта подтверждается. Для настройки нескольких регионов эта метка времени задает порядок изменений для канала изменений: находит время начала запросов канала изменений, задает порядок сортировки в ответах канала изменений. Отображается в ответах канала изменений только в том случае, если запрос включает "Новая модель провода". Это поведение по умолчанию для режима "все версии и удаления" в режиме канала изменений.