python performance cassandra timeout cql3

python - OperationTimedOut: errors={}, last_host=127.0.0.1



performance cassandra (4)

Estoy usando un solo nodo Cassandra y tengo la intención de ejecutar algunas consultas para verificar el tiempo de respuesta. En algunas consultas, después de 10 segundos de ejecución se me ocurre el siguiente error:

OperationTimedOut: errors = {}, last_host = 127.0.0.1

Entonces ejecuté el siguiente comando:

sudo gedit /usr/bin/cqlsh.py

Y cambió el archivo cqlsh.py :

# cqlsh should run correctly when run out of a Cassandra source tree, # out of an unpacked Cassandra tarball, and after a proper package install. cqlshlibdir = os.path.join(CASSANDRA_PATH, ''pylib'') if os.path.isdir(cqlshlibdir): sys.path.insert(0, cqlshlibdir) from cqlshlib import cql3handling, cqlhandling, pylexotron, sslhandling from cqlshlib.displaying import (ANSI_RESET, BLUE, COLUMN_NAME_COLORS, CYAN, RED, FormattedValue, colorme) from cqlshlib.formatting import (DEFAULT_DATE_FORMAT, DEFAULT_NANOTIME_FORMAT, DEFAULT_TIMESTAMP_FORMAT, DateTimeFormat, format_by_type, format_value_utype, formatter_for) from cqlshlib.tracing import print_trace, print_trace_session from cqlshlib.util import get_file_encoding_bomsize, trim_if_present DEFAULT_HOST = ''127.0.0.1'' DEFAULT_PORT = 9042 DEFAULT_CQLVER = ''3.3.1'' DEFAULT_PROTOCOL_VERSION = 4 DEFAULT_CONNECT_TIMEOUT_SECONDS = 240 DEFAULT_FLOAT_PRECISION = 5 DEFAULT_MAX_TRACE_WAIT = 300

Sin embargo, cuando intento ejecutar de nuevo la consulta, cql devuelve el mismo error después de 10s:

OperationTimedOut: errors = {}, last_host = 127.0.0.1

¿Qué debo hacer para que la consulta no tenga tiempo de respuesta?


¿Estás ejecutando estas consultas en cqlsh?

Si es así, está superando el tiempo de espera de solicitud del cliente (no el tiempo de espera de conexión, ni el tiempo de espera de solicitud de lectura del lado del servidor).

Puede cambiar el tiempo de espera predeterminado configurando uno en ~ / .cassandra / cqlshrc:

[connection] client_timeout = 20 # Can also be set to None to disable: # client_timeout = None

Consulte https://issues.apache.org/jira/browse/CASSANDRA-7516 para obtener más detalles.

Veo por otro comentario que ya estás enterado de paginación. Este será el mejor enfoque, ya que no requiere que marques todo el conjunto de resultados en la memoria en los niveles de datos y aplicaciones.


read_request_timeout_in_ms cambiar el parámetro read_request_timeout_in_ms en el archivo cassandra.yaml . Y luego reinicia a Cassandra.


Verá un puñado de respuestas que le indican cómo aumentar los tiempos de espera, pero la respuesta real es que casi nunca desea aumentar esos tiempos de espera, porque si tiene un conjunto de datos real, matará a su servidor (o eliminará solicitudes). / mutaciones) con muchas consultas de larga ejecución. Es mejor utilizar paginación y más consultas de ejecución corta que consultas de larga duración.


La última versión de cassandra te permite especificar el tiempo de espera de cqlsh cuando lo usas, en lugar de tener que editar tu archivo cqlshrc.

cqlsh --request-timeout <your-timeout>