ArangoDB
Developer(s) | ArangoDB GmbH |
---|---|
Initial release | 2011 |
Stable release | 3.9.3
/ September 2, 2022 |
Repository | |
Written in | C++, JavaScript |
Type | Multi-model database, Graph database, Document-oriented database, Key/Value database, Full-text Search Engine |
License | Apache License 2.0 |
Website | arangodb |
ArangoDB is a free and open-source native graph database system developed by ArangoDB Inc. ArangoDB is a multi-model database system since it supports three data models (graphs, JSON documents, key/value)[1] with one database core and a unified query language AQL (ArangoDB Query Language). AQL is mainly a declarative language[2] and allows the combination of different data access patterns in a single query.[3] ArangoDB is a NoSQL database system[4] but AQL is similar in many ways to SQL.[5]
History
ArangoDB Inc. was founded in 2015 by Claudius Weinberger and Frank Celler.[6] They originally called the database system “A Versatile Object Container", or AVOC for short, leading them to call the database AvocadoDB.[7][8][9] Later, they changed the name to ArangoDB.[10] The word "arango" refers to a little-known avocado variety grown in Cuba.[11]
In January 2017 ArangoDB raised a seed round investment of 4.2 million Euros led by Target Partners. In March 2019 ArangoDB raised 10 million dollars in series A funding[12] led by Bow Capital. In October 2021 ArangoDB raised 27.8 million dollars in series B funding led by Iris Capital.[13]
Release history
Release | First Release | Latest Minor Version | Latest Release | Feature Notes | Reference |
---|---|---|---|---|---|
3.9 | 2022-02-15 | 3.9.2 | 2022-06-07 |
|
Release Notes |
3.8 | 2021-07-29 | 3.8.6 | 2022-02-23 |
|
Release Notes |
3.7 | 2020-09-16 | 3.7.17 | 2022-02-01 |
|
Release Notes |
3.6 | 2020-01-08 | 3.6.16 | 2021-09-06 |
|
Release Notes |
3.5 | 2019-08-21 | 3.5.7 | 2020-12-30 |
|
Release Notes |
3.4 | 2018-12-06 | 3.4.11 | 2020-09-09 |
|
Release Notes |
3.3 | 2017-12-22 | 3.3.25 | 2020-02-28 |
|
Release Notes |
3.2 | 2017-07-20 | 3.2.18 | 2019-02-02 |
|
Release Notes |
3.1 | 2016-11-03 | 3.1.29 | 2018-06-23 |
|
Release Notes |
3.0 | 2016-07-23 | 3.0.12 | 2016-11-23 |
|
Release |
Main features
- JSON: ArangoDB uses JSON as a default storage format,[14] but internally it uses ArangoDB VelocyPack – a fast and compact binary format for serialization and storage.[15] ArangoDB can natively store a nested JSON object as a data entry inside a collection. Therefore, there is no need to disassemble the resulting JSON objects. Thus, the stored data would simply inherit the tree structure of the JSON data.
- Predictable performance: ArangoDB is written mainly in C++[16] and manages its own memory to avoid unpredictable performance arising from garbage collection.
- Scaling: ArangoDB provides scaling through clustering.[17]
- Reliability: ArangoDB provides datacenter-to-datacenter replication.[18]
- Kubernetes: ArangoDB runs on Kubernetes, including cloud-based Kubernetes services Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), and Microsoft Azure Kubernetes Service (AKS).[19]
- Microservices: ArangoDB provides integration with native JavaScript microservices directly on top of the DBMS using the Foxx framework.[20]
- Multiple query languages: The database has its own query language, AQL (ArangoDB Query Language), and also provides GraphQL to write flexible native web services directly on top of the DBMS.[21]
- Search: ArangoDB’s search engine combines boolean retrieval capabilities with generalized ranking components allowing for data retrieval based on a precise vector space model.[22]
- Pregel algorithm: Pregel is a system for large scale graph processing.[23] Pregel is implemented in ArangoDB and can be used with predefined algorithms, e.g. PageRank, Single-Source Shortest Path and Connected components.[24]
- Transactions: ArangoDB supports user-definable transactions. Transactions in ArangoDB are atomic, consistent, isolated, and durable (ACID), but only if data is not sharded.[25]
Query language
AQL (ArangoDB Query Language) is the SQL-like query language[26] used in ArangoDB. It supports CRUD operations for both documents (nodes) and edges, but it is not a data definition language (DDL). AQL does support geospatial queries.
AQL is JSON-oriented as illustrated by the following queries:
// Return every document in a collection
FOR doc IN collection
RETURN doc
// Count the number of documents in a collection
FOR doc IN collection
COLLECT WITH COUNT INTO length
RETURN length
// Add a new document into our collection
INSERT { _key: "john", name: "John", age: 45 } INTO collection
// Update document with key of “john” to have age 46.
UPDATE { _key: "john", age: 46 } IN collection
// Add an attribute numberOfLogins for all users with status active:
FOR u IN users
FILTER u.active == true
UPDATE u WITH { numberOfLogins: 0 } IN users
Parameterized query
The following is a parameterized query for finding the number of descendants of a particular node (@start) in a graph named @graph with @max nodes:
FOR vert, edge, path IN 1..@max OUTBOUND @start GRAPH @graph
RETURN path
Editions
- Open Source: ArangoDB Community Edition is a free graph database with native multi-model database capabilities written mainly in C++ and available under an open-source license (Apache 2).[27]
- Commercial self-managed: ArangoDB Enterprise is a paid subscription that includes graph-aware sharding (called “SmartGraphs”)[28] and collection replication (called “Satellite Collections”) to reduce query times,[29] and increased security.[30]
- Cloud: ArangoDB is offered as a cloud service called Oasis, providing ArangoDB databases as a Service (DBaaS). ArangoDB Oasis provides the functionality of an ArangoDB cluster deployment while minimizing the amount of administrative effort required.[31] ArangoDB Oasis run on multiple cloud service providers, include AWS, Azure, and Google Cloud.[32]
ArangoDB publishes a comparison of different editions on their website.[33]
See also
References
- ^ "Advantages of native multi-model in ArangoDB". ArangoDB. Retrieved 2022-07-26.
- ^ "ArangoDB Query Language (AQL) Introduction | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
- ^ "AQL Query Patterns & Examples | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
- ^ Celler, Author Frank (2012-03-07). "ArangoDB's design objectives". ArangoDB. Retrieved 2022-07-26.
{{cite web}}
:|first=
has generic name (help) - ^ "ArangoDB Query Language (AQL) Introduction | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-07-26.
- ^ "Variety Database". www.avocadosource.com. Retrieved 2022-07-27.
- ^ Ortell, Bill (2021-03-08), AvocadoDB, retrieved 2022-07-27
- ^ AvocadoDB explained, retrieved 2022-07-27
- ^ AvocadoDB Query Language Jan Steemann in english, retrieved 2022-07-27
- ^ ""AvocadoDB" becomes "ArangoDB"". ArangoDB. 2012-05-09. Retrieved 2022-07-27.
- ^ "Variety Database". www.avocadosource.com. Retrieved 2022-08-05.
- ^ Weinberger, Author Claudius (2019-03-14). "ArangoDB receives Series A Funding led by Bow Capital". ArangoDB. Retrieved 2022-07-27.
{{cite web}}
:|first=
has generic name (help) - ^ "ArangoDB Announces $27.8 Million Series B Investment to Accelerate Development of Next-Generation Graph ML, Providing Advanced Analytics and AI Capabilities at Enterprise Scale". ArangoDB. Retrieved 2022-07-27.
- ^ AvocadoDB explained, retrieved 2022-08-05
- ^ AvocadoDB Query Language Jan Steemann in english, retrieved 2022-08-05
- ^ ArangoDB, ArangoDB, 2022-08-05, retrieved 2022-08-05
- ^ "Cluster | ArangoDB Deployment Modes | Architecture | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
- ^ "DC2DC Replication | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
- ^ "Kubernetes | Tutorials | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
- ^ "Foxx Microservices | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
- ^ ArangoDB, ArangoDB, 2022-08-05, retrieved 2022-08-05
- ^ "ArangoSearch - Full-text search engine including similarity ranking capabilities". ArangoDB. Retrieved 2022-08-05.
- ^ "Stanford University Pregel White paper" (PDF).
- ^ "Pregel | Data Science | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
- ^ "Transactions | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-05.
- ^ "Cluster | ArangoDB Deployment Modes | Architecture | Manual | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-11.
- ^ ArangoDB, ArangoDB, 2022-08-11, retrieved 2022-08-11
- ^ "ArangoDB SmartGraphs | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-11.
- ^ "ArangoDB SatelliteCollections | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-11.
- ^ "ArangoDB Enterprise Features". ArangoDB. Retrieved 2022-08-11.
- ^ "Getting Started with ArangoDB Oasis | ArangoDB Documentation". www.arangodb.com. Retrieved 2022-08-11.
- ^ "ArangoDB Oasis". ArangoDB Oasis. Retrieved 2022-08-11.
- ^ "Subscriptions". ArangoDB. Retrieved 2022-08-11.