Mostrando las entradas con la etiqueta riak. Mostrar todas las entradas
Mostrando las entradas con la etiqueta riak. Mostrar todas las entradas

domingo, 12 de mayo de 2019

Anti-Entropia, Reparación y Arboles de Merkle en Cassandra



Cassandra utiliza un protocolo anti-entropico, que es un tipo de protocolo gossip para reparación de replicas de datos. Los protocolos anti-entropicos funcionan por medio de comparación de las diferentes replicas de datos y conciliando las diferencias entre las replicas. Los protocolos anti-entropicos son usados por muchas bases de datos noSql como Amazon’s Dynamo.

La sincronización de réplicas se admite a través de dos modos diferentes conocidos como reparación de lectura y reparación anti-entropía. La reparación de lectura se refiere a la sincronización de las réplicas a medida que se leen los datos. Cassandra lee los datos de varias réplicas para alcanzar el nivel de consistencia solicitado y detecta si alguna réplica tiene valores desactualizados. Si un número insuficiente de nodos tiene el último valor, se realiza una reparación de lectura inmediatamente para actualizar las réplicas desactualizadas. De lo contrario, las reparaciones se pueden realizar en segundo plano después de las devoluciones de lectura. Esta funcionalidad no es solo de Cassandra, también es utilizada en bases noSql clave/valor como Voldemort y Riak.

La reparación anti-entropica (a veces llamada reparación manual) es una operación iniciada manualmente en nodos como parte de un proceso de mantenimiento regular. Este tipo de reparación se ejecuta mediante una herramienta llamada nodetool. La ejecución de la reparación de nodetool hace que Cassandra ejecute una compactación principal. Durante una compactación principal, el servidor inicia una conversación TreeRequest / TreeReponse para intercambiar árboles Merkle con nodos vecinos. El árbol Merkle es un hash que representa los datos en esa tabla. Si los árboles de los diferentes nodos no coinciden, deben ser reconciliados (o "reparados") para determinar los valores de datos más recientes en los que se deben configurar. Esta validación de comparación de árbol es responsabilidad de la clase org.apache.cassandra.service.AbstractReadExecutor.

Los arboles de Merkle son utilizados por Cassandra y Dynamo para conciliar los datos de diferentes nodos, su nombre se debe a su inventor Ralph Merkle y se lo conoce tambien como “hash tree.” En cassandra esto se implementa con la clase org.apache.cassandra.utils.MerkleTree.

Tanto Cassandra y Dynamo utilizan arboles hash como un protocolo anti-entropico pero su implementación es un tanto diferente. En Cassandra cada tabla tiene su propio arbol, y esto es construido como un snapshot o fotografía en el momento de una compactación principal y se mantiene solo el tiempo necesario para enviarlo a los nodos vecinos en el anillo. La ventaja de esta implementación es que reduce la entrada/salida de la red.


miércoles, 24 de julio de 2013

NoSQL Database Adoption Trends

InfoQ se le ocurrió una gran idea hacer una encuesta sobre bases de datos NoSQL y ya tiempo ha pasado desde que las bases NoSQL se convirtieron de una moda a algo de todos los días. InfoQ organizo la encuesta como una matriz de 2 dimensiones: propósito y adopción. Eso esta bueno, una base puede ser fácil de adoptar pero la mejora no es significativa.

Por ahorra va ganando MongoDB en adopción y Redis en propósito.

A votar!

 http://www.infoq.com/research/nosql-databases?utm_source=infoqEmail&utm_medium=WeeklyNL_ResearchContent&utm_campaign=072313news


jueves, 20 de diciembre de 2012

7 base de datos en 7 días



Se acuerdan que hable de un libro muy bueno llamado 7 lenguajes en 7 días, bueno Eric Redmond y Jim R. Wilson lanzaron un nuevo libro llamado 7 base de datos en 7 días. En el recorre base de datos relacionales y NoSQL. Las bases que se muestran son Redis, Neo4J, CouchDB, MongoDB, HBase, Riak, y Postgres. La idea es no saber todas, pero si sus particularidades y porque elegir una o la otra.

Dejo el link:
http://pragprog.com/book/rwdata/seven-databases-in-seven-weeks

martes, 26 de junio de 2012

Riak, una base NoSQL key-value de código abierto que se las trae...


Riak es una base NoSQL key-value de código abierto. Riak es escalable y  simplifica el desarrollo, dando a los usuarios la capacidad de formar rápidamente prototipos, probar y desplegar sus aplicaciones.


Riak es una base de datos distribuida diseñada para:

  • Disponibilidad: Riak réplicas y recupera los datos de forma inteligente para que esté disponible para la lectura y escritura, incluso en condiciones de fallo;
  • Tolerancia a fallos: se puede perder el acceso a muchos nodos de la red debido a anomalías en la partición o el hardware y no perder nunca de datos;
  • Simplicidad operacional: se puede añadir nuevas máquinas al clúster Riak fácilmente sin necesidad de incurrir en una mayor carga operativa - las mismas tareas operaciones se aplican a grupos pequeños como grandes grupos;
  • Escalabilidad: Riak distribuye automáticamente los datos de todo el grupo y se obtiene un aumento de rendimiento casi lineal a medida que agrega la capacidad.
Dejo link: