14.4 Масштабирование базы данных ГОСТ Р 70860—2023

Масштабирование базы данных является важным аспектом облачных вычислений. Масштабирование базы данных выполняется как в отношении физического размера базы данных, так и в отношении скорости выполнения операций (запросов и обновлений).

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

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

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

Для облачных вычислений существует принципиально другой подход к масштабированию баз данных. Этот подход использует концепцию окончательной согласованности, которая может применяться для не транзакционных типов приложений. В таких случаях реплики базы данных хранятся в нескольких местах и обновления выполняются независимо для каждой из реплик, что может привести к возникновению различий между содержимым реплик в течение определенного периода времени, а также к конфликту обновлений. Принцип окончательной согласованности используется в отдельных базах данных NoSQL, таких как открытая база данных CouchDB [из 14.4 Масштабирование базы данных ГОСТ Р 70860—2023]