paint-brush
Consistencia eventual vs fuerte en bases de datos distribuidaspor@saurabhgiv
111,208 lecturas
111,208 lecturas

Consistencia eventual vs fuerte en bases de datos distribuidas

por Saurabh.v2017/07/16
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

La explicación de este tema comienza con una analogía, tomando un ejemplo de la vida real para entender mejor el concepto.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Consistencia eventual vs fuerte en bases de datos distribuidas
Saurabh.v HackerNoon profile picture

La explicación de este tema comienza con una analogía, tomando un ejemplo de la vida real para entender mejor el concepto.

Tengo la costumbre de escribir algo que llamo Notas técnicas en mi computadora portátil todos los días para resumir los conceptos técnicos que aprendo. Me ayuda a recordarlos de una manera más fácil cuando quiero.

Pero a veces solía preocuparme de que me robaran mi computadora portátil o si fallaba. En respuesta al temor de perder Tech Notes , comencé a hacer una copia de seguridad en mi disco duro externo. Para reducir aún más la posibilidad de perderlos, también compré una suscripción de Dropbox.

Modelo Maestro-Esclavo (Imagen cortesía: Dropbox , Apple , Seagate )

Cada quince días, actualizo mi disco duro externo con notas técnicas revisadas y recién escritas, y Dropbox se actualiza tan pronto como conecto mi computadora portátil a Internet.

Aquí, estoy usando el disco duro y Dropbox como fuente para leer notas técnicas mientras se usa la computadora portátil para leerlas y escribirlas. (Modelo Maestro-Esclavo)

La redundancia introduce la confiabilidad.

Ahora vayamos al grano.

Caso 1: Consistencia Eventual

Cada vez que usamos múltiples réplicas de una base de datos para almacenar datos y digamos que llega una solicitud de escritura a una de las réplicas. En tal situación, las bases de datos tuvieron que descubrir una estrategia para hacer que esta solicitud de escritura en una réplica llegara a otras réplicas para que todas pudieran escribir datos de la solicitud y volverse consistentes.

La coherencia aquí significa que una solicitud de lectura de una entidad realizada en cualquiera de los nodos de la base de datos debe devolver los mismos datos.

La consistencia eventual asegura que los datos de cada nodo de la base de datos sean consistentes eventualmente. El tiempo que tardan los nodos de la base de datos en volverse consistentes puede o no estar definido.


La consistencia de los datos eventualmente significa que las actualizaciones tardarán en llegar a otras réplicas. ¿Y qué? Esto implica que si alguien lee de una réplica que aún no está actualizada (ya que las réplicas se actualizan eventualmente), entonces puede devolver datos obsoletos.

My Hard Disk también conserva los datos obsoletos durante un período de 15 días, ya que se actualiza quincenalmente. Supongamos que John, mi amigo, viene después de unos días de actualización y me pide mi disco duro.



John: Quiero que su disco duro lea sus notas técnicas. Yo: Claro, por qué no. Pero no se ha actualizado desde los últimos días. Juan: Estoy bien con eso.

Ahora el disco duro se suministró a John inmediatamente (baja latencia) a riesgo de tener datos obsoletos en él. Pero estoy seguro del hecho de que se actualizará cuando comience la próxima quincena.

La consistencia eventual ofrece baja latencia a riesgo de devolver datos obsoletos

Mientras que por otro lado, tenemos algo conocido como Consistencia Fuerte.

Caso 2: consistencia fuerte


Dice que los datos se pasarán a todas las réplicas tan pronto como llegue una solicitud de escritura a una de las réplicas de la base de datos. Pero durante el tiempo que estas réplicas se actualizan con nuevos datos, la respuesta a cualquier solicitud de lectura/escritura posterior de las réplicas se retrasará ya que todas las réplicas están ocupadas manteniendo la coherencia entre sí.

Tan pronto como se vuelven consistentes, comienzan a atender las solicitudes que han llegado a su puerta.

Nada es gratis.

Esta vez viene mi amiga Veronica y me pide mis notas técnicas.





Veronica: Quiero sus últimas notas técnicas. Yo: Claro, por qué no. Compartiré un enlace de Dropbox con usted. Pero Veronica, acceda a él después de unos minutos, ya que he escrito una nueva nota técnica en la computadora portátil que se sincronizará con mi cuenta de Dropbox en 2 a 3 minutos.

Ahora Veronica pudo acceder a las Notas técnicas actualizadas, pero después de unos minutos de retraso.

Conclusión

  • Strong Consistency ofrece datos actualizados pero a costa de una alta latencia .
  • Si bien la coherencia eventual ofrece una latencia baja , puede responder a las solicitudes de lectura con datos obsoletos, ya que es posible que todos los nodos de la base de datos no tengan los datos actualizados.

Presione el botón ♥ si le gustó el artículo para que otros usuarios de Medium puedan encontrarlo y leerlo también.