Architektura funkcji rozproszonych w warstwie Hiperskala
Dotyczy: Azure SQL Database
Warstwa usługi Hiperskala korzysta z architektury z wysoce skalowalnymi i oddzielnymi warstwami magazynowania i obliczeń. W tym artykule opisano składniki, które umożliwiają klientom szybkie skalowanie baz danych w warstwie Hiperskala, jednocześnie korzystając z niemal natychmiastowych kopii zapasowych i wysoce skalowalnego rejestrowania transakcji.
Napiwek
Uproszczone ceny hiperskala usługi SQL Database przybyły w grudniu 2023 r. Aby uzyskać szczegółowe informacje, zapoznaj się z blogiem dotyczącym cennika hiperskala.
Omówienie architektury hiperskala
Tradycyjne aparaty baz danych centralizują funkcje zarządzania danymi w jednym procesie: nawet tak zwane rozproszone bazy danych w środowisku produkcyjnym mają obecnie wiele kopii monolitycznego aparatu danych.
Bazy danych w warstwie Hiperskala są zgodne z innym podejściem. Hiperskala oddziela aparat przetwarzania zapytań, w którym semantyka różnych aparatów danych różni się od składników zapewniających długoterminowe przechowywanie i trwałość danych. W ten sposób pojemność magazynu można bezproblemowo skalować w poziomie w razie potrzeby do 128 TB dla pojedynczej bazy danych w warstwie Hiperskala.
Cała komunikacja sieciowa między składnikami hiperskala korzysta z infrastruktury sieci platformy Azure z wbudowaną nadmiarowością.
Repliki pomocnicze o wysokiej dostępności i nazwane repliki to opcjonalne węzły obliczeniowe, które można dodać na żądanie. Oba współdzielą te same składniki magazynu, więc do uruchamiania nowej repliki nie jest wymagana żadna kopia danych. Replikę pomocniczą geograficzną można dodać na żądanie w tym samym lub innym regionie świadczenia usługi Azure. W przypadku ochrony danych i nadmiarowości repliki pomocnicze geograficznie mają składniki magazynu, które są oddzielone od tych używanych przez replikę podstawową.
Na poniższym diagramie przedstawiono funkcjonalną architekturę hiperskala:
Baza danych w warstwie Hiperskala zawiera następujące typy składników: węzły obliczeniowe, serwery stronicowania, usługę dziennika i usługę Azure Storage.
Compute
Węzeł obliczeniowy to miejsce, w którym znajduje się aparat relacyjny. Węzeł obliczeniowy to miejsce, w którym odbywa się język, zapytanie i przetwarzanie transakcji. Wszystkie interakcje użytkownika z bazą danych w warstwie Hiperskala są wykonywane za pośrednictwem węzłów obliczeniowych. Węzły obliczeniowe można skonfigurować do używania zasobów obliczeniowych bezserwerowych lub aprowizowanych.
Węzły obliczeniowe mają lokalne pamięci podręczne oparte na dyskach SSD o nazwie Resilient Buffer Pool Extension (RBPEX Data Cache). RBPEX Data Cache to inteligentna pamięć podręczna danych o małych opóźnieniach, która minimalizuje konieczność pobierania danych z zdalnych serwerów stron.
Bazy danych w warstwie Hiperskala mają jeden podstawowy węzeł obliczeniowy, w którym przetwarzane są obciążenia odczytu i zapisu oraz transakcje. Na żądanie można dodać maksymalnie cztery pomocnicze węzły obliczeniowe o wysokiej dostępności. Działają one jako węzły rezerwowe w trybie failover na potrzeby trybu failover i mogą służyć jako węzły obliczeniowe tylko do odczytu, aby odciążać obciążenia odczytu w razie potrzeby. Nazwane repliki są pomocniczymi węzłami obliczeniowymi zaprojektowanymi w celu umożliwienia różnych dodatkowych scenariuszy skalowania odczytu OLTP i lepszego obsługi obciążeń hybrydowych przetwarzania transakcyjnego i analitycznego (HTAP). Pomocniczy węzeł obliczeniowy geograficzny można dodać do celów odzyskiwania po awarii i służyć jako węzeł obliczeniowy tylko do odczytu w celu odciążania obciążeń odczytu w innym regionie świadczenia usługi Azure.
Bezserwerowa replika podstawowa i wszystkie repliki o wysokiej dostępności lub nazwane repliki są niezależnie skalowane automatycznie na podstawie ich użycia. Zakres skalowania automatycznego obliczeń dla repliki podstawowej i wszystkie nazwane repliki są konfigurowane niezależnie. Zakres skalowania automatycznego wszystkich replik o wysokiej dostępności jest dziedziczony z konfiguracji skalowania automatycznego określonego przez skojarzona replika podstawowa lub nazwana replika.
Aparat bazy danych uruchomiony w węzłach obliczeniowych w warstwie Hiperskala jest taki sam jak w innych warstwach usługi Azure SQL Database. Gdy użytkownicy wchodzą w interakcję z aparatem bazy danych w węzłach obliczeniowych w warstwie Hiperskala, obsługiwane zachowanie obszaru powierzchni i aparatu są takie same jak w innych warstwach usług, z wyjątkiem znanych ograniczeń.
Serwer stron
Serwery stronicowania to systemy reprezentujące skalowany w poziomie aparat magazynu. Każdy serwer stron jest odpowiedzialny za podzestaw stron w bazie danych. Każdy serwer stron ma również replikę przechowywaną w celu zapewnienia nadmiarowości i dostępności.
Zadaniem serwera stron jest obsługiwanie stron bazy danych w węzłach obliczeniowych na żądanie i aktualizowanie stron w miarę aktualizowania danych transakcji. Serwery stron są aktualizowane przez ponowne odtworzenie rekordów dziennika transakcji z usługi dziennika.
Serwery stron utrzymują również obsługę pamięci podręcznych opartych na dyskach SSD w celu zwiększenia wydajności. Długoterminowe przechowywanie stron danych jest przechowywane w usłudze Azure Storage w celu zapewnienia trwałości.
Usługa rejestrowania
Usługa dziennika akceptuje rekordy dziennika transakcji, które odpowiadają zmianom danych z podstawowej repliki obliczeniowej. Następnie serwery stronicowania otrzymują rekordy dziennika z usługi dziennika i stosują zmiany do odpowiednich wycinków danych. Ponadto repliki pomocnicze obliczeniowe odbierają rekordy dziennika z usługi dziennika i odtwarzają tylko zmiany stron już w puli lub lokalnej pamięci podręcznej RBPEX. Wszystkie zmiany danych z podstawowej repliki obliczeniowej są propagowane za pośrednictwem usługi dziennika do wszystkich pomocniczych replik obliczeniowych i serwerów stron.
Na koniec rekordy dziennika transakcji są wypychane do długoterminowego magazynu w usłudze Azure Storage, który jest praktycznie nieskończonym repozytorium magazynu. Ten mechanizm eliminuje potrzebę częstego obcinania dzienników. Typowe przyczyny wzrostu dziennika, takie jak pominięte kopie zapasowe dziennika lub powolne replikacji danych do replik pomocniczych, nie mają zastosowania do warstwy Hiperskala. Usługa dziennika ma pamięć lokalną i pamięć podręczną SSD w celu przyspieszenia dostępu do rekordów dzienników.
Magazyn platformy Azure
Usługa Azure Storage zawiera wszystkie pliki danych w bazie danych. Serwery stronicowania zachowują aktualność plików danych w usłudze Azure Storage. Ten magazyn jest również używany do celów tworzenia kopii zapasowych i może być replikowany między regionami w oparciu o wybór nadmiarowości magazynu.
Kopie zapasowe są implementowane przy użyciu migawek magazynu plików danych. Operacje przywracania przy użyciu migawek są szybkie niezależnie od rozmiaru danych. Bazę danych można przywrócić do dowolnego punktu w czasie w okresie przechowywania kopii zapasowych.
Warstwa Hiperskala obsługuje konfigurowalną nadmiarowość magazynu. Podczas tworzenia bazy danych w warstwie Hiperskala można wybrać spośród następujących typów usługi Azure Standard Storage:
- Magazyn lokalnie nadmiarowy (LRS)
- Magazyn strefowo nadmiarowy (ZRS)
- Magazyn geograficznie nadmiarowy dostępny do odczytu (RA-GRS)
- Magazyn strefowo i geograficznie nadmiarowy z dostępem do odczytu (RA-GZRS)
Opcje magazynu strefowo nadmiarowego są dostępne w regionach świadczenia usługi Azure ze strefami dostępności.
Wybrana opcja nadmiarowości magazynu jest używana przez okres istnienia bazy danych w przypadku nadmiarowości magazynu danych i nadmiarowości magazynu kopii zapasowych.