lancement d'une base de donnĂ©es multi-usages , offrant des modĂšles flexibles de stockage de documents, de graphes et de donnĂ©es au format clĂ©-valeur. L'interaction avec la base est rĂ©alisĂ©e via un langage de requĂȘte similaire Ă SQL ou via des extensions spĂ©ciales en JavaScript. Les mĂ©thodes de stockage des donnĂ©es rĂ©pondent aux exigences ACID (atomicitĂ©, cohĂ©rence, isolation, durabilitĂ©), supportent les transactions et assurent une Ă©volutivitĂ© Ă la fois horizontale et verticale. La gestion de la base de donnĂ©es peut se faire via une interface web ou un client console . Le code d'ArangoDB est sous licence Apache 2. Le projet est Ă©crit en C et JavaScript.
Caractéristiques clés d'ArangoDB :
- PossibilitĂ© de ne pas dĂ©finir de schĂ©ma de stockage (Schema-free) â les donnĂ©es sont structurĂ©es sous forme de documents, oĂč les mĂ©tadonnĂ©es et les informations sur la structure sont sĂ©parĂ©es des donnĂ©es utilisateur;
- Support de l'utilisation d'ArangoDB en tant que serveur pour des applications web en JavaScript avec accÚs à la base de données via une REST/Web API;
- Utilisation de JavaScript pour les applications basées sur le navigateur accédant à la base de données et pour les gestionnaires exécutés sur le serveur de la base de données;
- Architecture multithread, distribuant la charge sur tous les cĆurs du CPU;
- ModÚle flexible de stockage des données, combinant des paires clé-valeur, des documents et des paramÚtres définissant les relations entre les enregistrements (des outils sont fournis pour parcourir les sommets du graphe);
- DiffĂ©rents modĂšles de reprĂ©sentation des donnĂ©es (documents, graphes et liaisons clĂ©-valeur) peuvent ĂȘtre mĂ©langĂ©s dans une seule requĂȘte, simplifiant l'agrĂ©gation de donnĂ©es hĂ©tĂ©rogĂšnes;
- Support des requĂȘtes avec jointures (JOIN);
- PossibilitĂ© de choisir le type dâindex correspondant aux tĂąches Ă accomplir (par exemple, un index pour la recherche en texte intĂ©gral);
- FiabilitĂ© configurable : l'application peut dĂ©terminer elle-mĂȘme ce qui est plus important : une fiabilitĂ© accrue ou de meilleures performances;
- Stockage efficace, tirant pleinement parti des capacités matérielles modernes (par exemple, des SSD) et permettant d'utiliser de grands caches;
- Transactions : possibilitĂ© d'exĂ©cuter des requĂȘtes simultanĂ©ment pour plusieurs documents ou collections avec une cohĂ©rence et une isolation des transactions en option;
- Support de la réplication et du sharding : possibilité de créer des configurations maßtre-esclave et de répartir les ensembles de données sur différents serveurs en fonction d'un critÚre spécifique.
- Un framework JavaScript est fourni pour créer des microservices. , exécuté à l'intérieur du serveur de base de données avec un accÚs direct aux données.
, proposé dans la version ArangoDB 3.6 :
- L'optimisation des performances des sous-requĂȘtes, ainsi que des opĂ©rations UPDATE et REPLACE, a Ă©tĂ© effectuĂ©e ;
- La possibilitĂ© d'exĂ©cution parallĂšle des requĂȘtes AQL a Ă©tĂ© mise en Ćuvre, ce qui permet de rĂ©duire le temps de collecte des donnĂ©es rĂ©parties sur diffĂ©rents nĆuds du cluster ;
- La matérialisation différée des documents a été réalisée, ce qui permet dans certaines situations de ne pas extraire complÚtement les documents non pertinents ;
- Lors de la numérisation des documents, un rejet précoce des documents ne correspondant pas au filtre spécifié a été assuré ;
- Le moteur de recherche en texte intĂ©gral ArangoSearch a Ă©tĂ© amĂ©liorĂ©, prenant en charge le classement en fonction de la similaritĂ© des donnĂ©es. Un support a Ă©tĂ© ajoutĂ© pour l'analyseur d'autocomplĂ©tion des requĂȘtes, et les fonctions TOKENS() et PHRASE() pour la formation dynamique de requĂȘtes de recherche ont Ă©tĂ© implĂ©mentĂ©es ;
- L'option maxRuntime a Ă©tĂ© ajoutĂ©e pour limiter sĂ©lectivement le temps d'exĂ©cution de la requĂȘte ;
- Une option « âquery.optimizer-rules » a Ă©tĂ© ajoutĂ©e pour gĂ©rer l'activation de certaines optimisations lors du traitement des requĂȘtes ;
- Les capacitĂ©s d'organisation du travail dans le cluster ont Ă©tĂ© Ă©tendues. L'option « âcluster.upgrade » a Ă©tĂ© ajoutĂ©e pour choisir le mode de mise Ă niveau des nĆuds dans le cluster ;
- La prise en charge de TLS 1.3 pour le chiffrement du canal de communication entre le client et le serveur a été ajoutée (par défaut, le client continue d'utiliser TLS 1.2).
Source : opennet.ru
