Aerospike (database)
   HOME

TheInfoList



OR:

Aerospike Database is a real-time, high performance NoSQL database. Designed for applications that cannot experience any downtime and require high read & write throughput. Aerospike is optimized to run on NVMe SSDs capable of efficiently storing large datasets (Gigabytes to Petabytes). Aerospike can also be deployed as a fully in-memory cache database. Aerospike offers Key-Value, JSON Document, Graph data, and Vector Search models. Aerospike is an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
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 ...
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 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 were proposed for many single-stage- ...
, 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 u ...
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 The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software ...
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 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 type of solid-state storage device that uses integrated circuits to store data persistently. It is sometimes called semiconductor storage device, solid-state device, or solid-state disk. SSDs rely on non- ...
,
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 the PCI Express bus. The in ...
or
Persistent memory Persistent may refer to: * Persistent data * Persistent data structure * Persistent identifier * Persistent memory * Persistent organic pollutant * Persistent Systems, a technology company * USS ''Persistent'', three United States Navy ships ...
. 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 A CPU cache is a hardware cache used by the central processing unit (CPU) of a computer to reduce the average cost (time or energy) to access data from the main memory. A cache is a smaller, faster memory, located closer to a processor core, which ...
. Aerospike also provides the ability to store the data fully in
RAM Ram, ram, or RAM most commonly refers to: * A male sheep * Random-access memory, computer memory * Ram Trucks, US, since 2009 ** List of vehicles named Dodge Ram, trucks and vans ** Ram Pickup, produced by Ram Trucks Ram, ram, or RAM may also ref ...
, thus acting as an in-memory database. In that case, data would be persisted to either SSD, NVMe, PMEM or traditional rotational media. 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 us ...
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 In database theory, the CAP theorem, also named Brewer's theorem after computer scientist Eric Brewer (scientist), Eric Brewer, states that any distributed data store can provide at most Inconsistent triad, two of the following three guarantees: ; ...
. 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/ Client-server database management systems Distributed data stores Distributed computing architecture Document-oriented_databases Free database management systems Key-value databases NoSQL Software using the GNU Affero General Public License Structured storage