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

Всем привет. У меня есть Клик непервой свежести (20.5.2.7), но неплохо

работающий. В нём понадобилось заменить несколько строк на другие. И оказалось, что старые строки не удаляются.

alter table track delete where te_id=89602012;
select te_id from track where te_id=89602012 format TSV;

89602012

1 rows in set.

Тактическое выжидание, установка mutations_sync=2, OPTIMIZE не помогли.

Поле te_id типа Int64, входит в ключ:
ENGINE = ReplicatedReplacingMergeTree()
PARTITION BY h_month
ORDER BY (p_id, h_at, te_id)

В system.mutations все записи is_done (на обеих репликах):
mutation_id: 0000000011
command: DELETE WHERE te_id = 89602012
create_time: 2022-07-04 10:51:21
block_numbers.partition_id: ['0','1283299200',..,'1680307200','1682899200','1685577600']
block_numbers.number: [12,15,...,18,132,32]
parts_to_do: 0
is_done: 1
latest_fail_time: 0000-00-00 00:00:00
latest_fail_reason:

В system.merges пусто.

В чём может быть дело?

11 ответов

26 просмотров

это баг, и даже хуже, скорее всего alter table портит таблицу. Вам надо апгрейдится хотя бы до 20.8

кстати как имена партов выглядели до мутации и после? (mutation_version)?

Alexeyer-Er Автор вопроса
Denny [Altinity]
это баг, и даже хуже, скорее всего alter table пор...

Спасибо! (Не буду сылаться на "а раньше работало", баг есть баг.)

Alexeyer-Er Автор вопроса
Denny [Altinity]
кстати как имена партов выглядели до мутации и пос...

Вроде, примерно такие же остались. Вот было в parts_to_do_names: '1546300800_251_251_0_256', '1546300800_252_252_0_256', '1546300800_254_254_0_256', ... Сейчас в system.parts: 1546300800_0_0_0_17469 1546300800_1_252_216_17469 1546300800_254_254_0_258 1546300800_259_259_0 1546300800_260_260_0 1546300800_261_261_0 (и соответствующие data_version: 17469, 17469, 258, 259, 260, 261)

Alexeyer Er
Вроде, примерно такие же остались. Вот было в par...

это Replicated таблица? вы делали attach partition ? или восстанавливали из бекапа? странно что разные версии

Alexeyer-Er Автор вопроса
Denny [Altinity]
это Replicated таблица? вы делали attach partition...

Да, таблица ReplicatedReplacingMergeTree. Восстанавливать её приходилось после обнуления Кипера. На одной реплике аттачить все парты, на другой удалять и ждать перезаливки. Но парты вроде как должны оставаться прежнеми сразу после этого.

Alexeyer Er
Да, таблица ReplicatedReplacingMergeTree. Восстана...

при attach не сбрасывается _version в 0 и теперь у вас мутации просто пропускают эти парты потому что mutation_id logpointer меньше чем _version. типа они заработают после того как вы сделаете alter table delete 17 тыс. раз. (_17469) https://github.com/ClickHouse/ClickHouse/issues/18804

Alexeyer-Er Автор вопроса
Denny [Altinity]
при attach не сбрасывается _version в 0 и теперь у...

Хм, а селекты всё равно читают такие парты из будущего?

Alexeyer-Er Автор вопроса
Denny [Altinity]
да. Version нужен только мутациям

Спасибо. Значит, всегда остаётся опция перелить в другую таблицу селектом.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
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
Карта сайта