tutorial - La tabla de System.hints de Cassandra está vacía incluso cuando la del nodo está inactiva
curso de cassandra (3)
Estoy aprendiendo Cassandra de academy.datastax.com. Estoy probando la demo de replicación y consistencia en la máquina local. RF = 3 y consistencia = 1.
Cuando mi Node3 está inactivo y estoy actualizando mi tabla usando el comando de actualización, se espera que la tabla SYSTEM.HINTS almacene la pista para node3 pero siempre está vacía.
¿Debo hacer algún cambio de configuración para que las sugerencias funcionen o los valores predeterminados son correctos?
surjanrawat$ ccm node1 nodetool getendpoints mykeyspace mytable 1
127.0.0.3
127.0.0.4
127.0.0.5
surjanrawat$ ccm status
Cluster: ''mycluster''
--------------------
node1: UP
node3: DOWN
node2: UP
node5: UP
node4: UP
cqlsh:mykeyspace> select * from system.hints ;
target_id | hint_id | message_version | mutation
-----------+---------+-----------------+----------
(0 rows)
¿Usó la misma versión exacta de Cassandra para crear el clúster? Desde la versión 3+, las sugerencias se almacenan en el sistema de archivos local del coordinador. Pregunto esto porque me pasó exactamente lo mismo durante esa demostración de Datastax (utilicé 3.0.3 en lugar de 2.1.5) Reprobé los pasos pero con 2.1.5 y las pistas donde estaban en la tabla, tal como se esperaba.
Encontré esta publicación porque me encontré con el mismo problema. Las últimas versiones de cassandra no almacenan las sugerencias en la tabla system.hints. Estoy usando cassandra 3.9 y las pistas están almacenadas en el sistema de archivos.
Está configurado en el archivo cassandra.yaml.
# Directory where Cassandra should store hints.
# If not set, the default directory is $CASSANDRA_HOME/data/hints.
# hints_directory: /var/lib/cassandra/hints
En mi caso, estaba usando ccm y pude encontrar los consejos sobre
${user_home}/.ccm/mycluster/node1/hints
donde mycluster es mi nombre de clúster y node1 es mi nombre de nodo. Espero que esto ayude a alguien.
Para entender por qué no se escriben sugerencias, se necesita una buena comprensión de cómo Cassandra replica los datos .
Un factor de replicación de 2 significa dos copias de cada fila, donde cada copia está en un nodo diferente. Todas las réplicas son igualmente importantes; no hay una réplica primaria o maestra
Con un factor de replicación de 3 y 5 nodos en el clúster, podría perder otro nodo y aún así no almacenar sugerencias porque su estrategia de replicación de datos sigue siendo válida. Intente matar dos nodos más y luego revise la tabla de sugerencias.