Software:ArangoDB
Developer(s) | ArangoDB GmbH |
---|---|
Initial release | 2011 |
Stable release | 3.11.5
/ November 9, 2023 |
Written in | C++, JavaScript |
Type | Multi-model database, Graph database, Document-oriented database, Key/Value database, Full-text Search Engine |
License | Business Source License 1.1 and Arango Community License |
Website | arangodb |
ArangoDB is a 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] it uses RocksDB as a storage engine.
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.11 | 2023-05-30 | 3.11.5 | 2023-11-09 |
|
Release Notes |
3.10 | 2022-10-04 | 3.10.11 | 2023-10-19 |
|
Release Notes |
3.9 | 2022-02-15 | 3.9.12 | 2023-08-23 |
|
Release Notes |
3.8 | 2021-07-29 | 3.8.9 | 2023-03-27 |
|
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 |
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]
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:
// 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
Editions
- Community Edition: ArangoDB Community Edition is a graph database with native multi-model database capabilities written mainly in C++ and was available under an open-source license (Apache 2) until October 2023. It was then changed to "ArangoDB Community License, which limits its use for commercial purposes and imposes a 100GB limit on dataset size within a single cluster" [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]
See also
- Comparison of multi-model databases
References
- ↑ "Advantages of native multi-model in ArangoDB" (in en-US). https://www.arangodb.com/community-server/native-multi-model-database-advantages/.
- ↑ "ArangoDB Query Language (AQL) Introduction | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/aql/.
- ↑ "AQL Query Patterns & Examples | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/aql/examples.html.
- ↑ Celler, Frank (2012-03-07). "ArangoDB's design objectives" (in en-US). https://www.arangodb.com/2012/03/avocadodbs-design-objectives/.
- ↑ "ArangoDB Query Language (AQL) Introduction | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/aql/.
- ↑ "Variety Database". http://www.avocadosource.com/AvocadoVarieties/QueryDB.asp.
- ↑ Ortell, Bill (2021-03-08), AvocadoDB, https://github.com/billortell/AvocadoDB, retrieved 2022-07-27
- ↑ (in en) AvocadoDB explained, https://vimeo.com/36411892, retrieved 2022-07-27
- ↑ (in en) AvocadoDB Query Language Jan Steemann in english, https://www.youtube.com/watch?v=vamfIceVZcQ, retrieved 2022-07-27
- ↑ ""AvocadoDB" becomes "ArangoDB"" (in en-US). 2012-05-09. https://www.arangodb.com/2012/05/avocadodb-become-arangodb/.
- ↑ "Variety Database". http://www.avocadosource.com/AvocadoVarieties/QueryDB.asp.
- ↑ Weinberger, Claudius (2019-03-14). "ArangoDB receives Series A Funding led by Bow Capital" (in en-US). https://www.arangodb.com/2019/03/arangodb-receives-series-a-funding-led-by-bow-capital/.
- ↑ "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" (in en-US). https://www.arangodb.com/news/arangodb-announces-27-8-million-series-b-investment-to-accelerate-development-of-next-generation-graph-ml-capabilities/.
- ↑ (in en) AvocadoDB explained, https://vimeo.com/36411892, retrieved 2022-08-05
- ↑ (in en) AvocadoDB Query Language Jan Steemann in english, https://www.youtube.com/watch?v=vamfIceVZcQ, retrieved 2022-08-05
- ↑ ArangoDB, ArangoDB, 2022-08-05, https://github.com/arangodb/arangodb, retrieved 2022-08-05
- ↑ "Cluster | ArangoDB Deployment Modes | Architecture | Manual | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/architecture-deployment-modes-cluster.html.
- ↑ "DC2DC Replication | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/architecture-deployment-modes-dc2-dc.html.
- ↑ "Kubernetes | Tutorials | Manual | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/tutorials-kubernetes.html.
- ↑ "Foxx Microservices | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/foxx.html.
- ↑ ArangoDB, ArangoDB, 2022-08-05, https://github.com/arangodb/arangodb, retrieved 2022-08-05
- ↑ "ArangoSearch - Full-text search engine including similarity ranking capabilities" (in en-US). https://www.arangodb.com/community-server/arangosearch/.
- ↑ "Stanford University Pregel White paper". https://stanford.edu/~rezab/classes/cme323/S15/notes/lec8.pdf.
- ↑ "Pregel | Data Science | Manual | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/graphs-pregel.html.
- ↑ "Transactions | Manual | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/transactions.html.
- ↑ "Cluster | ArangoDB Deployment Modes | Architecture | Manual | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/architecture-deployment-modes-cluster.html.
- ↑ ArangoDB, ArangoDB, 2023-10-13, https://arangodb.com/2023/10/evolving-arangodbs-licensing-model-for-a-sustainable-future/, retrieved 2023-10-13
- ↑ "ArangoDB SmartGraphs | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/graphs-smart-graphs.html.
- ↑ "ArangoDB SatelliteCollections | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/satellites.html.
- ↑ "ArangoDB Enterprise Features" (in en-US). https://www.arangodb.com/enterprise-server/.
- ↑ "Getting Started with ArangoDB Oasis | ArangoDB Documentation" (in en). https://www.arangodb.com/docs/stable/oasis/getting-started.html.
- ↑ "ArangoDB Oasis" (in en). https://cloud.arangodb.com/.
Original source: https://en.wikipedia.org/wiki/ArangoDB.
Read more |