Utilisateur:SequoiaStat/Brouillon
Développé par | Hibernating Rhinos |
---|---|
Première version | |
Dernière version | 4.2 () |
Dépôt | SequoiaStat/Brouillon sur GitHub |
État du projet | en développement actif |
Écrit en | C# |
Type | Base de données orientée documents |
Licence | GNU AGPL v3.0 |
Site web | ravendb.net / hibernatingrhinos.com |
Chronologie des versions
RavenDB est une base de données open-source entièrement ACID orientée documents, écrite en C#, développée par Hibernating Rhinos Ltd.[1],[2],[3],[4],[5],[6],[7] Elle est multiplateforme, prise en charge par Windows, Linux et Mac OS.[1] RavenDB stocke les données sous forme de documents JSON et peut être déployée dans des clusters distribués avec réplication multi-maître.
Historique
modifierInitialement nommé «Rhino DivanDB»[1],[8], le projet RavenDB de Oren Eini (alias Ayende Rahien)[9],[10] a été lancé en 2008 et développé par Hibernating Rhinos Ltd.[5] La société affirme qu'elle a été la première base de données sur les documents à s'exécuter nativement sur le .NET framework.[11],[12],[3],[13] Elle a été la première base de données de documents ACID.[4],[13],[14]
En 2019, Hibernating Rhinos a commencé à proposer RavenDB comme service cloud nommé RavenDB Cloud.[15],[16],[17]
Historique des versions
modifierVersion | Date | Fonctionnalités ajoutées (liste partielle) |
---|---|---|
1.0 | Mai 2010[18] | |
2.0 | Janvier 2013[19] | Réplication[20],[21] |
2.5 | Juin 2013[22] | Projections; recherche facettée[20] |
3.0 | Novembre 2014[23] | Java API; Voron storage engine[24],[25] |
3.5 | Octobre 2016[26] | Clustering[26] |
4.0 | Février 2018[27] | Devenu multiplateforme; disponible avec une licence gratuite[28] |
4.1 | Août 2018[29] | Transactions à l'échelle du cluster[15],[29] |
4.2 | Mai 2019[30] | Interrogation de graphes[15] |
- Rouge : Non pris en charge
- Vert : Pris en charge
Architecture du système
modifierLes données sont stockées au format JSON sous forme de documents sans schéma.[1],[8],[3],[31],[20],[21],[7] Au niveau du stockage, les documents sont écrits dans un format binaire appelé "blittable".[32] Les documents sont regroupés en collections, chaque document ayant exactement une collection.[20],[21]
Intérieur RDB4
modifierLes bases de données peuvent être déployées sur un cluster distribué de serveurs (appelés «nœuds») au moyen de la réplication multi-maître.[1],[4] Certaines opérations au niveau du cluster nécessitent le consensus d'une majorité de nœuds; le consensus est déterminé en utilisant une implémentation de l'algorithme Raft appelé Rachis.[1] Les tâches sont réparties entre les différents nœuds de manière équilibrée[1],[33].
Les versions 1.0 à 3.5 prenaient en charge le sharding, mais pas les versions 4.0+[1],[3],[4],[20],[21].
A l'origine, RavenDB utilisait le moteur de stockage Esent[8],[9],[21]. La version 3.0 a introduit Voron, un moteur de stockage personnalisé supplémentaire.[24],[25]
Les clients sont pris en charge pour C#, C++, Java, NodeJS, Python, Ruby et Go.[4]
Caractéristiques principales
modifier- Transactions ACID à l'échelle du cluster - Les transactions ACID peuvent être exécutées dans le champ d'un cluster (en plus des transactions à nœud unique). La transaction ne sera enregistrée que si elle est confirmée par un consensus de nœuds ; dans le cas contraire, la transaction sera annulée irréversiblement.[1],[15]
- Compteurs distribués[34],[35]
Index et interrogation
modifierLes requêtes sont exprimées en LINQ ou avec un langage de requête personnalisé nommé RQL (pour Raven Query Language) avec une syntaxe similaire à SQL.[1],[3],[4]
- Index dynamiques - dans RavenDB, une réponse peut être donnée à la requête uniquement par un index ; si aucun index approprié n'existe, un nouvel index est créé pour satisfaire la requête.[1],[12],[36],[20],[21],[7]
- Requête de graphes - les documents liés peuvent être traités comme des vertex dans un graphe, avec les connexions traitées comme des liens. Cela permet de créer des requêtes récursives.[34],[35],[37]
- Projection - les index peuvent être configurés pour transformer les données indexées, effectuer des calculs, effectuer des agrégations et exécuter du code javascript côté serveur.[1],[4],[38]
- Recherche de texte intégral - à bas niveau, les données sont indexées avec Lucene.net, ce qui signifie que les index prennent en charge la recherche de texte intégral.[1],[14],[20],[21],[39],[40]
RavenDB Cloud
modifierRavenDB Cloud, lancée en 2019 sur AWS, Azure et GCP, est une base de données gérée en tant que service. Le service effectue des tâches administratives telles que la maintenance du matériel et la sécurité des utilisateurs. Il est pourvu d'une fonction partage des ressources CPU entre les différents noeuds d'un cluster pour éviter les ralentissements.[15],[16],[17]
Applications
modifierRavenDB a été utilisée dans:
- Le secteur de la santé
- Les points de vente
Licence
modifierRavenDB est open-source sous une licence AGPLv3.[1]Elle est disponible avec une licence gratuite et une licence commerciale.
- (en) « RavenDB », sur Database of Databases (consulté le )
- (en) « Raven, a Document Database for .NET », sur www.infoq.com, (consulté le )
- (en) « Raven, a Document Database for .NET », sur www.infoq.com, (consulté le )
- (en) « RavenDB System Properties », sur db-engines.com (consulté le )
- (en) « Other Vendors to Consider for Operational DBMSs », sur www.gartner.com, (consulté le )
- (en) « Hibernating Rhinos », sur hibernatingrhinos.com (consulté le )
- (en) Kaur, Harpreet, and Kamal Jeet Kaur. "A Review: Study of Document oriented databases and their Security." International Journal of Advanced Research in Computer Science 4.8 (2013).
- (en) « Ayende's DivanDB (also, is esent the most widely used database engine?) », sur blogs.msdn.microsoft.com, (consulté le )
- (en) « Hidden Windows Gems: Extensible Storage Engine », sur ayende.com, (consulté le )
- (en) « Interview with Oren Eini of RavenDB on database management, analytics & security », sur bigdata-madesimple.com, (consulté le )
- (en) « RavenDB Development: Finally, A Solid Document-based Database for Windows? », sur www.whoishostingthis.com, (consulté le )
- (en) « NoSQL Document Database - Embedding RavenDB into an ASP.NET MVC 3 Application », sur docs.microsoft.com, (consulté le )
- (en) « Why Raven DB? », sur dzone.com, (consulté le )
- (nl) « RavenDB vs SQL Server », sur www.integrace.nl (consulté le )
- (en) « RavenDB Launches Managed Cloud Service », sur www.datanami.com, (consulté le )
- (en) « SD Times news digest: Google robots.text parser open sourced, Bonitasoft’s cloud and low-code capabilities, and OWASP ZAP 2.8 », sur sdtimes.com, (consulté le )
- (en) « RavenDB Adds New Enhancements to Its Cloud-Based Database Service », sur it.toolbox.com, (consulté le )
- (en) « RavenDB goes live! », sur ayende.com, (consulté le )
- (en) « RavenDB 2.0 RTM », sur ayende.com, (consulté le )
- (en) « RavenDB: A document database for the .NET platform », sur learning.oreilly.com (consulté le )
- (en) « RavenDB: A document database for the .NET platform », sur learning.oreilly.com (consulté le )
- (en) « RavenDB 2.5 Release Candidate is out », sur ayende.com, (consulté le )
- (en) « RavenDB 3.0 RTM! », sur ayende.com, (consulté le )
- (en) « NoSQL for .NET: RavenDB 3.0 Takes Flight », sur visualstudiomagazine.com, (consulté le )
- (en) « NoSQL: RavenDB 3.0 erhält weitere Storage Engine », sur www.heise.de (consulté le )
- (en) « RavenDB 3.5 RTM released », sur ayende.com, (consulté le )
- (en) « RavenDB 4.0 is out », sur ayende.com, (consulté le )
- (en) « NoSQL: RavenDB 4.0 jetzt für Windows, Linux, macOS und Docker verfügbar », sur www.heise.de, (consulté le )
- (en) « RavenDB 4.1 Release Candidate is out », sur ayende.com, (consulté le )
- (en) « RavenDB 4.2 has been released! », sur ayende.com, (consulté le )
- (en) « A document database for the .NET platform », sur learning.oreilly.com (consulté le )
- (en) « The Design of RavenDB 4.0: The Implications of the Blittable Format », sur dzone.com, (consulté le )
- (en) « Review: NoSQL database RavenDB », sur techgenix.com, (consulté le )
- (en) « RavenDB Adds Graph Queries », sur www.datanami.com, (consulté le )
- (en) « SD Times news digest: New Relic One, WhiteSource for Developers, RavenDB4.2, and VMware’s acquisition of Bitnami », sur sdtimes.com, (consulté le )
- (en) « RavenDB: Driving DX through DB infrastructure management », sur ciostory.com (consulté le )
- (en) « RavenDB Features », sur ravendb.net (consulté le )
- (en) « Data Modeling with Indexes in RavenDB », sur www.codeproject.com, (consulté le )
- (en) Stevic, Milorad P. "Managing documents with NoSQL in service oriented architecture." Online Journal of Applied Knowledge Management (OJAKM) 1.2 (2013): 105-115.
- (en) « Data Points - What the Heck Are Document Databases? », sur docs.microsoft.com, (consulté le )
Liens externes
modifier- Site officiel
- « Managed RavenDB Cloud Hosting », sur cloud.ravendb.net
- GitHub
- Blog Ayende
Catégorie:Logiciel libre sous licence Apache Catégorie:Système de gestion de base de données Catégorie:Base de données orientée documents Catégorie:NoSQL