OrientDB y Riak
Ian Ramírez España Cervantes - 301566
Alejandro Calixto Montoya - 301607
Obed García Pérez - 301615
Nestor Ivan Rodriguez Zavala - 268668
Daniela Wuotto Flores - 301606
OrientDB
OrientDB es el primer manejador de bases de datos de formato NoSQL, que
además es de código abierto, que combina los mejores aspectos de las gráficas y
la flexibilidad de los documentos para crear una base de datos escalable y de alto
rendimiento.
Características
Velocidad: Es rápido en operaciones de lectura y escritura, es capaz de manejar
hasta 120,000 registros por segundo. Esto gracias a que no hay uniones y las
relaciones son enlaces físicos a los registros y un mejor uso de la RAM.
Flexibilidad: No se necesita el mantenimiento de diferentes productos para cubrir
todas las necesidades.
Se puede usar como un manejador de BD principal, ya que su versión empresarial
brinda:
- Backups incrementales
- Seguridad
- Soporte diario
¿En qué se usa?
Funciona con modelos de gráfico, de documento, clave-valor, geoespacial y
reactivo.
Se usa para administrar diferentes tipos de datos en una base de datos
centralizada.
Arquitectura
La arquitectura permite que el rendimiento no esté limitado a un solo servidor,
además brindando un rendimiento global bastante bueno.
Cuenta con una arquitectura multimaestro fragmentada.
Ventajas
Al poderse usar en la nube, cientos de servidores pueden compartir la carga de
trabajo.
Elimina la necesidad de usar muchos productos y licencias.
Tiene una versión community que es gratis para uso comercial
Esta graph database está considerada como uno de los modelos más rápidos
disponibles actualmente.
¿Qué es Riak?
Riak es una base de datos NoSQL distribuida y escalable horizontalmente. Proporciona
alta disponibilidad, tolerancia a fallos y capacidad de escalar en entornos distribuidos.
Con Riak, las organizaciones pueden manejar grandes volúmenes de datos y asegurar su
disponibilidad incluso en situaciones de fallos de hardware o red.
Características principales de Riak
Escalabilidad horizontal: Riak permite escalar el almacenamiento y el rendimiento agregando más nodos
a la red. Esto significa que puedes manejar grandes cantidades de datos sin afectar el rendimiento de tus
aplicaciones.
Alta disponibilidad: Los datos en Riak se replican automáticamente en múltiples nodos, lo que garantiza
que los datos estén siempre disponibles. Si un nodo falla, los datos se pueden acceder desde otros
nodos sin interrupciones.
Tolerancia a fallos: Riak se ha diseñado para resistir fallos y mantener la integridad de los datos, incluso
en entornos distribuidos. La arquitectura distribuida y las estrategias de replicación de Riak aseguran que
tus datos estén protegidos contra fallos individuales.
Modelado flexible de datos: Riak es una base de datos NoSQL que admite estructuras de datos flexibles y
esquemas dinámicos. Puedes almacenar datos de diferentes tipos y estructuras en el mismo clúster de
Riak, lo que proporciona flexibilidad en el desarrollo de aplicaciones.
¿En qué se usa?
Almacenamiento de datos no estructurados: Riak es ideal para almacenar y recuperar datos no estructurados, como registros,
contenido web y datos de usuario. Puedes almacenar y consultar datos sin preocuparte por el esquema fijo, lo que facilita el
desarrollo y la evolución de tus aplicaciones.
Caché distribuida: Riak puede actuar como una capa de caché distribuida para acelerar el acceso a datos frecuentemente solicitados.
Al mantener los datos en memoria, Riak puede reducir la latencia y mejorar el rendimiento de las aplicaciones.
Aplicaciones en tiempo real: Riak se utiliza en aplicaciones que requieren alta disponibilidad y rendimiento en tiempo real, como
sistemas de mensajería, análisis en tiempo real y aplicaciones de IoT (Internet de las cosas). Riak garantiza que los datos estén
disponibles de forma rápida y confiable, incluso en situaciones de carga pesada.
Arquitectura de Riak
La arquitectura de Riak se basa en un enfoque distribuido y escalable, diseñado para manejar grandes
volúmenes de datos y ofrecer alta disponibilidad. A continuación, se describe la arquitectura básica de
Riak:
● Clúster: Riak se compone de un clúster formado por múltiples nodos interconectados. Cada nodo en
el clúster puede ejecutarse en una máquina separada, lo que permite escalar horizontalmente
añadiendo más nodos según sea necesario.
● Anillo de partición: Los datos almacenados en Riak se distribuyen en un anillo de partición. El anillo
se divide en particiones, y cada partición se asigna a un nodo del clúster. Esta distribución equilibrada
de los datos permite un rendimiento óptimo y una carga equitativa entre los nodos.
● Replicación: Riak utiliza la replicación para garantizar la alta disponibilidad de los datos. Cada
partición se replica automáticamente en múltiples nodos, lo que significa que los datos están
duplicados y disponibles incluso si un nodo falla. La replicación se configura para garantizar un nivel
deseado de durabilidad y tolerancia a fallos.
● Almacenamiento y recuperación: Los datos en Riak se almacenan como pares
clave-valor. Cada valor puede ser un objeto estructurado, como un JSON o un XML,
o datos binarios sin procesar. Riak proporciona operaciones de almacenamiento y
recuperación eficientes para acceder a los datos mediante la clave asociada.
● Consistencia: Riak ofrece opciones flexibles de consistencia para adaptarse a los
requisitos de la aplicación. Puede elegir entre diferentes niveles de consistencia,
como lecturas y escrituras consistentes, o tolerar cierto grado de inconsistencia en
beneficio de una mayor disponibilidad y rendimiento.
● Interfaz de consulta: Riak proporciona una interfaz de consulta flexible para acceder
y manipular los datos. Además del acceso a través de las claves, Riak admite
consultas basadas en índices secundarios y búsqueda de texto completo para
facilitar la recuperación eficiente de los datos.
● Integración con otras tecnologías: Riak se puede integrar con otras herramientas y
tecnologías para ampliar sus capacidades. Por ejemplo, se puede combinar con
frameworks de procesamiento distribuido, como Apache Hadoop, para realizar
análisis de datos a gran escala.
Ventajas de Riak
Escalabilidad: Riak permite el crecimiento horizontal, lo que facilita la administración
de volúmenes de datos en constante expansión.
Alta disponibilidad: La replicación automática garantiza que los datos estén siempre
disponibles, minimizando los tiempos de inactividad.
Tolerancia a fallos: Riak está diseñado para resistir fallos y recuperarse de manera
transparente sin perder datos.
Rendimiento: Riak ofrece un alto rendimiento en operaciones de lectura y escritura, lo
que acelera el tiempo de respuesta de las aplicaciones.