Udostępnij przez


Skalowalność w usłudze Azure DocumentDB

Usługa Azure DocumentDB oferuje możliwość skalowania klastrów zarówno w pionie, jak i w poziomie. Mimo że warstwa klastra obliczeniowego i dysk magazynu są zależne od siebie, skalowalność i koszt zasobów obliczeniowych i magazynu są oddzielone.

Skalowanie w pionie

Skalowanie w pionie zapewnia następujące korzyści:

  • Zespoły aplikacji mogą nie zawsze mieć wyraźną ścieżkę do logicznego fragmentowania swoich danych. Co więcej, logiczne fragmentowanie jest definiowane dla kolekcji. W zestawie danych z kilkoma kolekcjami bez podziału na fragmenty modelowanie danych dla partycjonowania może szybko stać się mozolne. Po prostu zwiększenie rozmiaru klastra może obejść konieczność stosowania logicznego dzielenia na fragmenty, a jednocześnie spełniać rosnące potrzeby magazynu i zasobów obliczeniowych aplikacji.
  • Skalowanie w pionie nie wymaga ponownego równoważenia danych. Liczba fragmentów fizycznych pozostaje taka sama i zwiększa się tylko pojemność klastra bez wpływu na aplikację.
  • Skalowanie w górę i w dół to operacje bez czasu przestoju, które nie powodują zakłóceń w działaniu usługi. Nie są potrzebne żadne zmiany aplikacji, a operacje stanu stałego mogą być kontynuowane bez zmian.
  • Zasoby obliczeniowe można również skalować w dół w znanych oknach czasu niskiej aktywności. Skalowanie w dół pozwala uniknąć konieczności równoważenia danych na nowo w mniejszej liczbie fizycznych fragmentów i jest to operacja bez przestojów bez zakłóceń dla usługi. W tym przypadku po przeskalowaniu klastra nie są wymagane żadne zmiany aplikacji.
  • Co najważniejsze, obliczenia i magazyn można skalować niezależnie. Jeśli potrzebne są więcej rdzeni i pamięci, rozmiar dysku można pozostawić tak samo jak i warstwę klastra można skalować w górę. Podobnie, jeśli potrzebujesz większej ilości przestrzeni dyskowej i liczby operacji we/wy na sekundę, warstwa klastra może pozostać bez zmian, a rozmiar magazynu można skalować w górę niezależnie. W razie potrzeby zarówno zasoby obliczeniowe, jak i magazyn można skalować niezależnie, aby zoptymalizować wymagania poszczególnych składników indywidualnie bez wpływu na wymagania dotyczące elastyczności każdego składnika.

Skalowanie w poziomie

W końcu aplikacja rośnie do punktu, w którym skalowanie w pionie nie jest wystarczające. Wymagania dotyczące obciążeń mogą przekraczać pojemność największej warstwy klastra i ostatecznie potrzebne są więcej fragmentów. Skalowanie w poziomie w usłudze Azure DocumentDB zapewnia następujące korzyści:

  • Logicznie podzielone na fragmenty zestawy danych nie wymagają interwencji użytkownika w celu zrównoważenia danych w podstawowych fragmentach fizycznych. Usługa automatycznie mapuje fragmenty logiczne na fizyczne fragmenty. Po dodaniu lub usunięciu węzłów dane są automatycznie ponownie zrównoważone w bazie danych w tle.
  • Żądania są automatycznie kierowane do odpowiedniego fizycznego fragmentu, który jest właścicielem zakresu skrótów dla danych, których dotyczy zapytanie.
  • Klastry rozproszone geograficznie mają homogeniczną konfigurację z wieloma węzłami. W związku z tym mapowania logiczno-fizyczne fragmentów są spójne w głównych i replikowanych obszarach klastra.

Skalowanie zasobów obliczeniowych i magazynu

