Top Qs
Línea de tiempo
Chat
Contexto

RavenDB

Base de datos NoSQL de código abierto orientada a documentos De Wikipedia, la enciclopedia libre

Remove ads

RavenDB es una base de datos documental de código abierto con soporte transaccional nativo escrita íntegramente en C# y desarrollada por Hibernating Rhinos Ltd.[4][5][6][1][7] Es una base de datos multiplataforma compatible con Windows, Linux y MacOS. RavenDB almacena datos como documentos JSON y soporta clústeres distribuidos con replicación maestro-maestro.[4][6]

Datos rápidos Información general, Tipo de programa ...
Remove ads

Historia

Originalmente llamada “Rhino DivanDB”,[4][8] RavenDB comenzó como un proyecto de Oren Eini en 2008[9] y fue desarrollado por Hibernating Rhinos Ltd.[1][10] La empresa afirma que fue la primera base de datos de documentos que se ejecutó de forma nativa en el Framework .NET.[11][12][5][13] Fue una de las primeras bases de datos de documentos en ofrecer garantías transaccionales (ACID).[6][13][14]

En 2019, Hibernating Rhinos comenzó a ofrecer RavenDB como un servicio en la nube llamado RavenDB Cloud.[15][16][17][18]

Remove ads

Historial de versiones

Más información Versión, Fecha ...
Remove ads

Arquitectura del sistema

Los datos se almacenan como documentos sin esquema en formato JSON.[4][8][5][20][21][7] A nivel de almacenamiento, los documentos se escriben en un formato binario nativo llamado "blittable".[33] Los documentos se agrupan en colecciones, y cada documento pertenece exactamente a una colección.[20][21]

Las bases de datos se pueden implementar en un clúster distribuido de servidores (llamados "nodos") mediante replicación multimaestro.[4][6] Algunas operaciones a nivel de clúster requieren el consenso de la mayoría de los nodos; el consenso se determina mediante una implementación del algoritmo Raft llamado Rachis.[4] Las tareas se distribuyen a los diferentes nodos de forma equilibrada.[4][34]

RavenDB utilizó originalmente el motor de almacenamiento Esent.[8][9][21] La versión 3.0 lo reemplazó con un nuevo motor de almacenamiento de código abierto llamado Voron.[24][25]

Los clientes son compatibles con C#, C++, Java, Node.js, Python, Ruby y Go.[6]

Principales características

  • Transacciones ACID en todo el clúster: las transacciones ACID se pueden ejecutar en el alcance de un clúster (además de las transacciones de un solo nodo). La transacción solo se mantendrá si es confirmada por un consenso de nodos; de lo contrario, la transacción se cancela y se revierte.[4][16]

Índices y consultas

Las consultas se expresan en LINQ o con un lenguaje de consulta propietario llamado RQL (siglas de Raven Query Language) que tiene una sintaxis similar a SQL.[4][5][6]

  • Índices dinámicos: en RavenDB, las consultas solo pueden satisfacerse mediante un índice; si no existe un índice apropiado, se crea un nuevo índice para satisfacer la consulta.[4][12][35][20][21][7]
  • Consultas de grafos: los documentos relacionados se pueden tratar como vértices en un grafo, y las conexiones se tratan como bordes. Esto permite entre otras cosas crear consultas recursivas.[36][37][38]
  • Proyecciones: los índices se pueden configurar para transformar datos indexados, realizar cálculos, realizar agregaciones y ejecutar código javascript en el lado del servidor.[4][6][39]
  • Búsqueda de texto completo: en un nivel bajo, los datos se indexan con Lucene.net, lo que significa que los índices admiten la búsqueda de texto completo.[4][14][20][21][40][41]
Remove ads

Extensiones de documentos

Los documentos se pueden ampliar con otros tipos de datos menos adecuados para JSON. Estas extensiones se pueden cargar, modificar y almacenar en forma independiente del documento.[42]

  • Archivos adjuntos: los documentos pueden tener varios archivos adjuntos de cualquier tipo de datos, como imágenes, audio o binario puro.[35]
  • Series de tiempo: datos numéricos asociados con tiempos específicos y ordenados cronológicamente.[32][31]
Remove ads

Nube de RavenDB

RavenDB Cloud es una base de datos administrada como servicio lanzada en 2019 en AWS, Azure y Google Compute Platform. El servicio realiza tareas de administración como mantenimiento de hardware y seguridad para los usuarios. Cuenta con el uso compartido de recursos de CPU entre los diferentes nodos en un clúster para limitar la sobrecarga.[16][17][18][43]

Licencia

RavenDB es de código abierto bajo una licencia AGPLv3.[4] Está disponible con una licencia gratuita y una licencia comercial.

Referencias

Enlaces externos

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads