Перейти к основному содержимому

Планирование кластера Selena

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

Количество узлов

Selena в основном состоит из двух типов компонентов: узлов FE и узлов BE. Каждый узел должен быть развернут отдельно на физической или виртуальной машине.

Количество узлов FE

Узлы FE в основном отвечают за управление метаданными, управление подключениями клиентов, планирование запросов и планирование выполнения запросов.

В продакшене мы рекомендуем развернуть как минимум ТРИ узла Follower FE в вашем кластере Selena для предотвращения единых точек отказа (SPOF). Leader FE будет автоматически выбран из этих трех follower'ов.

Selena использует протокол Raft для управления метаданными между узлами FE. Selena выбирает узел Leader FE из всех узлов Follower FE. Только узел Leader FE может записывать метаданные. Другие узлы Follower FE только обновляют свои метаданные на основе логов от узла Leader FE. Каждый раз, когда узел Leader FE выходит из строя, Selena переизбирает новый узел Leader FE, пока более половины узлов Follower FE остаются живыми.

Если ваше приложение генерирует высококонкурентные запросы, вы можете добавить узлы Observer FE в ваш кластер. Узлы Observer FE только обрабатывают запросы и не участвуют в выборах узла Leader FE.

Количество узлов BE

Узлы BE отвечают за хранение данных и выполнение SQL.

В продакшене мы рекомендуем развернуть как минимум ТРИ узла BE в вашем кластере Selena для обеспечения высокой надежности данных и доступности сервиса. Высокодоступный кластер BE автоматически формируется, когда как минимум три узла BE развернуты и добавлены в ваш кластер Selena. Отказ одного узла BE не повлияет на общую доступность сервисов BE.

Вы можете увеличить количество узлов BE, чтобы позволить вашему кластеру Selena обрабатывать высококонкурентные запросы.

Количество узлов CN

Узлы CN являются опциональными компонентами Selena и отвечают только за выполнение SQL.

Вы можете увеличить количество узлов CN для эластичного масштабирования вычислительных ресурсов без изменения распределения данных в вашем кластере Selena.

CPU и память

Обычно сервис FE не потребляет много ресурсов CPU и памяти. Мы рекомендуем выделить 8 ядер CPU и 16 ГБ RAM для каждого узла FE.

В отличие от сервиса FE, сервис BE может быть значительно интенсивным по CPU и памяти, если ваше приложение работает с высококонкурентными или сложными запросами на большом наборе данных. Поэтому мы рекомендуем выделить 16 ядер CPU и 64 ГБ RAM для каждого узла BE.

Емкость хранилища

Хранилище FE

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

Хранилище BE

Оценка начального пространства хранилища для BE

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

С помощью следующей формулы вы можете оценить общее пространство хранилища, которое потребуется для всех узлов BE:

Общее пространство хранилища BE = Размер исходных данных * Количество реплик/Коэффициент сжатия

Размер исходных данных = Сумма пространства, занимаемого всеми полями в строке * Количество строк

В Selena данные в таблице сначала разделяются на несколько партиций, а затем на несколько tablet'ов. Tablet'ы являются базовыми логическими единицами управления данными в Selena. Для обеспечения высокой надежности данных вы можете поддерживать несколько реплик каждого tablet'а и хранить их на разных BE. По умолчанию Selena поддерживает три реплики.

В настоящее время Selena поддерживает четыре алгоритма сжатия данных, которые перечислены в порядке от более высокого к более низкому коэффициенту сжатия: zlib, Zstandard (или zstd), LZ4 и Snappy. Они могут обеспечить коэффициент сжатия от 3:1 до 5:1.

После определения общего пространства хранилища вы можете просто разделить его на количество узлов BE в вашем кластере, чтобы оценить среднее пространство хранилища на узел BE.

Добавление дополнительного хранилища по мере необходимости

Если пространство хранилища BE заканчивается по мере роста ваших исходных данных, вы можете дополнить его, масштабируя ваш кластер вертикально или горизонтально, или просто увеличивая ваше облачное хранилище.

  • Добавление новых узлов BE в ваш кластер Selena

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

    После добавления новых узлов BE Selena автоматически перебалансирует данные между всеми узлами BE. Такая автобалансировка поддерживается для всех типов таблиц.

  • Добавление дополнительных томов хранилища к вашим узлам BE

    Вы также можете добавить дополнительные тома хранилища к существующим узлам BE. Для подробных инструкций см. Масштабирование вашего кластера Selena - Вертикальное масштабирование BE.

    После добавления дополнительных томов хранилища Selena автоматически перебалансирует данные во всех таблицах.

  • Добавление облачного хранилища

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