Wysoka dostępność w usłudze Azure Cosmos DB dla rdzeni wirtualnych bazy danych MongoDB

DOTYCZY: Rdzenie wirtualne bazy danych MongoDB

Wysoka dostępność w regionie pozwala uniknąć przestojów bazy danych przez konserwowanie replik rezerwowych każdego fragmentu w klastrze. Jeśli fragment przestanie odpowiadać z jakiegokolwiek powodu, usługa Azure Cosmos DB dla rdzeni wirtualnych Bazy danych MongoDB przełącza połączenia przychodzące z nieudanego fragmentu na rezerwę. W przypadku przejścia w tryb failover promowane fragmenty zawsze mają świeże dane za pośrednictwem replikacji synchronicznej.

Wszystkie podstawowe fragmenty w klastrze są aprowidowane w jednej strefie dostępności (AZ), aby zapewnić lepsze opóźnienie między fragmentami. Fragmenty rezerwowe są aprowidowane w innej strefie dostępności.

Nawet bez włączonej wysokiej dostępności każdy fragment ma własny magazyn lokalnie nadmiarowy (LRS) z trzema synchronicznymi replikami obsługiwanymi przez usługę Azure Storage. Wszystkie trzy repliki znajdują się w regionie świadczenia usługi Azure klastra. Jeśli wystąpi błąd pojedynczej repliki, usługa Azure Storage wykryje ją i w sposób przezroczysty ponownie utworzy replikę, która zakończyła się niepowodzeniem. Zobacz metryki na tej stronie , aby uzyskać trwałość magazynu LRS.

Po włączeniu wysokiej dostępności rdzenie wirtualne usługi Azure Cosmos DB dla bazy danych MongoDB uruchamia jeden fragment rezerwowy dla każdego podstawowego fragmentu w klastrze. Każdy fragment podstawowy i rezerwowy ma tę samą konfigurację obliczeniową i magazynową. Podstawowy i rezerwowy używają replikacji synchronicznej. Ten typ replikacji umożliwia zawsze posiadanie tych samych danych na fragmentach podstawowych i rezerwowych w klastrze. W skrócie nasza usługa wykrywa błąd na podstawowych fragmentach i przechodzi w tryb failover do rezerwowych fragmentów z zerową utratą danych.

Klaster parametry połączenia zawsze pozostaje taki sam niezależnie od trybu failover. Umożliwia to usłudze abstrakcję zmian w fizycznych fragmentach obsługujących żądania z aplikacji.

W przypadku włączenia wysokiej dostępności w regionie w klastrze każdy fragment klastra jest objęty umową dotyczącą poziomu usług (SLA) na poziomie 99,99%.

Wysoką dostępność można włączyć w czasie tworzenia klastra. Wysoką dostępność można również włączyć i wyłączyć w dowolnym momencie w istniejącym klastrze rdzeni wirtualnych usługi Azure Cosmos DB dla bazy danych MongoDB. Nie ma przestoju bazy danych, gdy wysoka dostępność jest włączona lub wyłączona w klastrze rdzeni wirtualnych usługi Azure Cosmos DB dla bazy danych MongoDB.

Co się stanie podczas pracy w trybie failover

Każdy tryb failover fragmentu składa się z trzech faz: wykrywanie niedostępności, przełączanie do fragmentu rezerwowego i ponowne tworzenie fragmentu rezerwowego. Usługa wykonuje ciągłe monitorowanie dostępności dla każdego podstawowego i rezerwowego fragmentu w klastrze, wykonując okresowe sprawdzanie kondycji. Gdy sprawdzanie kondycji niezawodnie wskazuje, że fragment stał się nieodpowiadujący i musi zostać zadeklarowany niepowodzeniem, inicjowany jest rzeczywisty tryb failover (przełączenie) do fragmentu rezerwowego.

W fazie przełączania odczyty i zapisy bazy danych są przekierowywane do fragmentu rezerwowego. Synchroniczna replikacja między poszczególnymi elementami podstawowymi i rezerwowym gwarantuje, że fragment rezerwowy zawsze ma taki sam zestaw danych jak jego podstawowy. Umożliwia to wykonywanie wszystkich trybów failover z zerową utratą danych. Przełączenie do trybu wstrzymania odbywa się bez przestoju dla operacji odczytu. Operacje zapisu mogą wymagać ponawiania prób usługi wewnętrznej w fazie przełączania. Te ponawianie prób może być postrzegane jako spowolnienie zapisu po stronie aplikacji.

Po zakończeniu pracy w trybie failover fragmentu klaster jest w pełni operacyjny. Ostatnim krokiem powrotu do oryginalnej konfiguracji o wysokiej dostępności jest ponowne utworzenie fragmentu rezerwowego. To ponowne tworzenie fragmentów rezerwowych jest wykonywane bez przestoju lub wpływu na wydajność podstawowego fragmentu.