184 похожих чатов

Добрый день. Много раз уже обсуждали проблему No active replica

has part и зависшие парты в replication_queue. Всегда предлагаете решение detach+attach+system restart replica или идти чистить очередь руками.
Стали слишком часто появляться такие зависшие парты в очереди репликации по конкретной таблице. На нее идет достаточно много небольших инсертов. Пишем в один сервер еще с 2х читаем, в них не пишем. Можно ли как-то заставить парт остаться на сервере куда пишем, смерджиться и дальше отправить на реплики?

28 ответов

145 просмотров

репликация это по сути лог в котором реплики события типа GET_PART, ATTACH_PART, MERGE_PART регистрируют вообще при обработке GET_PART ищется не сам парт для скачивания, а парт его покрывающий по номерам блоков вы может что-то еще делаете кроме мелких вставок с этими партами? если по system.part_log во всех репликах поискать по имени парта (там два поля part_name и source_part_names кажется массив) то что выдает?

Clir- Автор вопроса
Slach [altinity]
репликация это по сути лог в котором реплики собы...

да, висит GET_PART в очереди репликации с такой ошибкой No active replica has part 73ee5f8e20f8e56fd891b646bedf6add_8971_8975_1 or covering part source replica пустая, num_tries>1000. В part_log по part_name=‘73ee5f8e20f8e56fd891b646bedf6add_8971_8975_1’ нашел DownloadPart+RemovePart

<background_schedule_pool_size>256</background_schedule_pool_size> <background_fetches_pool_size>16</background_fetches_pool_size> не хватает у вас фетч пула, не успевает скачивать реплика

Clir- Автор вопроса
Clir
выставлено в 1024+64

надо смотреть тогда что происходит. Сколько инсертов в секунду?

Clir- Автор вопроса

конкретно в эту таблицу, или вообще?

Clir- Автор вопроса
Clir
4-6 штук

надо читать лог, почему парт _0 не был скачан

Clir- Автор вопроса
Denny [Altinity]
надо читать лог, почему парт _0 не был скачан

может ли быть такое, что парт уже смерджился на реплике, куда был вставлен и далее не может скачаться репликой?

Clir- Автор вопроса
Denny [Altinity]
надо читать лог, почему парт _0 не был скачан

еще весь лог постоянно засран таким 2023.11.06 14:36:16.489537 [ 67525 ] {} <Warning> (ReplicatedMergeTreePartCheckThread): Checking part 73ee5f8e20f8e56fd891b646bedf6add_14067_14738_448 2023.11.06 14:36:16.614118 [ 67525 ] {} <Warning> (ReplicatedMergeTreePartCheckThread): Checking if anyone has a part 73ee5f8e20f8e56fd891b646bedf6add_14067_14738_448 or covering part.

Clir
может ли быть такое, что парт уже смерджился на ре...

это не так работает. делается insert. Появляется парт _0, реплики создают GET задание реплики или качают или нет (может у них пул занят или они вообще выключены) реплика назначает мерж и мержит какие-то парты в _1, реплики назначают себе такой же мерж если реплики не имеют исходных партов, то они их ждут какое-то время, потом сдаются и качают _1 если _1 уже нету, то они скачают _2 и т.д.

Clir
еще весь лог постоянно засран таким 2023.11.06 14:...

да и пофиг zgrep "Checking if anyone has a part" clickhouse-server.log.1.gz|wc -l 85

Clir- Автор вопроса
Clir
да, висит GET_PART в очереди репликации с такой ош...

на реплике, куда идет вставка нашел, что этот парт получился в результате мерджей таких партов [‘73ee5f8e20f8e56fd891b646bedf6add_8960_8960_0','73ee5f8e20f8e56fd891b646bedf6add_8961_8961_0','73ee5f8e20f8e56fd891b646bedf6add_8962_8962_0','73ee5f8e20f8e56fd891b646bedf6add_8963_8963_0','73ee5f8e20f8e56fd891b646bedf6add_8964_8964_0']

ну ищите почему их не было на других репликах

Clir- Автор вопроса
Denny [Altinity]
ну ищите почему их не было на других репликах

а они полюбому должны быть хотя бы на одной реплике?

Clir
а они полюбому должны быть хотя бы на одной реплик...

ну реплика которая их смержила их имела, т.е. они точно были на реплике в которую вы инсертите

Clir- Автор вопроса
Denny [Altinity]
ну реплика которая их смержила их имела, т.е. они ...

на одной реплике ничего нет по этим партам, на других есть DownloadPart+RemovePart

Clir- Автор вопроса
Denny [Altinity]
ну реплика которая их смержила их имела, т.е. они ...

я правильно понимаю, что нужно эти в зукипер и там все чистить для этой реплики, которая не может найти парт? И почему такое может регулярно случаться? Проблем с рестартом машины, сетью или что еще можно посмотреть?

Clir
я правильно понимаю, что нужно эти в зукипер и там...

да это само починится, почему надо что-то чистить?

Clir
я правильно понимаю, что нужно эти в зукипер и там...

у меня была такая история - в кубере на нодах зукипера кончалось место. Не хватало параметра autopurge: purgeInterval: 1

Clir- Автор вопроса
Denny [Altinity]
да это само починится, почему надо что-то чистить?

у меня из-за этих зависающих партов иногда тормозит репликация, прям серьезный лаг начинается. И оно вечно может висеть, пока руками что-то не сделаешь.

Clir
у меня из-за этих зависающих партов иногда тормози...

какая версия КХ? я бы читал лог, понять почему реплика не смогла скачать _0 парт

Clir- Автор вопроса
Denny [Altinity]
какая версия КХ? я бы читал лог, понять почему ре...

Старая версия 21.2.9.41 В очереди появился новый парт, который завис Вот что в логах https://pastila.nl/?00ac30c5/917a9e817df5da182572f097b64b5b98#CvhP2IkkMn3JJinVqKyR+g== Из этой таблицы 1 раз в час данные переносятся в другую таблицу и партиция удаляется на сервере, на котором вставляются данные. Мб это как-то может приводить к проблеме?

Clir
Старая версия 21.2.9.41 В очереди появился новый ...

по идее если партиция дропается, то репликам не нужен был бы этот парт. попробуйте system sync replica перед drop partition , может это какой-то старый баг

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта