Die Veröffentlichung von Multi-Purpose DBMS , die flexible Modelle zur Speicherung von Dokumenten, Graphen und Daten im SchlĂŒssel-Wert-Format bietet. Die Arbeit mit der Datenbank erfolgt ĂŒber eine SQL-Ă€hnliche Abfragesprache oder ĂŒber spezielle Erweiterungen in der Programmiersprache JavaScript. Die Methoden zur Datenspeicherung entsprechen den Anforderungen von ACID (AtomaritĂ€t, Konsistenz, Isolation, ZuverlĂ€ssigkeit), unterstĂŒtzen Transaktionen und bieten sowohl horizontale als auch vertikale Skalierbarkeit. Die Verwaltung der DBMS kann ĂŒber eine Web-OberflĂ€che oder einen Konsolen-Client erfolgen . Der Code von ArangoDB steht unter der Apache 2-Lizenz. Das Projekt ist in C und JavaScript geschrieben.
Wichtige Merkmale von ArangoDB:
- Die Möglichkeit, ohne Definition eines Datenbankschemas (Schema-free) auszukommen â Daten werden in Form von Dokumenten strukturiert, wobei Metadaten und Strukturinformationen von Benutzerdaten getrennt sind;
- UnterstĂŒtzung fĂŒr die Verwendung von ArangoDB als Server fĂŒr Webanwendungen in JavaScript mit Zugriff auf die DB ĂŒber REST/Web-API;
- Verwendung von JavaScript fĂŒr browserbasierte Anwendungen, die auf die DB zugreifen, und fĂŒr Handler, die auf der DBMS-Seite ausgefĂŒhrt werden;
- Multithread-Architektur, die die Last auf alle CPU-Kerne verteilt;
- Ein flexibles Datenspeicherungsmodell, in dem SchlĂŒssel-Wert-Paare, Dokumente und Parameter, die Beziehungen zwischen DatensĂ€tzen definieren, kombiniert werden können (es stehen Methoden zur VerfĂŒgung, um die Knoten des Graphen zu durchlaufen);
- Verschiedene DatenreprĂ€sentationsmodelle (Dokumente, Graphen und SchlĂŒssel-Wert-Bindungen) können in einer einzigen Abfrage gemischt werden, was die Aggregation heterogener Daten vereinfacht;
- UnterstĂŒtzung fĂŒr Abfragen mit Joins;
- Die Möglichkeit, den Typ des Index auszuwĂ€hlen, der den zu lösenden Aufgaben entspricht (zum Beispiel kann ein Index fĂŒr die Volltextsuche verwendet werden);
- Anpassbare ZuverlĂ€ssigkeit: Die Anwendung kann selbst festlegen, was fĂŒr sie wichtiger ist: höhere ZuverlĂ€ssigkeit oder höhere Leistung;
- Effizientes Speichersystem, das die Möglichkeiten moderner Hardware vollstĂ€ndig ausnutzt (zum Beispiel SSDs) und groĂe Caches verwendet werden können;
- Transaktionen: die Möglichkeit, Anfragen gleichzeitig fĂŒr mehrere Dokumente oder Sammlungen mit optionaler Transaktionskonsistenz und Isolation auszufĂŒhren;
- UnterstĂŒtzung fĂŒr Replikation und Sharding: Möglichkeit zur Erstellung von Master-Slave-Konfigurationen und Verteilung von DatensĂ€tzen auf verschiedene Server je nach einem bestimmten Merkmal;
- FĂŒr die Erstellung von Mikrodiensten wird ein JavaScript-Framework geliefert, , das innerhalb des DBMS-Servers mit direktem Datenzugriff ausgefĂŒhrt wird.
, vorgestellt in der Version ArangoDB 3.6:
- Die Leistung von Unterabfragen sowie der UPDATE- und REPLACE-Operationen wurde optimiert;
- Die Möglichkeit zur parallelen AusfĂŒhrung von AQL-Abfragen wurde implementiert, was die Zeit zur Erfassung von ĂŒber verschiedene Knoten im Cluster verteilten Daten verkĂŒrzt;
- Die verzögerte Materialisierung von Dokumenten wurde umgesetzt, sodass in bestimmten Situationen die vollstÀndige Extraktion irrelevanter Dokumente vermieden werden kann;
- Beim Scannen von Dokumenten wird eine vorzeitige Ablehnung von Dokumenten sichergestellt, die nicht dem angegebenen Filter entsprechen;
- Die Volltextsuchmaschine ArangoSearch wurde verbessert, die Ranking unter BerĂŒcksichtigung der Ăhnlichkeit von Daten unterstĂŒtzt. Die UnterstĂŒtzung eines Analysewerkzeugs fĂŒr die AutovervollstĂ€ndigung von Abfragen wurde hinzugefĂŒgt, ebenso die Funktionen TOKENS() und PHRASE() fĂŒr die dynamische Erstellung von Suchabfragen;
- Die Einstellung maxRuntime wurde hinzugefĂŒgt, um die Laufzeit einer Abfrage gezielt zu begrenzen;
- Die Option ââquery.optimizer-rulesâ wurde hinzugefĂŒgt, um die Aktivierung bestimmter Optimierungen bei der Verarbeitung von Abfragen zu steuern;
- Die Möglichkeiten zur Organisation der Clusterarbeit wurden erweitert. Die Option ââcluster.upgradeâ wurde hinzugefĂŒgt, um den Modus zur Aktualisierung von Knoten im Cluster auszuwĂ€hlen;
- Die UnterstĂŒtzung von TLS 1.3 zur VerschlĂŒsselung der Kommunikationsverbindung zwischen Kunde und Server wurde hinzugefĂŒgt (standardmĂ€Ăig verwendet der Kunde weiterhin TLS 1.2).
Quelle: opennet.ru
