Кассандра очень медленно выполняет чтение фрагментов, TimedOutException

Кассандра 1.0.12

У нас есть семейство столбцов с именем actionRecords, его ключ строки - "ApplicationName". Семейство столбцов используется для записи транзакций с парой имя-значение, например (UUID, transInfo).

При большой нагрузке около 1,5K TPS, через 1 час, запрос SliceRange очень медленный. Для sliceRage мы устанавливаем только предел, например, 10000. Начало и конец пустые. Мы хотим использовать sliceRange для считывания информации о транзакции, а также выполнить некоторую бизнес-логику, а затем удалить из Cassandra.

Мы используем org.scale7.cassandra.pelops.Mutator API для вставки в БД: Mutator.writeColumn(columnFamily, rowkey, Mutator.newColumn(uuid, string));

При использовании nodetool задержка составляет более 10 секунд во время чтения SliceRange.

Но теперь это TimedOutException при чтении.

У кого-нибудь есть похожие проблемы? Как уменьшить время ожидания? Хорошо ли наша структура данных для наших целей? Любая помощь или предложение?

1 ответ

Я думаю, что это моя ошибка программирования.

Когда я выполнял сканирование диапазона, я всегда начинал с начала (у меня есть 5G MEMTable), и с увеличением количества записей в БД скорость сканирования падает, в конце концов, она становится больше 30 секунд и вызывает TimedOutException.

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

Другие вопросы по тегам