Общие сведения о записи в нескольких регионах в Azure Cosmos DB

Область применения: Nosql Mongodb Кассандра Гремлин Таблица

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

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

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

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

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

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

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

  • Используется для поиска времени начала запросов канала изменений
  • Используется в качестве порядка сортировки в ответе канала изменений.
  • Используется для упорядочивания операций записи для непрерывного резервного копирования
  • Резервная копия журнала записывает только подтвержденные или конфликтующие записи, поэтому результат восстановления непрерывной резервной копии возвращает только подтвержденные записи.
Предоставляется в ответ на запросы канала изменений и только в том случае, если функция New Wire Model включена запросом. Это значение по умолчанию для всех версий и удаляет режим канала изменений.

Следующие шаги

Далее можно ознакомиться со следующими статьями: