Время ожидания Кассандры?

У меня есть большой набор данных в одной таблице (более 2 миллионов строк, каждая из которых содержит более 100 столбцов), хранящийся в cassandra, несколько месяцев назад (может быть, 2?). Я смог выполнить простую команду, чтобы отслеживать количество записи в этой таблице:

SELECT count(*) from mydata limit 11111111;

Несколько дней назад я попробовал ту же команду и получил следующую ошибку:

errors={}, last_host=168.176.61.25

Сама ошибка мало что говорит. После некоторых исследований в Google я думаю, что это может быть связано с тайм-аутом. Как и следовало ожидать, более короткие запросы выполняются правильно, и ошибка всегда появляется после 10 секунд обработки.

Насколько я понимаю, таймауты для cassandra задаются в cassandra.yaml, я изменил следующие значения

read_request_timeout_in_ms: 25000

range_request_timeout_in_ms: 25000

request_timeout_in_ms: 25000

Однако в ошибке нет никаких изменений, и она по-прежнему терпит неудачу через те же 10 секунд,

Любые идеи?

Большое спасибо

Фуанка


person Fuanka    schedule 31.10.2014    source источник
comment
Ну, дизайн для вашего запроса. Если вам нужно постоянно выполнять этот подсчет, держите таблицу счетчиков и обновляйте ее при добавлении или удалении строк.   -  person Don Branson    schedule 31.10.2014


Ответы (1)


Если вы хотите, чтобы подсчитывалось только количество записей, не используйте count(*), поместите столбец счетчика в свою схему: http://www.datastax.com/documentation/cql/3.0/cql/cql_using/use_counter_t.html

если вам также нужно получить все данные для другой операции, есть несколько повторных сезонов этого тайм-аута, я могу предоставить вам некоторые из них, если вам нужно.

person Manhal Daaboul    schedule 23.12.2014
comment
Спасибо, это похоже на более простое решение. Я больше не работаю над этим конкретным набором данных. Однако я определенно хотел бы знать, как обрабатывать такое количество строк и избегать тайм-аута. Не могли бы вы дать несколько советов? Большое спасибо Манхал - person Fuanka; 13.01.2015
comment
вам нужно получить результат, выгруженный на страницу, ограничение поддержки cassandra, но не поддерживает смещение. если вы делаете прямой cql, используйте timeuuid, чтобы преодолеть проблему смещения. если вы используете драйвер, используйте разбиение на страницы драйвера - person Manhal Daaboul; 14.01.2015