2016-12-22 5 views
1

Вот мой Cassndra столCassandra таймаут

CREATE TABLE ipaddresss (
    ipAddress text, 
    time timestamp, 
    clientId inet, 
    .. 
    .. 
    .. 
    PRIMARY KEY (ipAddress, time, clientId) 
) WITH CLUSTERING ORDER BY (time DESC, clientId ASC) 

И у меня есть 6 Узел Кассандры кластеру

И когда я пытаюсь получить ниже READ запрос с использованием Java Driver,

select * from ipaddresss where ipAddress = '12.45.67.89' AND time > '2016-11-21' 

Я очень часто получаю com.datastax.driver.core.exceptions.ReadTimeoutException: тайм-аут Cassandra во время чтения запроса при согласованности ONE (требуется 1 ответ, но только 0 replica ответил). Я получаю ответ большую часть времени, но все еще есть много времени ожидания, даже система не находится под нагрузкой.

Resultset имеет максимум 1000 строк, поэтому установка FetchSize помогла техника его подводит

+0

Чтобы уточнить, вы продолжаете упоминать «Java-драйвер», но у вас есть вопрос с тегом Spring-Data-Cassandra. Вы используете Spring-Data-Cassandra? – Aaron

+0

Сколько столбцов имеет таблица 'ipaddress'? – DineMartine

ответ

0

Просто любопытно, но сколько CQL строки хранятся в каждом ipAddress раздела? Количество столбцов для каждой строки также увеличит размер набора результатов. Попробуйте выполнить запрос из cqlsh и посмотрите, все ли у вас есть тайм-ауты. В противном случае попробуйте ограничить набор результатов, запросив конечный временной диапазон в этом разделе.

Пример:

select * from ipaddresss where ipAddress = '12.45.67.89' 
    AND time >= '2016-11-21 00:00' and time < '2016-11-21 04:00'; 

В противном случае, возможно, что весна сама данных Cassandra может быть причиной вашей проблемы. При пейджинге через большие результирующие наборы Spring Data Cassandra делает (очень неэффективно) SELECT COUNT(*) за кулисами. Если вы можете заставить этот запрос работать за пределами Spring-Data-Cassandra, это может быть вашей проблемой. Когда вы сомневаетесь, вы всегда должны использовать драйвер, одобренный DataStax, который нет в Spring-Data-Cassandra.

+0

Спасибо за ответ. –

+0

Спасибо за ответ. С ipAddress = '12 .45.67.89 ', у меня есть только 700 + строк. И даже клоунсы не такие большие. cqlsh работает отлично. Но проблема с драйвером Java. он работает большую часть времени, но иногда возвращается таймаут. –