Zasoby obliczeniowe i zasoby pamięci wpływają na operacje odczytu w usłudze Azure DocumentDB więcej niż liczba operacji we/wy na sekundę dysku.

  • Operacje odczytu najpierw konsultują się z pamięcią podręczną w warstwie obliczeniowej, a następnie sięgają do dysku, gdy nie można pobrać danych z pamięci podręcznej. W przypadku obciążeń o wyższej szybkości operacji odczytu na sekundę skalowanie w górę warstwy klastra w celu uzyskania większej ilości zasobów procesora CPU i pamięci prowadzi do większej przepływności.
  • Oprócz przepływności odczytu obciążenia z dużą ilością danych na operację odczytu również korzystają ze skalowania zasobów obliczeniowych klastra. Na przykład warstwy klastra z większą ilością pamięci umożliwiają większe rozmiary pakietów danych dla każdego dokumentu i większą liczbę mniejszych dokumentów na odpowiedź.

IOPS dysku wpływa na operacje zapisu w usłudze Azure DocumentDB bardziej niż wydajność procesora i pamięci zasobów obliczeniowych.

  • Operacje zapisu zawsze utrwalają dane na dysku (oprócz utrwalania danych w pamięci w celu zoptymalizowania operacji odczytu). Większe dyski z większymi wartościami IOPS zapewniają wyższą szybkość zapisu, szczególnie w przypadku pracy na dużą skalę.
  • Usługa obsługuje maksymalnie 32 TB dysków na fragment, przy większej liczbie operacji we/wy na sekundę na fragment, co zapewnia wsparcie dla intensywnych operacji zapisu, szczególnie w przypadku uruchamiania na dużą skalę.

Duże obciążenia magazynu i duże dyski

Brak minimalnych wymagań dotyczących magazynu na warstwę klastra

Jak wspomniano wcześniej, zasoby magazynu i zasobów obliczeniowych są oddzielone od rozliczeń i aprowizacji. Chociaż działają one jako jednostka spójna, można je skalować niezależnie. Warstwa klastra M30 może mieć aprowizowane 32 TB dysków. Podobnie warstwa klastra M200 może mieć aprowizowane 32 GB dysków w celu optymalizacji zarówno pod kątem kosztów magazynowania, jak i zasobów obliczeniowych.

Niższy poziom TCO z dużymi dyskami (32 TB i więcej)

Zazwyczaj bazy danych NoSQL ograniczają magazyn na fizyczny fragment do 4 TB. Usługa Azure DocumentDB zapewnia maksymalnie 8 razy pojemność z dyskami o pojemności 32 TB. Dla obciążeń wymagających dużej pamięci masowej, pojemność 4 TB na fragment fizyczny wymaga ogromnej floty zasobów obliczeniowych, aby po prostu zaspokoić wymagania związane z przechowywaniem danych obciążenia. Obliczenia są droższe niż magazyn i nadmierna aprowizacja zasobów obliczeniowych ze względu na limity pojemności w usłudze mogą szybko zwiększać koszty.

Rozważmy obciążenie związane z przechowywaniem danych o wielkości 200 TB.

Rozmiar pamięci magazynowej na część Minimalna liczba fragmentów potrzebnych do utrzymania 200 TB
4 TiB 50
32 TiB 7

Zmniejszenie wymagań obliczeniowych znacznie zmniejsza się wraz z większymi dyskami. Chociaż do utrzymania wymagań dotyczących przepływności obciążenia może być potrzebna większa niż minimalna liczba fragmentów fizycznych, nawet podwojenie liczby fragmentów jest bardziej opłacalne niż 50 klastrów fragmentów z mniejszymi dyskami.

Pomijanie warstw magazynowania z dużymi dyskami

Aby natychmiast reagować na koszty obliczeniowe w scenariuszach o dużym zapotrzebowaniu na zasoby magazynowe, należy "warstwować" dane. Dane w transakcyjnej bazie danych są ograniczone do najczęściej używanych "gorących" danych, podczas gdy większa ilość "zimnych" danych jest odłączona od magazynu zimnego. Powoduje to złożoność operacyjną. Wydajność jest również nieprzewidywalna i zależna od warstwy danych, do którego uzyskuje się dostęp. Ponadto dostępność całego systemu zależy od odporności zarówno gorących, jak i zimnych magazynów danych połączonych. W przypadku dużych dysków w usłudze nie ma potrzeby przechowywania warstwowego, ponieważ koszty obciążeń związanych z przechowywaniem są zminimalizowane.

Dalsze kroki