background_merges_mutations_* 서버 설정
background_merges_mutations_* 서버 설정
이 페이지에서는 백그라운드 병합과 mutation의 동시 실행 비율 및 스케줄링 정책을 제어하는 background_merges_mutations_* 계열 서버 설정을 설명할게요.
출처: 문서
본문
이 설정들은 ClickHouse 서버를 구성하며, ClickHouse 소스에서 자동으로 생성돼요.
background_merges_mutations_concurrency_ratio
스레드 수와 동시에 실행할 수 있는 백그라운드 병합 및 mutation 수 사이의 비율을 설정해요. 예를 들어 비율이 2이고 background_pool_size가 16으로 설정되어 있으면 ClickHouse가 32개의 백그라운드 병합을 동시에 실행할 수 있어요. 백그라운드 작업은 중단되고 연기될 수 있기 때문에 가능해요. 이는 작은 병합에 더 많은 실행 우선순위를 주기 위해 필요해요.
이 비율은 런타임에 늘리기만 할 수 있어요. 낮추려면 서버를 재시작해야 해요. background_pool_size 설정과 마찬가지로 background_merges_mutations_concurrency_ratio도 하위 호환성을 위해 default 프로필에서 적용될 수 있어요.
background_merges_mutations_scheduling_policy
백그라운드 병합과 mutation에 대한 스케줄링 수행 정책이에요. 가능한 값은 round_robin과 shortest_task_first예요. 이 알고리즘은 백그라운드 스레드 풀이 다음에 실행할 병합 또는 mutation을 선택하는 데 사용돼요. 정책은 서버 재시작 없이 런타임에 변경할 수 있어요. 하위 호환성을 위해 default 프로필에서 적용될 수 있어요.
가능한 값:
round_robin— 모든 동시 병합과 mutation이 라운드 로빈 순서로 실행되어 기아(starvation) 없이 동작해요. 작은 병합은 병합할 블록 수가 적기 때문에 큰 병합보다 더 빨리 완료돼요.shortest_task_first— 항상 더 작은 병합이나 mutation을 실행해요. 병합과 mutation은 결과 크기에 따라 우선순위가 할당돼요. 크기가 작은 병합이 큰 병합보다 엄격하게 선호돼요. 이 정책은 작은 파트의 가장 빠른 병합을 보장하지만INSERT로 과부하된 파티션에서 큰 병합이 무기한 기아 상태에 빠질 수 있어요.