ArangoDB

ArangoDB is a multi-model mostly-memory database with a flexible data model for documents and graphs. It allows users to specify either multi-collections transactions for ACID properties or standard single-document transactions for performance boosting. The whole software is under the Apache 2.0 license.

History

ArangoDB was ready to be used in production since version 1.0 released in spring 2012. The current version is 3.4.0.

Data Model

Key/Value Document / XML Graph

In ArangoDB, a document collection always has a primary key _key. Therefore, without specifying any secondary index, it is just like a key-value store. Generally, there can be multiple attributes and multiple secondary indexes, then it is like a common document store. By default, the sharding key is the same as the primary key _key. Therefore it can achieve good linear scalability. Besides key-value store and document store, ArangoDB can also support graph store with comprehensive functionalities.

Logging

Shadow Paging

ArangoDB does not overwrite existing documents. Instead, it create a new version of modified documents for all the write operations (including delete operation). ArangoDB's Write-Ahead-Logging records all these write operations that were executed on the server.

Indexes

Hash Table

By default, the index of a document is a hash index on its _key attribute. At the same time, user can specify other indexes including skip list, fulltext index, persistent index, geo-spatial Index etc.

Storage Architecture

In-Memory

ArangoDB is a mostly-memory database.

Storage Organization

Copy-on-Write / Shadow Paging

Query Interface

Custom API

ArangoDB has its own query language ArangoDB query language (AQL). AQL queries can be invoked using Arangosh (ArangoDB Shell), web interface, or HTTP REST API.

ArangoDB Logo
Website

https://www.arangodb.com/

Source Code

https://github.com/arangodb/arangodb

Developer

ArangoDB GmbH

Country of Origin

DE

Start Year

2011

Former Name

AvocadoDB

Project Type

Commercial, Open Source

Supported languages

JavaScript, SQL

Operating Systems

Linux

Licenses

Apache v2

Wikipedia

https://en.wikipedia.org/wiki/ArangoDB