ArangoDB is a
graph database
A graph database (GDB) is a database that uses graph structures for semantic queries with nodes, edges, and properties to represent and store data. A key concept of the system is the graph (or edge or relationship). The graph relates the dat ...
system developed by ArangoDB Inc. ArangoDB is a
multi-model database
In the field of database design, a multi-model database is a database management system designed to support multiple data models against a single, integrated backend. In contrast, most database management systems are organized around a single data ...
system since it supports three data models (graphs,
JSON
JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
documents,
key/value) with one database core and a unified
query language
A query language, also known as data query language or database query language (DQL), is a computer language used to make queries in databases and information systems. In database systems, query languages rely on strict theory to retrieve informa ...
AQL (ArangoDB Query Language). AQL is mainly a declarative language and allows the combination of different data access patterns in a single query.
ArangoDB is a
NoSQL
NoSQL (originally meaning "Not only SQL" or "non-relational") refers to a type of database design that stores and retrieves data differently from the traditional table-based structure of relational databases. Unlike relational databases, which ...
database system but AQL is similar in many ways to
SQL
Structured Query Language (SQL) (pronounced ''S-Q-L''; or alternatively as "sequel")
is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling s ...
, it uses
RocksDB as a storage engine.
History
ArangoDB GmbH was founded in 2014 by Claudius Weinberger and Frank Celler. They originally called the database system “A Versatile Object Container", or AVOC for short, leading them to call the database AvocadoDB. Later, they changed the name to ArangoDB. The word "arango" refers to a little-known avocado variety grown in Cuba.
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 led by Bow Capital. In October 2021 ArangoDB raised 27.8 million dollars in series B funding led by
Iris Capital.
Release history
Features
* JSON: ArangoDB uses
JSON
JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
as a default storage format, but internally it uses ArangoDB VelocyPack – a fast and compact binary format for serialization and storage. 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++ and manages its own memory to avoid unpredictable performance arising from
garbage collection.
* Scaling: ArangoDB provides
scaling through clustering.
* Reliability: ArangoDB provides datacenter-to-datacenter replication.
* Kubernetes: ArangoDB runs on Kubernetes, including cloud-based Kubernetes services Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), and
Microsoft Azure
Microsoft Azure, or just Azure ( /ˈæʒər, ˈeɪʒər/ ''AZH-ər, AY-zhər'', UK also /ˈæzjʊər, ˈeɪzjʊər/ ''AZ-ure, AY-zure''), is the cloud computing platform developed by Microsoft. It has management, access and development of ...
Kubernetes Service (AKS).
* Microservices: ArangoDB provides integration with native
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
microservices directly on top of the DBMS using the Foxx framework.
* 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.
* Search: ArangoDB's search engine combines boolean retrieval capabilities with generalized ranking components allowing for data retrieval based on a precise
vector space model
Vector space model or term vector model is an algebraic model for representing text documents (or more generally, items) as vector space, vectors such that the distance between vectors represents the relevance between the documents. It is used in i ...
.
* Pregel algorithm
Pregelis a system for large scale graph processing. Pregel is implemented in ArangoDB and can be used with predefined algorithms, e.g.
PageRank
PageRank (PR) is an algorithm used by Google Search to rank web pages in their search engine results. It is named after both the term "web page" and co-founder Larry Page. PageRank is a way of measuring the importance of website pages. Accordin ...
, Single-Source Shortest Path and Connected components.
* Transactions: ArangoDB supports user-definable transactions. Transactions in ArangoDB are atomic, consistent, isolated, and durable (
ACID
An acid is a molecule or ion capable of either donating a proton (i.e. Hydron, hydrogen cation, H+), known as a Brønsted–Lowry acid–base theory, Brønsted–Lowry acid, or forming a covalent bond with an electron pair, known as a Lewis ...
), but only if data is not sharded.
AQL (ArangoDB Query Language) is the
SQL
Structured Query Language (SQL) (pronounced ''S-Q-L''; or alternatively as "sequel")
is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling s ...
-like query language used in ArangoDB. It supports
CRUD operations for both documents (nodes) and edges, but it is not a
data definition language
In the context of SQL, data definition or data description language (DDL) is a syntax for creating and modifying database objects such as tables, indices, and users. DDL statements are similar to a computer programming language for defining d ...
(DDL). AQL does support
geospatial
Geographic data and information is defined in the ISO/TC 211 series of standards as data and information having an implicit or explicit association with a location relative to Earth (a geographic location or geographic position). It is also call ...
queries.
AQL is
JSON
JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
-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 INTO collection
// Update document with key of “john” to have age 46.
UPDATE IN collection
// Add an attribute numberOfLogins for all users with status active:
FOR u IN users
FILTER u.active true
UPDATE u WITH 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
Open-source licenses are software licenses that allow content to be used, modified, and shared. They facilitate free and open-source software (FOSS) development. Intellectual property (IP) laws restrict the modification and sharing of creative ...
Apache 2. In October 2023, the source code license was changed from
Apache 2.0 to
Business Source License, while the license for the pre-compiled binaries was changed from Apache 2.0 to a "ArangoDB Community License", which "limits its use for commercial purposes and imposes a 100GB limit on dataset size within a single cluster"
* Commercial self-managed: ArangoDB Enterprise is a paid subscription that includes graph-aware sharding (called “SmartGraphs”) and collection replication (called “Satellite Collections”) to reduce query times, and increased security.
* 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. ArangoDB Oasis run on multipl
cloud service providers include AWS, Azure, and Google Cloud.
See also
*
Comparison of multi-model databases
References
{{refs
2011 software
Free database management systems
NoSQL products
NoSQL
Document-oriented databases
Graph databases
Structured storage
Distributed computing architecture
Database-related software for Linux
Key-value databases
Software using the Business Source License