Mem SQL - очистка плановой кеш-памяти через главный и конечный узлы - PullRequest
0 голосов
/ 28 января 2020

У меня есть кластер Mem SQL, который имеет один главный агрегатор и 3 конечных узла. Главный агрегатор и 3 конечных узла работают на разных серверах, так что всего 4 сервера.

Каждый день на главном сервере агрегатора выполняется процесс, который обрезает все таблицы в Mem SQL. и загружает данные fre sh из другого источника. После усечения каждой таблицы я удаляю планкэш с помощью следующей команды:

memsqlcli="mysql -u root -h 127.0.0.1 -P 3306 -vvv"
memsqlclid="$memsqlcli -D $memsql_db"
$memsqlclid -e "DROP ALL FROM PLANCACHE"

После прочтения Mem SQL документации по этой функции выясняется, что я очищаю только планкэш из текущий узел (главный агрегатор). Насколько я понимаю, у конечных узлов также должен быть очищен кэш, и отказ от этого может, в свою очередь, вызвать некоторые проблемы с кэшированием, которые, как мне кажется, иногда встречаются в данных.

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

1 Ответ

0 голосов
/ 28 января 2020

Правильно, DROP ALL FROM PLANCACHE работает только на узле, к которому вы подключены. Чтобы удалить планкаши на всех узлах, подключитесь ко всем узлам и выполните эту команду. К сожалению, нет команды, которая выполняет это по всему кластеру.

Какова ваша цель сбросить планкаш здесь? Что вы подразумеваете под

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

Обычно нет необходимости явно очищать планкаши, особенно на листьях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...