2011-06-28 5 views
8

je serais thankfull si un utilisateur sophistiqué pourrait nommer toutes les solutions possibles (meilleures pratiques) comment fixer Hector client Timeouts comme ceci:Cassandra/Hector Timeouts = Que faire?

Caused by: me.prettyprint.hector.api.exceptions.HTimedOutException: TimedOutException() 


Caused by: TimedOutException() 
    at org.apache.cassandra.thrift.Cassandra$multiget_slice_result.read(Cassandra.java:9628) 
    at org.apache.cassandra.thrift.Cassandra$Client.recv_multiget_slice(Cassandra.java:636) 
    at org.apache.cassandra.thrift.Cassandra$Client.multiget_slice(Cassandra.java:608) 
    at me.prettyprint.cassandra.service.KeyspaceServiceImpl$10.execute(KeyspaceServiceImpl.java:388) 
    ... 21 more 

HECTOR:

Tiré de la documentation Hector: https : //github.com/rantav/hector/wiki/User-Guide

J'ai trouvé les points suivants liés à temporisations:

1.) cassandraThriftSocketT imeout

CASSANDRE:

1.) rpc_timeout_in_ms: 10000 (en cassandra.yaml)

Quels sont les autres paramètres sont disponibles liés à la fois les délais d'attente sur Hector et sur le côté Cassandra? J'ai du temps! Donc je veux simplement attendre plus longtemps! Mais je n'ai pas trouvé les paramètres pour attendre plus longtemps.

Merci Markus

+0

Pour référence future, utilisiez-vous un partitionnement ordonné ou aléatoire? Puisque je vois que vous utilisiez multiget_slice, alors je suppose qu'il n'y a pas non plus d'utilisation d'index secondaires? – HeyWatchThis

Répondre

5

De l'API cassandra.thrift dans l'arbre source Cassandra Apache en ce qui concerne TimeoutException.

« délai d'attente RPC a été dépassé, soit une mi-opération a échoué noeud, ou la charge était trop élevé, ou l'opération demandée était trop grande. "

En bref, vous demandiez trop de données. Quel genre de requête envoyez-vous? Pouvez-vous poster un extrait de code de tel?

+0

bonjour zznate. Merci beaucoup pour votre réponse!!! Ce que j'essaie de faire est d'interroger et d'envoyer des lots de 100 enregistrements/lignes: Chaque enregistrement a environ 15 colonnes et la taille totale en mémoire de chaque enregistrement est d'environ 1 Ko. C'est un bas niveau de données ridicule. La seule chose est, il fonctionne sur mon environnement Windows Dev et Windows fait beaucoup de pagination, il semble donc, Cassandra est juste occupé. Mais en regardant les "logs" de Cassandra (console windows), la Garbage Collection est dans la gamme des millisecons ... Je n'ai vu aucune information sur les compactions dans les logs (?) ... Je vais essayer plus loin ... – Markus

+1

Gardez un oeil sur les IO et l'utilisation de la mémoire en combinaison avec 'nodetool cfstats' (en accordant une attention particulière à "Read Latency" et "Write Latency") et cela devrait vous donner plus d'informations sur où trouver le goulot. Si cela semble être une pagination excessive, essayez de réduire la taille du tas et les seuils de mémtable. – zznate