Problema de replicación de datos de Cassandra
Tengo un clúster cassandra de 2 nodos con un factor de replicación de 2 y AutoBootStrap = true. Todo está bien durante el inicio y ambos nodos se ven. Llamemos a estos nodos A y B.
Agregue un conjunto de claves y columnas (llamemos a este conjunto K1) a cassandra a través del nodo A.Conéctese al nodo A y vuelva a leer el conjunto K1. Lo mismo en el nodo B. Éxito: buenoMata el proceso de Cassandra en el Nodo B.Agregue el conjunto K2 a A.Conéctese al nodo A y lea el conjunto K2. BuenoReinicie el proceso de Cassandra en el Nodo B.Intente leer todas las teclas de B ... configure K1 presente, configure K2 FALTA. (Incluso después de 30 minutos)Agregue K3 a A / B.Lea todas las claves de A - devuelve el conjunto K1, K2, K3Lea todas las claves de B: devuelve el conjunto K1, K3.B nunca sincroniza el conjunto K2 ... (Han pasado más de 12 horas) ¿Por qué el nodo B no ve el conjunto K2 ... alguien tiene alguna idea?
Información agregada :
Ok ... este era el problema. Read_consistency_level se estableció en 1 de forma predeterminada.
Entonces, cuando le preguntamos al nodo B por el conjunto K2, y no lo tiene (cuando se supone debido al factor de replicación = 2), inmediatamente regresa con un error 'No encontrado'.
Sin embargo, si usamos la consistencia de lectura para QUORUM o ALL, B se ve obligado a preguntar a A, que luego devuelve el valor correcto y B sincroniza esa clave (la guarda localmente).
Esto lleva a otro problema: esto significa que cuando aparece el nodo B, no está sincronizando todos los datos del Nodo A, incluso después de mucho tiempo. Ahora, si el nodo A se cae, ¿cómo podemos acceder a esos datos no sincronizados? (Acabo de probar que no podemos)
Supongo que debe haber una forma de forzar la sincronización de los datos. Veo la INFO en la salida del terminal de que se produjo una transferencia indirecta de 15 filas de A a B cuando apareció B, pero B no tiene esas filas localmente (porque todavía no podemos leerlo desde B con un nivel de consistencia UNO). ¿Que está pasando aqui?