Ограничения TCP соединений
Обзор
Ваше TCP соединение с ClickHouse (т.е. одно через командный клиент) может автоматически отключаться после определенного числа запросов или по истечении времени. После отключения автоматическое повторное подключение не происходит (если не вызвано чем-то другим, например, отправкой другого запроса в командном клиенте).
Ограничения соединения активируются путем установки настроек сервера tcp_close_connection_after_queries_num
(для ограничения по количеству запросов) или tcp_close_connection_after_queries_seconds
(для ограничения по времени) на величину больше 0. Если оба ограничения активированы, соединение закрывается, когда достигается любое из них первым.
При достижении лимита и отключении клиент получает исключение TCP_CONNECTION_LIMIT_REACHED
, и запрос, который вызвал отключение, никогда не обрабатывается.
Ограничения по количеству запросов
Предполагая, что tcp_close_connection_after_queries_num
установлено на N, тогда соединение позволяет выполнить N успешных запросов. Затем, после запроса N + 1, клиент отключается.
Каждый обработанный запрос учитывается в лимите запросов. Таким образом, при подключении командного клиента может быть автоматический начальный системный запрос предупреждения, который также считается в лимите.
Когда TCP соединение находится в неактивном состоянии (т.е. оно не обрабатывало запросы в течение какого-то времени, указанного в настройках сессии poll_interval
), количество запросов, учтенных до этого момента, сбрасывается на 0. Это означает, что общее количество запросов в одном соединении может превышать tcp_close_connection_after_queries_num
, если произойдет неактивность.
Ограничения по времени
Продолжительность соединения измеряется с момента, как клиент подключается. Клиент отключается при первом запросе после того, как пройдет tcp_close_connection_after_queries_seconds
секунд.