Перейти к основному содержанию
ClickHouse Cloud выполняет обновления и масштабирование кластеров, используя подход Make Before Break (MBB). При таком подходе в кластер сначала добавляются новые реплики, и только потом из него удаляются старые. Это противоположно подходу break-first, при котором сначала удаляются старые реплики, а уже затем добавляются новые. Подход MBB имеет несколько преимуществ:
  • Поскольку ресурсы в кластер добавляются до удаления реплик, общая емкость кластера не снижается в отличие от подхода break-first. Разумеется, в облачной среде по-прежнему могут происходить внеплановые события, такие как сбои узлов, отказы дисков и т. д.
  • Этот подход особенно полезен в ситуациях, когда кластер находится под высокой нагрузкой, поскольку предотвращает перегрузку существующих реплик, как это произошло бы при подходе break-first.
  • Поскольку реплики можно быстро добавлять, не дожидаясь предварительного удаления старых, этот подход обеспечивает более быстрое и отзывчивое масштабирование.
На изображении ниже показано, как это может происходить для кластера с 3 репликами, в котором сервис масштабируется вертикально: В целом MBB обеспечивает более плавное и менее прерывающее работу масштабирование и обновление по сравнению с ранее использовавшимся подходом break-first. При использовании MBB есть несколько ключевых особенностей, о которых вам нужно знать:
  1. Операции MBB ждут завершения существующих рабочих нагрузок на текущих репликах, прежде чем эти реплики будут остановлены. Сейчас этот период составляет 1 час, то есть масштабирование или обновление может ждать до одного часа завершения долго выполняющегося запроса на реплике, прежде чем реплика будет удалена. Кроме того, если на реплике выполняется процесс резервного копирования, ему дают завершиться до остановки реплики.
  2. Поскольку перед остановкой реплики существует период ожидания, возможны ситуации, когда в кластере оказывается больше реплик, чем заданное для него максимальное количество. Например, у вас может быть сервис с 6 репликами, но во время выполнения операции MBB в кластер могут быть добавлены еще 3 реплики, в результате чего общее число реплик достигнет 9, пока старые реплики все еще продолжают обслуживать запросы. Это означает, что в течение некоторого времени в кластере будет больше реплик, чем требуется. Кроме того, сами операции MBB могут перекрываться, что приводит к накоплению реплик. Это может происходить, например, в сценариях, когда в кластер через API отправляется несколько запросов на вертикальное масштабирование. В ClickHouse Cloud предусмотрены проверки, ограничивающие количество реплик, которое может накопиться в кластере.
  3. При операциях MBB данные системных таблиц хранятся 30 дней. Это означает, что каждый раз, когда в кластере происходит операция MBB, данные системных таблиц за 30 дней реплицируются со старых реплик на новые.
Если вам интересно узнать больше о механике операций MBB, ознакомьтесь с этой записью в блоге от инженерной команды ClickHouse.
Последнее изменение 10 июня 2026 г.