RavenDB

base de données orientée documents From Wikipedia, the free encyclopedia

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]. 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.

Faits en bref Développé par, Première version ...
RavenDB
Informations
Développé par Hibernating Rhinos
Première version
Dernière version 4.2 ()
Dépôt RavenDB 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

Fermer

Historique

Initialement nommé Rhino DivanDB[1],[7], le projet RavenDB de Oren Eini (alias Ayende Rahien)[8],[9] a été lancé en 2008 et développé par Hibernating Rhinos Ltd[4]. La société affirme qu'elle a été la première base de données orientée documents à s'exécuter nativement sur le framework .NET[10],[11],[2],[12]. Elle a été la première base de données de documents ACID[3],[12],[13].

En 2019, Hibernating Rhinos a commencé à proposer RavenDB comme service cloud nommé RavenDB Cloud[14],[15],[16].

Historique des versions

Davantage d’informations Version, Date ...
Version Date Fonctionnalités ajoutées (liste partielle)
1.0 [17]
2.0 [18] Réplication[19],[20]
2.5 [21] Projections; recherche facettée[19]
3.0 [22] Java API; Voron storage engine[23],[24]
3.5 [25] Clustering[25]
4.0 [26] Devenu multiplateforme; disponible avec une licence gratuite[27]
4.1 [28] Transactions à l'échelle du cluster[14],[28]
4.2 [29] Interrogation de graphes[14]
Fermer
  • Rouge : Non pris en charge
  • Vert : Pris en charge

Architecture du système

Les données sont stockées au format JSON sous forme de documents sans schéma[1],[7],[2],[30],[19],[20],[6]. Au niveau du stockage, les documents sont écrits dans un format binaire appelé blittable[31]. Les documents sont regroupés en collections, chaque document ayant exactement une collection[pas clair][19],[20].

Intérieur RDB4

Les 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],[3] Certaines opérations[Lesquelles ?] 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],[32].

Les versions 1.0 à 3.5 prenaient en charge le sharding, mais pas les versions 4.0+[1],[2],[3],[19],[20].

À l'origine, RavenDB utilisait le moteur de stockage Esent[7],[8],[20]. La version 3.0 a introduit Voron, un moteur de stockage personnalisé supplémentaire[23],[24].

Les clients sont pris en charge pour C#, C++, Java, NodeJS, Python, Ruby et Go[3].

Caractéristiques principales

  • Transactions ACID à l'échelle du cluster - Les transactions ACID peuvent être exécutées dans le champ d'un cluster[pas clair] (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],[14].
  • Compteurs distribués[33],[34]

Index et interrogation

Les 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],[2],[3].

  • 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],[11],[35],[19],[20],[6]
  • 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[33],[34],[36].
  • 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],[3],[37].
  • 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],[13],[19],[20],[38],[39].

RavenDB Cloud

RavenDB 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 nœuds d'un cluster pour éviter les ralentissements[14],[15],[16].

Licence

RavenDB est open-source sous une licence AGPLv3[1]. Elle est disponible avec une licence gratuite et une licence commerciale.

Notes et références

Liens externes

Related Articles

Wikiwand AI