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

Всем привет! Помогите пожалуйста разобраться с мутациями и памятью. Есть

таблица:

engine = AggregatingMergeTree PARTITION BY month
ORDER BY (objectHash, month)

Прежде чем запускать мутацию сделал optimise final и дождался завершения (то есть количество партиций и партов стало равным).
Запустил мутацию, которая бежит по всей патриции без учета ключа, и она потребляет слишком много памяти (отвалились в это время остальные запросы по totalMemoryLimit, и на графиках после запуска видно было как растет потребление памяти). Хочу разбить эту мутацию на несколько. Для этого хочу изменить таблицу на

engine = AggregatingMergeTree PARTITION BY month
ORDER BY (objectHash%10, objectHash, month)

И запускать последовательно несколько мутаций с Where objectHash%10 = i. Но даст ли это результат? Кажется, что при выполнении мутацию, будет всё равно использована целиком вся партиция, и тогда не получу никакой пользы. Я правильно понимаю, что мне нужно также изменить ключ партиционирования чтобы это заработало?

3 ответов

8 просмотров

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

Sergey-Lomdjaria Автор вопроса
Denny [Altinity]
покажите что за мутация, сколько памяти, мутации н...

Большое спасибо за комментарий. Нашел что там в мутации делается подзапрос который вычитывает всю партицию, и видимо из-за него всё отваливалось по памяти. Я правильно понимаю, что в целом мутация должна последовательно читать отдельные блоки, а не считывать всю партицию целиком, как я предположил до этого?

Sergey Lomdjaria
Большое спасибо за комментарий. Нашел что там в му...

да, мутация последовательно обрабатывает по 8 тыс. строк из парта, несколько партов могут процессится одновременно (это настраивается). Обычно мутации используют мало памяти. Если запустить подряд много мутаций они начинают объединятся в одну, с очень-очень длинным выражением, и парсер выражения начинает жрать память (я видел 50 тыс. мутаций объединились и там сотни мегабайт выражение было, падал сервер по ООМ со 100ГБ ОЗУ), в современных КХ это починили

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

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

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Скажите, либо я тупой, либо непонятно что. Представьте что в регистре AX = 7FFF (в десятичной системе это число 32767), а в регистре BX = 0FFF (в десятичной системе это -1). У...
Rusplay
19
Ребят, привет. Интересует вопрос: есть ли способ получить доступ к WebView в Linux? Рылся-ковырялся, решения не нашел. Объясню сразу задачу, возможно, скажете, что копаю не в...
advanc3d
13
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
вышел новый лазарус 3.4.0 кто пользовался? что нового? на что обратить внимание? итд
livontiy
22
Здравствуйте, надеюсь найти ответ, при выполнение программы все работает, но добавим на форму элемент, при новом запуске остается то что было до изменения, новой кнопки, разме...
Стивен Хикс
15
Что нового в Xcode 16 Xcode 16 приносит много обновлений. Главное - появление ИИ, которое отметили еще в кейноуте. В Xcode появится предиктивное завершение кода, основанное н...
✌️(´ヮ`)
1
то есть мне надо,как бы, в столбик поделить 1/6=0b1/0b110 и получить двоичное число? тогда я получу наконец то те самые 0x5555555555 ?
Павлик Ливаткин
12
Добрый день. Ни у кого случайно нет примера Си+SDL2 анимации объекта? Не получается реализовать движение ((( Схема такая: SDL_CreateWindow SDL_GetWindowSurface SDL_FillRect ...
8921 *** ** **
9
Приветствую! Созревает желание обновить перловые пакеты в рабочем ПАКе на Oracle Linux 8 (потомок CentOS). Сделать это могут админы, но хотят rpm что бы легко их по всем конте...
Alexander
10
Карта сайта