2012-10-10 28 views
7

¿Tiene el aumento de factor de replicación en un clúster también aumentar la velocidad de lectura?Cassandra: factor de replicación mayor = lecturas más rápidas?

Entiendo que cuando el factor de replicación es 1, y hay 6 nodos y los tokens se distribuyen por igual, entonces es solo 16,66% de probabilidad de que un nodo dado tenga los datos, si no los tiene, le pregunta al nodo responsable y eso lleva tiempo extra.

supongo que con factor de replicación ajustado a 6, cada nodo tiene el conjunto de datos completo y se puede obtener los datos inmediatamente sin pedir otros nodos (estamos utilizando leer consistencia = 1). Por lo tanto, aumentar el factor de replicación debería aumentar la velocidad de lectura. ¿Es esto correcto?

Nuestra aplicación tiene relativamente pocas las escrituras, pero las operaciones de más de 10k get() por segundo. Tenemos 6 nodos en el clúster y necesitamos que todas las operaciones de lectura sean extremadamente rápidas, es por eso que estamos buscando una forma de mejorar el rendimiento de lectura de Cassandra.

Respuesta

4

Eso es correcto, siempre y cuando se está utilizando ConsistencyLevel.ONE.

+0

¿Puede dar alguna referencia para esto. Parece contradecir mi intuición. Hasta donde yo sé, las lecturas se envían a * todas * réplicas, sin importar el nivel de consistencia que se use. – user1202136

+0

@ user1202136 Me doy cuenta de que esta es una publicación anterior, pero solo para evitar confusiones para cualquiera que lea esto ... La consistencia de escritura y lectura se puede sintonizar en Cassandra. Aquí hay una sección completa sobre la coherencia de lectura http://www.datastax.com/documentation/cassandra/2.0/cassandra/dml/dmlClientRequestsRead.html –

4

que realmente ejecute el ycsb benchmarks- valor del 100% y el 100% Lectura- para probar esto. Aumentar el factor de replicación parece estar causando lecturas más lentas mientras el nivel de coherencia se mantiene en uno.

En un clúster 8 nodo aquí son los números que estoy recibiendo:

16 millones de operaciones de lectura-ycsb carga de trabajo C

rep.factor _ ReadTime (min)

1 _ 10,8840833333333

2 _ 11,1243666666667

4 _ 17,4050333333333

Para mayores tamaños, el salto es aún mayor.

¿Alguien puede explicar por qué?

+0

Si entendí Cassandra correctamente, lee y escribe para ir a * todas * réplicas, no importa qué el nivel de consistencia es. Por lo tanto, aumentar el factor de replicación debería aumentar la carga en los nodos. En realidad, me sorprende que duplicar el factor de replicación no duplique la hora de lectura. – user1202136

+0

@ user1202136 las lecturas y escrituras irán a todas las réplicas solo si las consistencias respectivas se establecen en el número de réplicas, es decir, el factor de replicación. Por defecto, solo leerá desde una única réplica. –

+0

@adarshhegde Tienes razón. Releí la documentación y otras réplicas solo se contactan como parte de la reparación de lectura con una probabilidad menor, por defecto 0.1. Por lo tanto, en promedio, más réplicas son parte de la lectura que el nivel de consistencia, pero, en promedio, no se contactan todas. http://docs.datastax.com/es/cassandra/1.2/cassandra/architecture/architectureClientRequestsRead_c.html – user1202136

Cuestiones relacionadas