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

Привет, подскажите, пожалуйста, по "легковесному" удалению. Оно производится в два шага: -

удаляемые строки таблицы помечаются в дополнительной колонке _row_exists
- вызывается мутация по удалению строк с проставленной колонкой _row_exists

Можно ли как то сказать ClickHouse не запускать второй шаг (мутацию на удаление)?

Смысл в том, чтобы запускать мутацию самостоятельно в определенное время, накопив достаточное количество удаляемых записей.

23 ответов

27 просмотров

а первый шаг это апдейт?

Sergey-Kotyushkin Автор вопроса

вот здесь описано

Sergey Kotyushkin
вот здесь описано

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

Sergey-Kotyushkin Автор вопроса
Nick
а вы про это, оно ж все еще экпериментальное. Лучш...

в 23.3 вроде бы уже не экспериментальное (вот первый пункт в changelog)

Стабильнее не стало, имхо прост для маркетинга изменили

Мутация и так сама по себе не запускается, Во время мержей строчки чистятся

Dmitry [Altinity] Titov
Мутация и так сама по себе не запускается, Во вре...

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

Nick
т.е. можно отключить мержи для таблицы, а когда на...

Мержи отключать не надо, это нормальный процесс, не трогайте)

Sergey-Kotyushkin Автор вопроса
Dmitry [Altinity] Titov
Мутация и так сама по себе не запускается, Во вре...

мутацию можно запустить самому через alter delete, думал, что можно легковесно наметить много данных на удаление, а потом все удалить безвозвратно

Sergey Kotyushkin
мутацию можно запустить самому через alter delete,...

> думал, что можно легковесно наметить много данных на удаление, а потом все удалить безвозвратно Ну +- так и будет, кх сам не будет запускать дорогую мутацию, ток если будет мерж может подчистить строчки

Sergey-Kotyushkin Автор вопроса
Dmitry [Altinity] Titov
> думал, что можно легковесно наметить много данны...

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

Sergey-Kotyushkin Автор вопроса

DELETE WHERE _row_exist=1

Sergey Kotyushkin
DELETE WHERE _row_exist=1

Кх не должен просто так запускать такие мутации, даже если было несколько LWD запросов, емнип

Sergey-Kotyushkin Автор вопроса
Dmitry [Altinity] Titov
Кх не должен просто так запускать такие мутации, д...

возможно, да, но проверять опасно) будем ждать обновлений по этой фиче, если они будут

Sergey Kotyushkin
возможно, да, но проверять опасно) будем ждать обн...

https://docs.altinity.com/releasenotes/altinity-stable-release-notes/23.3/altinity-stable-23.3.8/ Вообще мы недавно ченджлог выкатили на 23.3

Sergey-Kotyushkin Автор вопроса

накопите лучше в приложении что нужно удалить... и удаляйте обычным мутациями как ALTER TABLE ... DELETE WHERE id IN ()

Sergey-Kotyushkin Автор вопроса
Slach [altinity]
накопите лучше в приложении что нужно удалить... и...

как вариант, да, можно придумать такую схему

Sergey Kotyushkin
как вариант, да, можно придумать такую схему

просто lightweight deletes это такое wanna be production ready ... а на самом деле IMHO оно противоречит дизайну clickhouse https://github.com/ClickHouse/ClickHouse/issues/39870

Sergey-Kotyushkin Автор вопроса

Звучит просто заманчиво: записи быстро помечаются удаленными, автоматически исключаются из обработки, а после в фоне удаляются То есть по сути то, что и хотелось бы, кроме того, чтобы была возможность отложить реальное удаление. Ведь никакой нагрузки большой от проставленного значения в _row_exists нет. А значит и смысла удалять как можно быстрее данные тоже нет. Понятно, что рассчитано на то, чтобы место реальное освобождать, Но в целом это не всегда нужно. Про противоречие дизайну ClickHouse тоже согласен. Но если есть фича, то почему не воспользоваться)

Sergey Kotyushkin
Звучит просто заманчиво: записи быстро помечаются ...

Да не, сама по себе фича норм. Проблема с реализацией в кх, и тем как происходят мутации

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта