메인 콘텐츠로 건너뛰기
ClickHouse Cloud는 Make Before Break(MBB) 방식을 사용해 클러스터 업그레이드와 클러스터 스케일링을 수행합니다. 이 방식에서는 기존 레플리카를 클러스터에서 제거하기 전에 새 레플리카를 클러스터에 추가합니다. 즉, 새 레플리카를 추가하기에 앞서 기존 레플리카를 먼저 제거하는 break-first 방식과 반대입니다. MBB 방식에는 여러 가지 장점이 있습니다.
  • 제거에 앞서 클러스터에 용량이 추가되므로, break-first 방식과 달리 클러스터 전체 용량이 감소하지 않습니다. 물론 클라우드 환경에서는 노드 또는 디스크 장애와 같은 예기치 않은 이벤트가 여전히 발생할 수 있습니다.
  • 이 방식은 클러스터에 높은 부하가 걸린 상황에서 특히 유용하며, break-first 방식에서 발생할 수 있는 것처럼 기존 레플리카에 과부하가 걸리는 것을 방지합니다.
  • 레플리카를 먼저 제거할 때까지 기다릴 필요 없이 신속하게 추가할 수 있으므로, 이 방식은 더 빠르고 민첩한 스케일링 경험을 제공합니다.
아래 이미지는 3개의 레플리카로 구성된 클러스터에서 서비스가 수직 스케일링될 때 이러한 방식이 어떻게 적용될 수 있는지 보여줍니다: 전반적으로 MBB는 이전에 사용되던 break-first 방식과 비교해 더 매끄럽고 중단이 적은 스케일링 및 업그레이드 경험을 제공합니다. MBB에는 알아두어야 할 몇 가지 주요 동작이 있습니다:
  1. MBB 작업은 현재 레플리카에서 실행 중인 기존 workload가 종료된 후에야 해당 레플리카를 종료합니다. 이 대기 기간은 현재 1시간으로 설정되어 있으므로, 레플리카를 제거하기 전에 해당 레플리카에서 장시간 실행 중인 쿼리가 끝날 때까지 최대 1시간까지 기다릴 수 있습니다. 또한 레플리카에서 백업 프로세스가 실행 중인 경우에는 해당 프로세스가 완료된 뒤 레플리카를 종료합니다.
  2. 레플리카가 종료되기 전에 대기 시간이 있으므로, 클러스터에 설정된 최대 레플리카 수보다 실제 레플리카 수가 더 많아지는 상황이 발생할 수 있습니다. 예를 들어 총 6개의 레플리카를 가진 서비스에서 MBB 작업이 진행 중이면, 이전 레플리카가 여전히 쿼리를 처리하는 동안 클러스터에 3개의 레플리카가 추가되어 총 9개의 레플리카가 될 수 있습니다. 즉, 일정 기간 동안 클러스터의 레플리카 수가 목표 수를 초과할 수 있습니다. 또한 여러 MBB 작업이 서로 겹치면서 레플리카가 누적될 수도 있습니다. 예를 들어 API를 통해 클러스터에 여러 수직 스케일링 요청을 보내는 경우 이런 상황이 발생할 수 있습니다. ClickHouse Cloud에는 클러스터에 레플리카가 과도하게 누적되지 않도록 제한하는 점검 장치가 마련되어 있습니다.
  3. MBB 작업에서는 시스템 테이블(system table) 데이터가 30일 동안 유지됩니다. 즉, 클러스터에서 MBB 작업이 발생할 때마다 30일치 시스템 테이블 데이터가 이전 레플리카에서 새 레플리카로 복제됩니다.
MBB 작업의 동작 원리에 대해 더 자세히 알아보려면 ClickHouse 엔지니어링 팀의 이 블로그 게시물을 참고하십시오.
마지막 수정일 2026년 6월 10일