RavenDB
Base de datos NoSQL de código abierto orientada a documentos De Wikipedia, la enciclopedia libre
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]
RavenDB | ||
---|---|---|
Información general | ||
Tipo de programa | Base de datos documental, NoSQL | |
Autor | Oren Eini (también conocido como Ayende Rahien) | |
Desarrollador | Hibernating Rhinos[1] | |
Modelo de desarrollo | Código abierto | |
Lanzamiento inicial | 2010[2] | |
Licencia | GNU AGPL v3.0 | |
Información técnica | ||
Programado en | C# | |
Versiones | ||
Última versión estable | 7.0.127 de marzo de 2025 | |
Última versión en pruebas | 5.0 / julio de 2020[3] (24 de julio de 2020 (4 años, 8 meses y 16 días)) | |
Historial de versiones | 1.0, 2.0, 2.5, 3.0, 3.5, 4.0, 4.1, 4.2, 5.0 | |
Enlaces | ||
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]
Historial de versiones
Versión | Fecha | Funciones agregadas (lista parcial) | Compatible? |
---|---|---|---|
1.0 | mayo de 2010[2] | ![]() | |
2.0 | enero de 2013[19] | Replicación[20][21] | ![]() |
2.5 | junio de 2013[22] | Proyecciones; consulta por facetas[20] | ![]() |
3.0 | noviembre de 2014[23] | API de Java; Motor de almacenamiento Voron[24][25] | ![]() |
3.5 | octubre de 2016[26] | Soporte de clúster de alta disponibilidad[26] | ![]() |
4.0 | febrero de 2018[27] | Soporte de multiplataforma; disponibilidad con una licencia gratuita[28] | ![]() |
4.1 | agosto de 2018[29] | Transacciones a nivel de clúster[16][29] | ![]() |
4.2 | mayo de 2019[30] | Consultas en grafos[16] | ![]() |
5.0 | julio de 2020[3] | Series temporales;[31] Compresión de datos mediante el algoritmo Zstd[32] | ![]() |
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]
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]
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.