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]
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
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
Í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]
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
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads