2016-12-22 1 views
1

Voici ma table Cassndradélai d'attente Cassandra

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

Et je 6 nœud de cluster Cassandra

Et quand je suis en train d'obtenir le ci-dessous READ requête en utilisant Java pilote,

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

Je reçois très fréquemment com.datastax.driver.core.exceptions.ReadTimeoutException: timeout Cassandra pendant la lecture de la requête à la cohérence ONE (1 réponses étaient requises mais seulement 0 réplique a répondu). Je reçois la réponse la plupart du temps, mais j'ai encore beaucoup de temps à attendre, même le système n'est pas sous charge.

ResultSet a 1000 lignes max, réglage si FetchSize na pas aidé

+0

Juste pour clarifier, vous continuez à mentionner "pilote Java", mais vous avez la question étiqueté avec Spring-Data-Cassandra. Utilisez-vous Spring-Data-Cassandra? – Aaron

+0

Combien de colonnes la table 'ipaddress' a-t-elle? – DineMartine

Répondre

0

Juste curieux, mais combien de lignes CQL sont stockées dans chaque partition ipAddress? Le nombre de colonnes pour chaque ligne augmentera également la taille de l'ensemble de résultats. Essayez votre requête à partir de cqlsh et voyez si vous recevez toujours des délais. Sinon, essayez de limiter votre jeu de résultats en interrogeant une plage de temps finie dans cette partition.

Exemple:

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

Sinon, il est possible que Cassandra Spring données lui-même pourrait être la cause de votre problème. Lors de la recherche de grands ensembles de résultats, Spring Data Cassandra fait un (très inefficace) SELECT COUNT(*) dans les coulisses. Si vous pouvez faire fonctionner cette requête en dehors de Spring-Data-Cassandra, cela pourrait être votre problème. En cas de doute, vous devez toujours utiliser un pilote approuvé par DataStax, ce qui n'est pas le cas de Spring-Data-Cassandra.

+0

Merci pour la réponse. –

+0

Merci pour la réponse. Avec ipAddress = '12 .45.67.89 ', je n'ai plus que 700 lignes. Et même les clolumns ne sont pas si gros. cqlsh fonctionne correctement. Mais frapper le problème avec le pilote Java. cela fonctionne la plupart du temps, mais parfois revenir le temps d'attente. –