очередь Distributed таблицы (речь про вставку через Distr)
Я вставляю данные в Distributed табличку table_a_distr (асинхронная вставка) на 3 разных хостах, которые разносят эти данные по 4 другим шардам (в таблицу table_a_local).
С каждого из 3 хостов файлики на каждый из 4 шардов отправляются из очереди независимо и параллельно. Но внутри каждого из 4 шардов инсерты в table_a_local с разных хостов обрабатываются последовательно (один за другим).
А если у меня появится еще одна табличка table_b_distr и table_b_local, то их вставка будет независимо от работы table_a вполняться. То есть на всех 4 шардах у меня будет сразу же 2 инсерта в table_a_local и table_b_local. И отправка файликов из distr таблиц будет на каждом шарде использовать воркеры из background_distributed_schedule_pool
Правильно ли я понял логику или что-то напутал?
вроде правильно, есть метрики SELECT * FROM system.metrics WHERE metric ILIKE '%backgrounddistributed%' можно проверить на живом сервере)
окей, спасибо а вот с синхронными я чет до конца не понял, синхроные вставки в Distributed будут параллельны на шардах или также последовательны? меня вот этот коммент смутил немного https://github.com/ClickHouse/ClickHouse/issues/36742#issuecomment-1112873473
параллельно https://github.com/ClickHouse/ClickHouse/blob/4dcba9d97b2b46f57e17b548c2d214ee137025b5/src/Storages/Distributed/DistributedSink.cpp#L508
Обсуждают сегодня