async_load_* 서버 설정

async_load_* 서버 설정

이 페이지에서는 서버 시작 시 데이터베이스와 시스템 테이블을 비동기적으로 로드할지 제어하는 async_load_* 계열 서버 설정을 설명할게요.

출처: 문서

본문

이 설정들은 ClickHouse 서버를 구성하며, ClickHouse 소스에서 자동으로 생성돼요.

async_load_databases

데이터베이스와 테이블의 비동기 로딩이에요.

  • true이면 Ordinary, Atomic, Replicated 엔진의 모든 비시스템 데이터베이스가 ClickHouse 서버 시작 후 비동기적으로 로드돼요. system.asynchronous_loader 테이블, tables_loader_background_pool_sizetables_loader_foreground_pool_size 서버 설정을 참고하세요. 아직 로드되지 않은 테이블에 접근하려는 어떤 쿼리도 정확히 그 테이블이 시작되기를 기다려요. 로드 작업이 실패하면 쿼리는 오류를 다시 던져요 (async_load_databases = false일 때처럼 서버 전체를 종료하는 대신). 적어도 하나의 쿼리가 기다리는 테이블은 더 높은 우선순위로 로드돼요. 데이터베이스에 대한 DDL 쿼리는 정확히 그 데이터베이스가 시작되기를 기다려요. 또한 대기 중인 쿼리의 총 개수를 제한하는 max_waiting_queries를 설정하는 것도 고려해보세요.
  • false이면 모든 데이터베이스가 서버 시작 시 로드돼요.

예시

<async_load_databases>true</async_load_databases>

async_load_system_database

시스템 테이블의 비동기 로딩이에요. system 데이터베이스에 로그 테이블과 파트가 많을 때 유용해요. async_load_databases 설정과는 독립적이에요.

  • true로 설정하면 Ordinary, Atomic, Replicated 엔진의 모든 시스템 데이터베이스가 ClickHouse 서버 시작 후 비동기적으로 로드돼요. system.asynchronous_loader 테이블, tables_loader_background_pool_sizetables_loader_foreground_pool_size 서버 설정을 참고하세요. 아직 로드되지 않은 시스템 테이블에 접근하려는 어떤 쿼리도 정확히 그 테이블이 시작되기를 기다려요. 적어도 하나의 쿼리가 기다리는 테이블은 더 높은 우선순위로 로드돼요. 또한 대기 중인 쿼리의 총 개수를 제한하도록 max_waiting_queries 설정을 고려해보세요.
  • false로 설정하면 시스템 데이터베이스가 서버 시작 전에 로드돼요.

예시

<async_load_system_database>true</async_load_system_database>

더 알아보기 (Learn more)