Cassandra очень медленно выполняет чтение sliceRange, TimedOutException

Кассандра 1.0.12

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

При большой нагрузке около 1,5 тыс. 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 при чтении.

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


person huican    schedule 26.01.2013    source источник


Ответы (1)


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

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

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

person huican    schedule 27.01.2013