replication - sobre - ¿Cuáles son las implicaciones de R+W> N para los grupos de Cassandra?
series de netflix pdf (2)
El problema básico que estamos tratando de resolver es este:
¿Puede ocurrir una situación en la que una lectura no devuelva el valor más actualizado?
Obviamente, esto es mejor evitarlo si es posible!
Si R + W <= N, entonces esta situación puede ocurrir.
Una escritura podría enviar un nuevo valor a un grupo de nodos, mientras que una lectura posterior podría leer un grupo de nodos completamente separado y, por lo tanto, perder el nuevo valor escrito.
Si R + W> N, se garantiza que esta situación no se producirá.
Hay nodos que pueden contener el valor. A escriba contactos al menos W nodos: coloque una etiqueta de "escritura" en cada uno de estos. En una lectura posterior, los contactos al menos en los nodos R: coloque una etiqueta de "lectura" en cada uno de estos. Hay pegatinas R + W pero solo N nodos, por lo que al menos un nodo debe tener ambas pegatinas. Es decir, al menos un nodo participa tanto en la lectura como en la escritura, por lo que puede devolver la última escritura a la operación de lectura.
R + W >> N es imposible.
El número máximo de nodos que puede leer o escribir en N es el N (el factor de replicación, por definición). Así que lo máximo que podemos tener es R = N y W = N, es decir, R + W = 2N. Esto corresponde a la lectura y escritura en ConsistencyLevel ALL. Es decir, simplemente escribe en todos los nodos y lee de todos los nodos, no sucede nada sofisticado.
Esta introducción a Cassandra Replication and Consistency (diapositivas 14-15) afirma audazmente:
R+W>N
garantiza la superposición de quórumes de lectura y escritura.Por favor, imagine que esta desigualdad tiene colmillos enormes, llenos de sangre de desarrolladores empresariales inocentes para que pueda apreciar mejor el terror que inspira.
Entiendo que tener la suma de los niveles de consistencia de lectura y escritura (R + W) mayores que el factor de replicación (N) es una buena idea ... pero ¿cuál es el problema?
¿Cuáles son las implicaciones y cómo se compara R + W> N con las alternativas?
- R + W <N
- R + W = N
- R + W >> N
La escritura de quórum y la lectura de quórum permiten detectar valores obsoletos en un sistema de replicación sin líder.
Por ejemplo, tenemos 3 replicadores A, B, C (N = 3). C está inactivo durante una actualización de usuario. La actualización se acepta tanto en A como en B (Escritura = 2).
Cuando el usuario lee el valor, C regresa. Es posible leer un valor obsoleto en C. Para detectar el valor obsoleto, el usuario también leerá desde B (Lectura = 2).
Cuando el usuario recibe actualizaciones de B y C, se puede usar un número de versión para determinar qué valor es más nuevo (B tiene un número de versión más reciente).
En este escenario, donde Write = 2, Read = 2, N = 3, R + W> 3, estamos seguros de que se puede detectar cualquier valor antiguo.
Para R + W = 3, es posible haber escrito en A y B, pero solo leer desde C. En este caso, no podemos detectar el valor obsoleto.