Aerospike Database is a
flash memory
Flash memory is an electronic non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for the NOR and NAND logic gates. Both u ...
and
in-memory
An in-memory database (IMDB, or main memory database system (MMDB) or memory resident database) is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems that e ...
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
distributed Distribution may refer to:
Mathematics
*Distribution (mathematics), generalized functions used to formulate solutions of partial differential equations
*Probability distribution, the probability of a particular value or value range of a varia ...
key value NoSQL
A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed ...
database management system, marketed by the company also named
Aerospike.
History
Aerospike was first known as Citrusleaf. In August 2012, the company - which had been providing its database since 2010 - rebranded both the company and software name to Aerospike.
The name "Aerospike" is derived from the
aerospike engine
The aerospike engine is a type of rocket engine that maintains its aerodynamic efficiency across a wide range of altitudes. It belongs to the class of altitude compensating nozzle engines. Aerospike engines have been studied for several years an ...
, a type of
rocket nozzle
A rocket engine nozzle is a propelling nozzle (usually of the de Laval type) used in a rocket engine to expand and accelerate combustion products to high supersonic velocities.
Simply: propellants pressurized by either pumps or high pressure ul ...
that is able to maintain its output efficiency over a large range of altitudes, and is intended to refer to the software's ability to scale up.
In 2012, Aerospike acquired AlchemyDB, and integrated the two databases' functions, including the addition of a relational data management system.
On June 24, 2014, Aerospike was opensourced under the
AGPL 3.0 license for the Aerospike database server and the
Apache License Version 2.0 for its Aerospike client software development kit.
Release history
Features
Aerospike Database is modeled under the
shared-nothing architecture A shared-nothing architecture (SN) is a distributed computing architecture in which each update request is satisfied by a single node (processor/memory/storage unit) in a computer cluster. The intent is to eliminate contention among nodes. Nodes do ...
and written in
C. It operates in three layers: a data storage layer, a self-managed distribution layer, and a cluster-aware client layer.
Aerospike uses hybrid memory architecture: the
database indices
A database index is a data structure that improves the speed of data retrieval operations on a database table at the cost of additional writes and storage space to maintain the index data structure. Indexes are used to quickly locate data without ...
are stored fully in main random-access memory, while the data is stored on a persistent device using the data layer. The data layer stores the data in
solid-state drive
A solid-state drive (SSD) is a solid-state storage device that uses integrated circuit assemblies to store data persistently, typically using flash memory, and functioning as secondary storage in the hierarchy of computer storage. It i ...
,
NVMe
NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface specification for accessing a computer's non-volatile storage media usually attached via PCI Express (PCIe) bus. The ...
or
Persistent memory
In computer science, persistent memory is any method or apparatus for efficiently storing data structures such that they can continue to be accessed using memory instructions or memory APIs even after the end of the process that created or last mo ...
. Reading the data is done using a direct access to the record position on disk using a direct pointer from the
primary index, and data writes are optimized through large block writes to reduce
latency.
This architecture to fetch all records from the persistent device and void the use of
data cache. Aerospike also provides the ability to store the data fully in
RAM, thus acting as an in-memory database. In that case, data would be persisted to either SSD, NVMe, PMEM or traditional
rotational media
A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating platters coated with magneti ...
.
Aerospike provides single-record
ACID transactions. The distribution layer is responsible to replicate the data across nodes to ensure the
durability
Durability is the ability of a physical product to remain functional, without requiring excessive maintenance or repair, when faced with the challenges of normal operation over its design lifetime. There are several measures of durability in u ...
and
immediate consistency properties of the transaction. This allows the database to remain operational even when an individual server node fails or is manually removed from the cluster.
Since version 4.0 (2018), Aerospike Database can be configured both as Available and Partition-tolerant (AP) or Consistent and Partition-tolerant (CP) under the
CAP theorem.
The client cluster-aware layer is used to track the cluster configuration in the database, and manages client direct communications to all the nodes in the cluster.
The clustering is done using
heartbeats and
Paxos based
gossip protocol
A gossip protocol or epidemic protocol is a procedure or process of computer peer-to-peer communication that is based on the way epidemics spread. Some distributed systems use peer-to-peer gossip to ensure that data is disseminated to all members ...
algorithm.
The software employs two sub-programs that are codenamed Defragmenter and Evictor.
Defragmenter removes data blocks that have been deleted, and Evictor frees RAM space by removing references to expired records.
References
External links
*{{Official website, https://www.aerospike.com/
NoSQL
Key-value databases
Document-oriented_databases
Structured storage
Databases
Distributed data stores
Distributed computing architecture
Client-server database management systems
Free database management systems
Software using the GNU AGPL license