Benutzer:Luebbert42/ArangoDB
Luebbert42/ArangoDB | |
---|---|
Basisdaten
| |
Aktuelle Version | 1.1 (6.12.2012) |
Betriebssystem | Cross-platform |
Programmiersprache | C++ |
Kategorie | dokumentenorienterte Datenbank/Graphdatenbank |
Lizenz | Apache |
http://www.arangodb.org/ |
ArangoDB ist eine Multi-Modell-NoSQL-Datenbank, geschrieben in C++ und als Open Source veröffentlicht. Der Begriff Multi-Modell-Datenbank beschreibt, dass sich verschiedene Datenmodelle abbilden lassen: ArangoDB ist vom Grundkonzept her eine dokumentenorienterte Datenbank. Die Informationseinheiten werden in einzelnen Dokumenten gespeichert. Beziehungen zwischen den Dokumenten lassen sich durch direkte Verbindungen zwischen diesen herstellen. So entstehen Graphenstrukturen, die sich performant verarbeiten lassen. Da die Dokumente in ArangoDB eindeutig über Schlüssel identifiziert werden können, ist es auch möglich, ArangoDB als Key-Value-Speicher zu benutzen.
Merkmale
Graphen
- ArangoDB unterstützt Eigenschaftsgraphen, das heißt Graphen, in welchen den Kanten beliebige Eigenschaften zugeordnet werden können. Die Graphenstrukturen können mit Hilfe einer SQL-ähnlichen Abfragesprache, direkten Dokumentabfragen und dem integrierten Graph-Modul untersucht werden.
Effiziente Speicherung
- ArangoDB speichert die Dokumente in Dokumentensammlungen. Dokumente mit ähnlichen Strukturen und Datentypen teilen sich ihre strukturellen Informationen, die unabhängig von den eigentlichen Daten gespeichert werden. Dadurch wird jedes einzelne Dokument kleiner und der benötigte Speicher- und Festplattenplatz reduziert sich.
Anwendungsserver
- ArangoDB kann mit Hilfe von selbst-definierten Funktionen als Anwendungsserver eingesetzt werden. Analog gespeicherten Prozeduren formuliert man Geschäftslogik und Abfragen als eingebettete Funktionen, die dann innerhalb der Datenbank ausgeführt werden. Als Sprache steht JavaScript und Ruby zur Verfügung, die eingebetteten Funktionen werden mit Googles V8-Javascript-Engine und Matz' MRuby verarbeitet.
- Beispielsweise ist es möglich, kaskadierende Löschungen bzw. Aktualisierungen durchzuführen, Rechte zuzuweisen und zusätzlich Berechnungen und Veränderungen an den Daten aus der Datenbank vorzunehmen.
- ArangoDB ermöglicht auch die Verknüpfung von bestimmten URLs auf benutzerdefinierte Aktionen. So können HTTP Anfragen vom Client direkt aus der Datenbank bedient werden.
HTTP REST API
- ArangoDB stellt die Funktionalität über eine HTTP REST Schnittstelle bereit und unterstützt Keepalive. Über eine gesonderte Batch-API können Clients optional mehrere Anfragen auf einmal an die Datenbank schicken. Dadurch lässt sich im Bedarfsfall der HTTP-Overhead minimieren.
Indizes
- ArangoDB bietet verschiedene Indextypen an: Hashtabelle, Skip-Liste, Bitmap-Index und Geospatial-Indizes für Geodaten.
Capped Collection
- ArangoDB unterstützt größenbeschränkte Dokumentensammlungen – auch Capped Collections genannt. Eine Capped Collection wird angelegt mit einer bestimmten Größe und – nach Bedarf – einer Anzahl an Elementen. Eine Capped Collection ist die einzige Art Dokumenten-Sammlung, die die Ordnung einhält: Sobald die spezifizierte Größe erreicht ist, verhält sich die Capped Collection wie ein digitaler Ringspeicher.
Mostly Memory
- ArangoDB hält die meisten Daten und Indizes aus Performanzgründen im Speicher. Die Daten werden in konfigurierbaren Intervallen auf der Festplatte gesichert.
Lizenz
- Apache-2-Lizenz: frei für kommerzielle und nicht-kommerzielle Nutzung
Geschichte
Anfänge
- Die Entwicklung von ArangoDB durch triAGENS begann 2011 unter dem Namen "AvocadoDB". Aus lizenzrechtlichen Gründen wurde AvocadoDB im Mai 2012 umbenannt zu ArangoDB. Arango ist eine Avocado-Sorte aus Mexiko/Guatemala.
ArangoDB Version 1.0
- Im August 2012 wurde die Version 1.0 von ArangoDB veröffentlicht. Diese erste Version umfasste Dokumentensammlungen, Graphenverarbeitungsfähigkeiten, eine Shell sowie ein Web-Frontend und eine REST API zur Interaktion mit der Datenbank.
ArangoDB Version 1.1
- Im Dezember 2012 wurde ArangoDB Version 1.1 veröffentlicht. Diese Version bietet zusätzlich Batch-Anfragen, die Möglichkeit partieller Aktualisierung von Dokumenten, Verbesserungen bei der Synchronisation mit der Festplatte, Unterstützung für SSL, ein Statistik-Modul sowie die Einführung von expliziter Typisierung von Dokumentensammlungen.
Eigenschaften
Atomarität
- Einzelne Dokumente werden atomar geschrieben.
Dauerhaftigkeit
- ArangoDB verwendet immer Journaling um Dauerhaftigkeit zu garantieren. Das bedeutet, dass neue Daten an das Ende der Journal-Dateien geschrieben werden, ohne alte Daten zu überschreiben. Wenn der ArangoDB-Server erst offline und später wieder online geht, liest er die Journal-Dateien und stellt die Daten komplett aus dem Journal wieder her. Da existierende Daten in den Journal-Dateien nie modifiziert werden, wird das Risiko von Datenkorruption durch den Einsatz von Journaling stark reduziert. Alle Schreibvorgänge auf die Journal-Dateien werden zudem mit Prüfsummen gesichert.
Performanz
- Geschwindigkeitsfördernd sind die folgenden Eigenschaften:
- Dokumente mit ähnlichen Strukturen und Datentypen teilen ihre strukturellen Informationen. Dadurch wird jedes einzelne Dokument kleiner und der benötigte Speicher- und Festplattenplatz reduziert sich.
- Auswahlmöglichkeit aus spezialisierten Indizes
- spezielle API für Batch-Operationen
- Multithreading: Anfragen von mehreren Clients können gleichzeitig bearbeitet werden
- C, C++ & Javascript
Sprachunterstützung und Treibersupport
ArangoDB unterstützt eine HTTP REST API, deshalb können neue Treiber von jedem Interessierten hinzugefügt werden. Bisher existieren die folgenden Treiber:
- D
- Java
- Node.js
- arangodb-perl-driver
- PHP
- PHP - Symfony2 Bundle
- Python
- Ruby - Core client
- Ruby - ArangoDB ODM
Anwender
Einzelnachweise
Siehe auch
Weblinks
{{DEFAULTSORT:ArangoDB}} [[Kategorie:Freie_Software]] [[Kategorie:Freies Datenbankmanagementsystem]] [[Kategorie:NoSQL]]