2011-06-28 10 views
8

yo estaría thankfull si un usuario sofisticado podría nombrar todas las posibles soluciones (mejores prácticas) cómo solucionar Héctor cliente tiempos de espera de la siguiente manera:Cassandra/Hector Timeouts = ¿Qué hacer?

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:

Tomado de la documentación Hector: https : //github.com/rantav/hector/wiki/User-Guide

me encontré con la siguiente información, relacionada a los tiempos de espera:

1.) cassandraThriftSocketT imeout

CASANDREA:

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

¿Qué otros ajustes

están disponibles en relación con los tiempos de espera tanto en Héctor y en el lado de Cassandra? ¡Tengo tiempo! ¡Así que simplemente quiero esperar más! Pero no he encontrado la configuración para esperar más.

Gracias Markus

+0

Para referencia futura, ¿estaba usando un particionamiento ordenado o aleatorio? Como veo que estabas usando multiget_slice, ¿no asumo que también usaré índices secundarios? – HeyWatchThis

Respuesta

5

De la API cassandra.thrift en el árbol fuente de Apache Cassandra respecto TimeoutException:.

"Se ha superado el tiempo de espera RPC ya sea un nodo fallido mitad de la operación, o la carga era demasiado alto, o la operación solicitada era demasiado grande ".

En resumen, pedía demasiados datos. ¿Qué tipo de consulta estabas enviando? ¿Puedes publicar un fragmento de código de tal?

+0

hello zznate. ¡¡¡Muchísimas gracias por su respuesta!!! Lo que intento hacer es consultar y enviar lotes de 100 Registros/Filas: cada registro tiene alrededor de 15 columnas y el tamaño total en la memoria de cada registro es de aproximadamente 1 KB. Esta es una ridícula baja cantidad de datos. Lo único es que se ejecuta en mi Entorno de Windows Dev y Windows tiene muchas páginas, entonces parece que Cassandra está ocupada. Pero mirando los "registros" de Cassandra (consola de Windows), la recolección de basura está en el rango de milisegundos ... No he visto ninguna información sobre compactaciones en los registros (?) ... Lo intentaré más adelante ... – Markus

+1

Vigile IO y el uso de memoria en combinación con 'nodetool cfstats' (prestando especial atención a "Leer latencia" y "Escribir latencia") y eso le dará más información sobre dónde encontrar el cuello de la botella. Si parece una paginación excesiva, intente rechazar también el tamaño del almacenamiento dinámico y los umbrales de memoria. – zznate