UTNianos

Versión completa: [NoSQL] Consulta sobre Consistencia
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Vamos a inaugurar los tags de las electivas que agregué (?)


EN la parte de consistencia no termino de entender, de los parámetros N, R y W, cuál es el sentido de N.
Todo esto aplica a bases de datos distribuidas (vemos particularmente el caso de Mongo, el cual usa replicación Master/Slave)

- R se define como la cantidad de lecturas que tengo que hacer para considerar una lectura como exitosa. Ej si tengo 6 nodos, defino que leo 5 y ya puedo considerar una lectura como exitosa, mas alla de que el otro nodo pueda tener un valor desactualizado.
- W se define como la cantidad de escrituras que tengo que hacer para considerar una escritura exitosa. Si tengo 6 nodos, puedo decir "escribo en 3 y ya lo considero exitoso, que después se replique asíncronamente a los otros nodos/db".

Variar estos parámetros va de la mano con que tan fuerte es la consistencia y la chance de que tenga de tener lecturas inconsistentes o errores por escrituras.


Ahora bien, como juega N con esto ? es la parte que no termino de entender
Según la PPT de NoSQL,

Cita:N es cantidad de réplicas requeridas para considerar una operación exitosa en un cluster.

Lo cual parece algo redundante con lo anterior. Sin embargo mas adelante, dice


Cita:O En el mundo de los sistemas de bases de datos, cada pieza de datos se replica a una cantidad de nodos (N) en un cluster.

N es un parámetro variable, o es el numero de nodos ? NO me termina de quedar claro.
Por otro lado, para meter mas barro, mas adelante dice:

Cita:Ejemplo: Consideremos un cluster con 5 nodos y un valor N de 3 (cantidad de réplicas
mínimas requeridas para considerar la operación exitosa). Los quórums pueden definirse para los momentos de escritura (W) o lectura ®.

Entonces, N es la cantidad de nodos ? o de réplicas set ?

Por otro tercer lado, si yo tengo un Réplica Set con una base primaria + 2 secundarias, y hago un shard de esto.. tengo un nodo ? o tres ? Y si le agrego otro réplica set con la misma estructura, tengo 2 nodos ? o seis? Ahi medio que me marea la nomenclatura. Entiendo que nodo = replica set pero me gustaría asegurarme

No me termina de cerrar como se junta todo esto, lei este link pero pareciera indicar que N no se "setea" a mano sino que surge de R + W (que si los seteas a mano).

Si alguien puede echarme un poco de luz sería genial.

Gracias!
(25-05-2015 13:55)gonnza escribió: [ -> ]EN la parte de consistencia no termino de entender, de los parámetros N, R y W, cuál es el sentido de N.
Todo esto aplica a bases de datos distribuidas (vemos particularmente el caso de Mongo, el cual usa replicación Master/Slave)

- R se define como la cantidad de lecturas que tengo que hacer para considerar una lectura como exitosa. Ej si tengo 6 nodos, defino que leo 5 y ya puedo considerar una lectura como exitosa, mas alla de que el otro nodo pueda tener un valor desactualizado.
- W se define como la cantidad de escrituras que tengo que hacer para considerar una escritura exitosa. Si tengo 6 nodos, puedo decir "escribo en 3 y ya lo considero exitoso, que después se replique asíncronamente a los otros nodos/db".

Variar estos parámetros va de la mano con que tan fuerte es la consistencia y la chance de que tenga de tener lecturas inconsistentes o errores por escrituras.


Ahora bien, como juega N con esto ? es la parte que no termino de entender
Según la PPT de NoSQL,

Cita:N es cantidad de réplicas requeridas para considerar una operación exitosa en un cluster.

Lo cual parece algo redundante con lo anterior. Sin embargo mas adelante, dice


Cita:O En el mundo de los sistemas de bases de datos, cada pieza de datos se replica a una cantidad de nodos (N) en un cluster.

N es un parámetro variable, o es el numero de nodos ? NO me termina de quedar claro.
Por otro lado, para meter mas barro, mas adelante dice:

Cita:Ejemplo: Consideremos un cluster con 5 nodos y un valor N de 3 (cantidad de réplicas
mínimas requeridas para considerar la operación exitosa). Los quórums pueden definirse para los momentos de escritura (W) o lectura ®.

Entonces, N es la cantidad de nodos ? o de réplicas set ?

Los nodos (por así llamarlo 'los servidores') son los servicios levantados del motor.
Las replicas (N) son las copias que se hará de una misma pieza de datos.
Por ejemplo, se puede tener 5 nodos, y una replica de 3 ( N=3 ) . Esto significa que la misma pieza de datos estará replicada en solo 3 nodos de los 5 disponibles.
En clase aclararon(para examen) que no hay que confundir cantidad de nodos con cantidad de replicas.
Por lo expuesto, se cumple N <= #nodos , N=cant de replicas
Si bien generalmente se configurará la cantidad de réplicas con la cantidad de nodos. Una ventaja que veo (es una interpretación mía) es que tenes toda la info en un unico nodo.
La ventaja de N < #nodos , es que en sistemas intensivos la escritura y la lectura de un dato no intervienen todos los nodos disponibles y aumentas la throughput con solo escalar horizontalmente.
Y ahora que lo pienso, quiza con N < #nodos , se puede interpretar como un sharding. Habria que consultarlo.


(25-05-2015 13:55)gonnza escribió: [ -> ]Por otro tercer lado, si yo tengo un Réplica Set con una base primaria + 2 secundarias, y hago un shard de esto.. tengo un nodo ? o tres ? Y si le agrego otro réplica set con la misma estructura, tengo 2 nodos ? o seis? Ahi medio que me marea la nomenclatura. Entiendo que nodo = replica set pero me gustaría asegurarme

No me termina de cerrar como se junta todo esto, lei este link pero pareciera indicar que N no se "setea" a mano sino que surge de R + W (que si los seteas a mano).

Si alguien puede echarme un poco de luz sería genial.

Gracias!
URLs de referencia