Данные столбцов Memsql не удаляются с диска после TRUNCATE или DROP TABLE

Я создал таблицу columnstore в memsql и заполнил ее примерно 10 миллионами записей, после чего начал запускать несколько сценариев обновления. Я заметил, что размер данных в /var/lib/memsql/leaf-3307/data/columns постоянно увеличивается, и кажется, что там ничего не удаляется. Первоначально размер этой папки составляет пару сотен МБ, но после некоторых полных обновлений таблицы он быстро увеличивается до пары ГБ. «Использование диска columnstore», о котором сообщает memsql-ops, также увеличивается, но очень медленными темпами (далеко от того, что я вижу на диске).

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

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

Запуск команды OPTIMIZE не помог. Я также пытался обрезать таблицу и даже удалить ее, но ничего не помогло. Данные в папке столбцов все еще там. Единственный способ, который я смог найти для очистки, - это УДАЛИТЬ всю базу данных.

Это не похоже на желаемое поведение, и я не могу найти документацию, подтверждающую это. Может ли кто-нибудь объяснить, почему это происходит, если это должно произойти, или указать мне на соответствующую документацию?

заранее спасибо


person Cristi C    schedule 20.01.2017    source источник


Ответы (1)


MemSQL будет хранить около columnstore_window_size байт удаленных данных columnstore на диске для каждой базы данных раздела. Это часть реализации репликации columnstore (она сохраняет некоторые старые файлы на случай, если ведомые устройства отстают). Если вы уменьшите значение этой системной переменной, вы увидите снижение использования диска. Если вы не используете избыточность 2, ее снижение не повредит.

person Adam Prout    schedule 20.01.2017