Opis zapisów w wielu regionach w usłudze Azure Cosmos DB

DOTYCZY: Nosql Mongodb Cassandra Gremlin Tabeli

Najlepszym sposobem osiągnięcia niemal zerowego przestoju w scenariuszu częściowym lub całkowitym przestoju, w którym spójność odczytów nie musi być gwarantowana, jest skonfigurowanie konta na potrzeby zapisów w wielu regionach. W tym artykule opisano kluczowe pojęcia, które należy wziąć pod uwagę podczas konfigurowania konta zapisu w wielu regionach.

Region koncentratora

Na koncie bazy danych zapisu w wielu regionach z co najmniej dwoma regionami pierwszy region, w którym utworzono konto, jest nazywany regionem "hub". Wszystkie inne regiony, które są następnie dodawane do konta, są nazywane regionami "satelity". Jeśli region centrum zostanie usunięty z konta, następny region, w kolejności, w której zostały dodane, zostanie automatycznie wybrany jako region centrum.

Wszystkie zapisy przychodzące w regionach satelickich są zatwierdzane w regionie lokalnym, a następnie wysyłane do regionu Centrum w celu rozwiązania konfliktów asynchronicznie. Po przejściu zapisu do regionu centrum i rozwiązaniu konfliktu staje się "potwierdzonym" zapisem. Do tego czasu jest to nazywane "wstępnym" zapisem lub "niepotwierdzonym" zapisem. Każdy zapis obsługiwany z regionu centrum natychmiast staje się potwierdzonym zapisem.

Opis sygnatur czasowych

Jedną z podstawowych różnic w koncie zapisu w wielu regionach jest obecność dwóch wartości sygnatury czasowej serwera skojarzonych z każdą jednostką. Pierwszy to epoka serwera, w którym jednostka została zapisana w tym regionie. Ten znacznik czasu jest dostępny zarówno na kontach zapisu w jednym regionie, jak i na kontach zapisu w wielu regionach. Druga wartość znacznika czasu serwera jest skojarzona z czasem, w którym potwierdzono brak konfliktu lub konflikt został rozwiązany w regionie centrum. Potwierdzony lub rozwiązany konflikt zapis ma przypisany znacznik czasu rozwiązywania konfliktów (crts), natomiast niepotwierdzony lub wstępny zapis nie ma crts. Istnieją dwa znaczniki czasu w usłudze Cosmos DB ustawione przez serwer. Podstawową różnicą jest to, czy konfiguracja regionu konta to jedno zapis, czy zapis wielokrotny.

Sygnatura czasowa Znaczenie Po uwidocznieniu
_ts Czas serwera, w którym została napisana jednostka. Zawsze udostępniane przez wszystkie interfejsy API odczytu i zapytań.
crts Epoka, w której rozwiązano konflikt z wieloma zapisami lub potwierdzono brak konfliktu. W przypadku konfiguracji regionu z obsługą wielu zapisów ten znacznik czasu definiuje kolejność zmian dla ciągłej kopii zapasowej i zestawienia zmian:

  • Służy do znajdowania czasu rozpoczęcia żądań zestawienia zmian
  • Służy jako kolejność sortowania w odpowiedzi zestawienia zmian.
  • Służy do zamawiania zapisów dla ciągłej kopii zapasowej
  • Kopia zapasowa dziennika przechwytuje tylko potwierdzone lub konflikt rozwiązane zapisy, dlatego wynik przywracania ciągłej kopii zapasowej zwraca tylko potwierdzone zapisy.
Uwidocznione w odpowiedzi na żądania zestawienia zmian i tylko wtedy, gdy żądanie jest włączone "Nowy model przewodu". Jest to ustawienie domyślne dla wszystkich wersji i powoduje usunięcie trybu zestawienia zmian.

Następne kroki

Następnie możesz przeczytać następujące artykuły: