Выбор координатора

Тяжёлая прокси получает запрос от пользователя и делегирует его одному из инстансов, который называется «координатором». Пользователь может повлиять на стратегию выбора, например, для эффективного использования кеша.

Ниже перечислены различные стратегии выбора координатора в порядке убывания приоритетности (при попытке включить несколько стратегий будет выбрана более приоритетная):

  1. Выбор конкретного инстанса.

    Нужно добавить job-cookie интересующего инстанса к алиасу клики через символ @. Например, для инстанса с job-cookie=3 получится запрос такого вида http://cluster.domain.com/chyt?chyt.clique_alias=my-clique@3.

  2. Выбор инстанса в пределах сессии.

    В пределах одной ClickHouse-сессии прокси будет* выбирать один и тот же инстанс.

    Примечание

    *Если в последние несколько минут не происходило перезапуска инстансов.

    Сессия определяется url-параметром session_id (так же как в оригинальном ClickHouse). Таким образом получается запрос вида http://cluster.domain.com/chyt?chyt.clique_alias=my-clique&session_id=abracadabra.

  3. Стратегия StickyGroup.

    Параметр QueryStickyGroupSize можно указать либо в конфигурации клики, либо передавать вместе в запросом в url-параметре chyt.query_sticky_group_size.

    В таком случае прокси будет делегировать одинаковые запросы группе инстансов размера QueryStickyGroupSize, то есть один и тот же запрос будет попадать в случайный инстанс из этой группы.

    Выбор значения QueryStickyGroupSize может быть основан на следующих рассуждениях: при маленьких значениях кеш в выделенной группе прогревается быстро, а при больших — группа почти не страдает в случае выпадения одного инстанса, т. к. кеш большинства инстансов сохранится.

  4. Выбор случайного инстанса.

    За отсутствием других стратегий координатор выбирается равновероятно среди всех доступных инстансов.