Назад | Перейти на главную страницу

Длинные запросы Cassandra (33 секунды для удаления пустой таблицы)

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

Настройка схемы для этих таблиц требует от меня (конечно) удаления существующих таблиц. Но если вы потратите 10-30 секунд на стол, это приведет к дням ожидания.

Команда для удаления таблицы: echo "использовать пространство ключей; TRACING ON; drop table table28; exit;" | cqlsh --request-timeout = 60000> трассировка

Данные будут превышать 1 000 000 000 000 строк, поэтому они разбиваются по временным рамкам. Мы всегда знаем таймфреймы, поэтому разбиваем таблицы по таймфреймам. Но <5 столбцов.

Я надеялся, что кто-нибудь поможет мне с отладкой, чтобы увидеть, как можно повысить производительность. Ссылка на трассировку приведена ниже: https://ufile.io/gz9mz

Более нескольких сотен таблиц в Cassandra - явный признак плохой модели данных - если у вас тысячи таблиц, вам нужно подумать о том, как вы пытаетесь решить свою задачу. Вы должны принять во внимание, что для каждой таблицы выделяется память в куче и вне кучи для хранения разных метаданных и т. Д.

Зачем нужно разделять данные на куски - почему это не работает внутри одной таблицы? Вы используете запросы с РАЗРЕШЕНИЕМ ФИЛЬТРАЦИИ? Можете описать вариант использования?

P.S. Этот вопрос больше для StackOverflow или DBA StackExchange ...