cassandra - paralelos - ley de gustafson pdf
¿Cuándo Cassandra golpea la ley de Amdahl? (1)
Intento entender las afirmaciones de que Cassandra se escala linealmente con la cantidad de nodos. En una rápida mirada alrededor de la red, no he visto mucho de un tratamiento de este tema. Seguramente hay elementos de procesamiento serial en Cassandra que deben limitar la velocidad ganada a medida que N aumenta. Cualquier pensamiento, punteros o enlaces sobre este tema sería apreciado.
Editar para proporcionar perspectiva:
Estoy trabajando en un proyecto que tiene una solicitud actual para una infraestructura Cassandra de más de 1.000 nodos. No vine con esta especificación. Me encuentro proponiendo que N se reduzca a un rango entre 200 y 500, siendo cada nodo al menos dos veces más rápido para el cómputo en serie. Esto es fácil de lograr sin una penalización de costo por nodo al realizar cambios simples en la configuración del servidor.
La escala de Cassandra se describe mejor en términos de la ley de Gustafson , en lugar de la ley de Amdahl . La escala de Gustafson analiza la cantidad de datos que puede procesar a medida que aumenta la cantidad de nodos. Es decir, si tiene N veces más nodos, puede procesar un conjunto de datos N veces más grande en la misma cantidad de tiempo.
Esto es posible porque Cassandra usa muy poca coordinación en todo el clúster, a excepción de los cambios de esquema y anillo. La mayoría de las operaciones solo involucran una cantidad de nodos igual al factor de replicación, que se mantiene constante a medida que el conjunto de datos crece, por lo tanto, se reduce casi linealmente.
Por el contrario, la escala de Amdahl analiza cuánto más rápido puede procesar un conjunto de datos fijo a medida que aumenta la cantidad de nodos. Es decir, si tiene N veces más nodos, ¿puede procesar el mismo conjunto de datos N veces más rápido?
Claramente, en algún momento alcanzas un límite en el que agregar más nodos no hace que tus solicitudes sean más rápidas, porque hay una cantidad mínima de tiempo necesaria para atender una solicitud. Cassandra no es lineal aquí.
En tu caso, parece que estás preguntando si es mejor tener 1,000 nodos lentos o 200 rápidos. ¿Qué tan grande es tu conjunto de datos? Depende de su carga de trabajo, pero la recomendación habitual es que el tamaño óptimo de los nodos sea de alrededor de 1TB de datos cada uno, asegurándose de que tenga suficiente RAM y CPU para que coincida (consulte las limitaciones del nodo Cassandra ). 1,000 suena como demasiados, a menos que tenga petabytes de datos.