TCP 연결 제한

TCP 연결 제한 (TCP connection limits)

ClickHouse TCP 연결(즉 명령줄 클라이언트를 통한 연결)이 일정 쿼리 수나 시간이 지나면 자동으로 끊기도록 설정할 수 있어요.

출처: 문서

본문

개요 (Overview)

ClickHouse TCP 연결(즉 명령줄 클라이언트를 통한 연결)이 일정 쿼리 수 또는 시간이 지나면 자동으로 끊어질 수 있어요. 연결이 끊어진 후에는 자동 재연결이 일어나지 않아요(명령줄 클라이언트에서 쿼리를 또 보내는 것처럼 다른 무언가가 트리거하지 않는 한).

연결 제한은 서버 설정인 tcp_close_connection_after_queries_num(쿼리 수 제한) 또는 tcp_close_connection_after_queries_seconds(시간 제한)을 0보다 크게 설정해서 활성화해요. 두 제한이 모두 활성화된 경우, 둘 중 먼저 도달하는 제한에 도달하면 연결이 닫혀요.

제한에 도달해 연결이 끊기면 클라이언트는 TCP_CONNECTION_LIMIT_REACHED 예외를 받고, 연결 끊김을 유발하는 쿼리는 절대 처리되지 않아요.

쿼리 수 제한 (Query limits)

tcp_close_connection_after_queries_num이 N으로 설정되어 있다고 가정하면, 연결은 N개의 성공적인 쿼리를 허용해요. 그리고 N + 1번째 쿼리에서 클라이언트가 끊겨요.

처리된 모든 쿼리는 쿼리 수 제한에 포함돼요. 그래서 명령줄 클라이언트를 연결할 때 자동으로 실행되는 초기 시스템 경고 쿼리가 있으며, 이 쿼리도 제한에 포함될 수 있어요.

TCP 연결이 유휴 상태일 때(즉 일정 시간 동안 쿼리를 처리하지 않았을 때, 이 시간은 세션 설정 poll_interval로 지정), 지금까지 센 쿼리 개수는 0으로 리셋돼요. 이 말은 유휴 상태가 발생하면 단일 연결에서의 총 쿼리 수가 tcp_close_connection_after_queries_num을 초과할 수 있다는 뜻이에요.

시간 제한 (Duration limits)

연결 시간은 클라이언트가 연결하는 즉시부터 측정돼요. tcp_close_connection_after_queries_seconds 초가 지난 후의 첫 번째 쿼리에서 클라이언트가 끊겨요.

더 알아보기 (Learn more)