Контейнеры для базы данных и масштабируемости - PullRequest
0 голосов
/ 27 сентября 2019

Рассмотрим TiDB и TiDB Operator в качестве примеров для этого вопроса.

TiDB

TiDB(«Ti» означает Titanium) - это база данных NewSQL с открытым исходным кодом, которая поддерживает рабочие нагрузки гибридной транзакции и аналитической обработки (HTAP).Он совместим с MySQL и обладает горизонтальной масштабируемостью, высокой согласованностью и высокой доступностью.

Оператор TiDB

Оператор TiDB автоматически развертывается, работает,и управляет кластером TiDB в любом Kubernetes с поддержкой облачной среды.

После того, как база данных станет действующей, в общем случае будет два сценария.

  1. Очень высокая частота запросов только для чтения.
  2. Очень высокая скорость запросов на запись.

В каком из сценариев какой компонент масштабируемой базы данных масштабируется?Читать реплики?База данных "двигатель" сама?Постоянные объемы?Все вышеперечисленное?

1 Ответ

0 голосов
/ 30 сентября 2019

Контейнерная инфраструктура абстрагирует ресурсы хранения и вычислительные ресурсы (рассмотрим PV и Pod в k8s), и эти ресурсы масштабируются по мере масштабирования базы данных.Таким образом, форма масштабирования зависит от самой базы данных.

Для TiDB, хотя он предлагает MySQL-совместимый интерфейс SQL, его архитектура очень отличается от MySQL и других традиционных реляционных баз данных:

  • Уровень SQL (TiDB) обслуживает запросы SQL и взаимодействует со слоем хранения на основе рассчитанного плана запроса .Он не имеет состояния и масштабируется по запросу как для запросов на чтение, так и для записи.Как правило, вы масштабируете / увеличиваете уровень SQL, чтобы получить больше вычислительных ресурсов для расчета плана запросов, объединения, агрегирования и обслуживания большего количества соединений.
  • Уровень хранения ( TiKV ) отвечает за хранение данных и обслуживание KV API для уровня SQL.Наиболее интересной частью TiKV является многоплановая репликация. Уровень хранения автоматически разбивает данные на части и равномерно распределяет их по контейнерам.Каждая часть представляет собой группу плота, лидер которой выполняет запросы на чтение и запись.При увеличении / уменьшении масштаб слоя хранения автоматически переносит фрагменты данных для балансировки нагрузки.Таким образом, масштабирование уровня хранения даст вам лучшую пропускную способность чтения / записи и большую емкость данных.

Возвращаясь к вопросу, все компоненты, упомянутые в вопросе, масштабируются.Реплики чтения / записи, обслуживающие запросы SQL, могут масштабироваться, «движок» базы данных (уровень хранения), обслуживающий запросы KV, может масштабироваться, а PV также масштабируется вместе с процессом масштабирования уровня хранения.

...