Поделиться через


Архитектура распределенных функций с Гипермасштабированием

Применимо к:База данных SQL Azure

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

Совет

Упрощенная цена на База данных SQL Гипермасштабирование прибыла в декабре 2023 года. Дополнительные сведения см. в блоге о ценах на гипермасштабирование.

Обзор архитектуры с Гипермасштабированием

Традиционные ядра СУБД централизуют функции управления данными в одном процессе: даже так называемые распределенные базы данных в рабочей среде сегодня имеют несколько копий монолитного ядра данных.

Базы данных с Гипермасштабированием используют другой подход. Гипермасштабирование отделяет подсистему обработки запросов, в которой разделяется семантика различных подсистем данных, от компонентов, которые обеспечивают долгосрочное хранение и устойчивость данных. Таким образом, емкость хранилища может быть плавно горизонтально масштабирована по мере необходимости. Изначально поддерживаемое ограничение для хранилища составляет 100 ТБ.

Все сетевые коммуникации между компонентами Гипермасштабирования используют сетевую инфраструктуру Azure со встроенной избыточностью.

Вторичные реплики с высоким уровнем доступности и именованные реплики являются необязательными вычислительными узлами, которые можно добавить по запросу. Оба используют одни и те же компоненты хранилища, поэтому для создания новой реплики не требуется копирование данных. Геоторичная реплика может быть добавлена по запросу в одном или другом регионе Azure. Для защиты данных и избыточности гео вторичные реплики имеют компоненты хранилища, которые отделены от тех, которые используются первичной репликой.

На следующей схеме показана функциональная архитектура гипермасштабирования:

Схема, на которой показан уровень вычислений гипермасштабирования.

База данных с Гипермасштабированием включает компоненты следующих типов: вычислительные узлы, серверы страниц, служба журналов и служба хранилища Azure.

Службы вычислений

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

Вычислительные узлы имеют локальные кэши на основе SSD, называемые расширением отказоустойчивого буферного пула (кэш данных RBPEX). Кэш данных RBPEX — это интеллектуальный кэш данных с низкой задержкой, который сводит к минимуму необходимость получения данных с удаленных серверов страниц.

Базы данных с Гипермасштабированием имеют один первичный вычислительный узел, в котором обрабатываются транзакции и рабочая нагрузка чтения и записи. По запросу можно добавить до четырех вторичных вычислительных узлов с высоким уровнем доступности. Они действуют как горячие резервные узлы для отработки отказа и могут служить вычислительными узлами только для чтения, чтобы выгрузить рабочие нагрузки чтения при необходимости. Именованные реплики — это вторичные вычислительные узлы, предназначенные для включения различных дополнительных сценариев горизонтального масштабирования OLTP, а также для повышения поддержки рабочих нагрузок гибридной транзакционной и аналитической обработки (HTAP). Гео вторичный вычислительный узел можно добавить для аварийного восстановления и служить вычислительным узлом только для чтения для разгрузки рабочих нагрузок чтения в другом регионе Azure.

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

Ядро СУБД, работающее на вычислительных узлах уровня служб "Гипермасштабирование" такое же, как и на других уровнях служб базы данных SQL Azure. Когда пользователи взаимодействуют с ядром СУБД на вычислительных узлах с гипермасштабированием, поддерживаемая область поверхности и ядро работают так же, как и в других уровнях служб, за исключением известных ограничений.

Сервер страниц

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

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

Серверы страниц также поддерживают кэширование на основе диска SSD, чтобы повысить производительность. Для обеспечения надежности за долгосрочное хранение страниц данных отвечает служба хранилища Azure.

Служба журналов

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

Наконец, записи журнала транзакций вытесняются на долгосрочное хранение в службу хранилища Azure, которая представляет собой репозиторий практически неограниченного размера. Этот механизм устраняет необходимость в частом усечении журнала. Распространенные причины роста журналов, такие как пропущенные резервные копии журналов или медленная репликация данных на вторичные реплики, не применяются к гипермасштабированию. Служба журнала имеет локальную память и кэши на основе SSD для ускорения доступа к записям журнала.

Служба хранилища Azure

Служба хранилища Azure содержит все файлы данных в базе данных. Серверы страниц хранят файлы данных в службе хранилища Azure в актуальном состоянии. Это хранилище также используется для резервного копирования и может быть реплицировано между регионами на основе выбора избыточности хранилища.

Резервные копии реализуются с помощью моментальных снимков файлов данных. Операции восстановления с использованием моментальных снимков выполняются быстро, независимо от размера данных. Базу данных можно восстановить до любой точки во времени в течение срока хранения ее резервной копии.

Гипермасштабирование поддерживает настраиваемую избыточность хранилища. При создании базы данных гипермасштабирования можно выбрать один из следующих типов хранилища Azure уровня "Стандартный":

  • Локально избыточное хранилище (LRS)
  • хранилище, избыточное между зонами (ZRS);
  • геоизбыточное хранилище с доступом на чтение (RA-GRS).
  • Хранилище, геоизбыточное между зонами, с доступом на чтение (RA-GZRS)

Параметры хранилища, избыточные между зонами, доступны в регионах Azure с зонами доступности.

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