Aerospike (database)

Last updated
Aerospike Database
Developer(s) Aerospike
Initial release2010;13 years ago (2010)
Stable release
6.0.0.0 / April 27, 2022;18 months ago (2022-04-27)
Repository
Written in C
Operating system Linux
Type Distributed Database, key-value database
License AGPL
Website www.aerospike.com

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, and Graph data models. Aerospike is open source distributed NoSQL database management system, marketed by the company also named Aerospike. [1]

Contents

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. [2] The name "Aerospike" is derived from the aerospike engine, a type of rocket nozzle 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. [3] In 2012, Aerospike acquired AlchemyDB, and integrated the two databases' functions, including the addition of a relational data management system. [4] 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. [5] [6] [7]

Release history

VersionFirst Release VersionFirst Release DateLatest VersionRelease dateFeaturesRef
Old version, no longer maintained: 3.13.1.3January 2, 20143.1.14February 25, 2014

[8]

Old version, no longer maintained: 3.23.2.0March 19, 20143.2.9May 12, 2014

[8]

Old version, no longer maintained: 3.33.3.5June 9, 20143.3.26December 3, 2014

[8]

Old version, no longer maintained: 3.43.4.0December 8, 20143.4.1January 12, 2015

[8]

Old version, no longer maintained: 3.53.5.2February 13, 20153.5.15July 15, 2015

[8]

Old version, no longer maintained: 3.63.6.0August 31, 20153.6.4November 10, 2015

[8]

Old version, no longer maintained: 3.73.7.0December 10, 20153.7.5.1March 31, 2016

[9] [8]

Old version, no longer maintained: 3.83.8.1April 15, 20163.8.4June 17, 2016
  • Secondary Index on List, Map & Geospatial

[10] [8]

Old version, no longer maintained: 3.93.9.0July 11, 20163.9.1.1September 2, 2016
  • Rapid Rebalance

[11] [8]

Old version, no longer maintained: 3.103.10.0.3October 21, 20163.10.1.5January 13, 2017
  • Durable Delete
  • Support IPv6

[12] [8]

Old version, no longer maintained: 3.113.11.0January 5, 20173.11.1.1February 15, 2017

[13] [8]

Old version, no longer maintained: 3.123.12.0March 15, 20173.12.1.3July 31, 2017
  • Predicate Filters

[14] [8]

Old version, no longer maintained: 3.133.13.0.1May 30, 20173.13.0.11April 26, 2018
  • Clustering Layer refactoring
  • Required "Jump" Release before 3.14

[15] [8]

Old version, no longer maintained: 3.143.14.0June 6, 20173.14.1.10April 26, 2018
  • Clustering Layer refactoring pt. 2

[15] [8]

Old version, no longer maintained: 3.153.15.0.1October 3, 20173.15.1.4January 3, 2018

[8]

Old version, no longer maintained: 3.163.16.0.1February 21, 20183.16.0.6March 2, 2018

[8]

Old version, no longer maintained: 4.04.0.0.1March 7, 20184.0.0.6September 6, 2018

[16] [17]

Old version, no longer maintained: 4.14.1.0.1May 10, 20184.1.0.6September 6, 2018

[18] [17]

Old version, no longer maintained: 4.24.2.0.2May 31, 20184.2.0.10August 10, 2018
  • Increase maximum object size to 8MB

[19] [17]

Old version, no longer maintained: 4.34.3.0.2August 1, 20184.3.1.14April 26, 2019
  • All Flash Namespaces

[20] [17]

Old version, no longer maintained: 4.44.4.0.4November 19, 20184.4.0.15April 26, 2019
  • Change notification Framework - connectors for Apache Kafka and JMS
  • Rack aware reads

[21] [17]

Old version, no longer maintained: 4.54.5.0.1December 12, 20184.5.3.22July 7, 2020

[22] [17]

Old version, no longer maintained: 4.64.6.0.2August 9, 20194.6.0.21September 18, 2020
  • Added bitwise BLOB operations
  • Nested Collection Data Type API support

[17]

Old version, no longer maintained: 4.74.7.0.2September 30, 20194.7.0.26November 25, 2020
  • ADQ Support

[23] [17]

Old version, no longer maintained: 4.84.8.0.1December 12, 20194.8.0.31March 29, 2021
  • Support for client/server compression
  • Support for Intel Persistent Memory for storing data

[24] [17]

Older version, yet still maintained: 4.94.9.0.3April 8, 20204.9.0.36October 25, 2021
  • Added support for HyperLogLog (HLL) data types
  • Improve Scans for non key value access
  • Modify Eviction/Expiration (TTL) Default behavior
  • Required "Jump" Release before 5.0 (LTS)

[25] [17]

Old version, no longer maintained: 5.05.0.0.3May 14, 20205.0.0.38July 19, 2021
  • Refactor cross datacenter replication (XDR)
  • Strong consistency multi site clustering

[26] [17]

Old version, no longer maintained: 5.15.1.0.3July 31, 20205.1.0.42September 20, 2021

[27] [17]

Old version, no longer maintained: 5.25.2.02October 1, 20205.2.0.37October 30, 2021
  • Redesigned predicate expressions

[28] [17]

Older version, yet still maintained: 5.35.3.0.2December 10, 20205.3.0.27October 30, 2021
  • Added expression filtering for XDR
  • Expanded Multi-Site Clustering

[29] [17]

Older version, yet still maintained: 5.45.4.0.1January 13, 20215.4.0.22October 30, 2021
  • Added bin level convergence for active-active XDR scenarios

[30] [17]

Older version, yet still maintained: 5.55.5.0.2February 5, 20215.5.0.20October 30, 2021

[17]

Older version, yet still maintained: 5.65.6.0.3May 10, 20215.6.0.14October 30, 2021
  • Aerospike Expressions
  • Set Indexes
  • Per-user quotas
  • Boolean datatype

[31] [17]

Older version, yet still maintained: 5.75.7.0.7September 27, 20215.7.0.9December 10, 2021
  • Improved memory footprint and garbage collection for secondary indices
  • Support for PKI authentication

[32] [17]

Current stable version:6.06.0.0.0April 27, 20226.0.0.0April 27, 2022
  • Storing, Indexing and Querying JSON Documents
  • Partitioned Secondary Index Queries

[33] [17]

Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release

Features

Aerospike Database is modeled under the shared-nothing architecture and written in C. It operates in three layers: a data storage layer, a self-managed distribution layer, and a cluster-aware client layer. [34]

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, NVMe or Persistent memory. [35] 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. [34] 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. [2]

Aerospike provides single-record ACID transactions. [36] The distribution layer is responsible to replicate the data across nodes to ensure the durability 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. [34] 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. [37] [38]

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. [34] The clustering is done using heartbeats and Paxos based gossip protocol algorithm. [39]

The software employs two sub-programs that are codenamed Defragmenter and Evictor. [34] [40] Defragmenter removes data blocks that have been deleted, and Evictor frees RAM space by removing references to expired records. [34] [41]

Related Research Articles

<span class="mw-page-title-main">MySQL</span> SQL database engine software

MySQL is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database organizes data into one or more data tables in which data may be related to each other; these relations help structure the data. SQL is a language that programmers use to create, modify and extract data from the relational database, as well as control user access to the database. In addition to relational databases and SQL, an RDBMS like MySQL works with an operating system to implement a relational database in a computer's storage system, manages users, allows for network access and facilitates testing database integrity and creation of backups.

<span class="mw-page-title-main">PostgreSQL</span> Free and open-source relational database management system

PostgreSQL, also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the Ingres database developed at the University of California, Berkeley. In 1996, the project was renamed to PostgreSQL to reflect its support for SQL. After a review in 2007, the development team decided to keep the name PostgreSQL and the alias Postgres.

<span class="mw-page-title-main">Informix</span> Database management software product family

Informix is a product family within IBM's Information Management division that is centered on several relational database management system (RDBMS) and Multi-model database offerings. The Informix products were originally developed by Informix Corporation, whose Informix Software subsidiary was acquired by IBM in 2001.

Memcached is a general-purpose distributed memory-caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source must be read. Memcached is free and open-source software, licensed under the Revised BSD license. Memcached runs on Unix-like operating systems and on Microsoft Windows. It depends on the libevent library.

Multi-master replication is a method of database replication which allows data to be stored by a group of computers, and updated by any member of the group. All members are responsive to client data queries. The multi-master replication system is responsible for propagating the data modifications made by each member to the rest of the group and resolving any conflicts that might arise between concurrent changes made by different members.

<span class="mw-page-title-main">H2 (database)</span>

H2 is a relational database management system written in Java. It can be embedded in Java applications or run in client-server mode.

Microsoft SQL Server is a proprietary relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network. Microsoft markets at least a dozen different editions of Microsoft SQL Server, aimed at different audiences and for workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users.

<span class="mw-page-title-main">Apache Cassandra</span> Free and open-source database management system

Cassandra is a free and open-source, distributed, wide-column store, NoSQL database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. Cassandra offers support for clusters spanning multiple datacenters, with asynchronous masterless replication allowing low latency operations for all clients. Cassandra was designed to implement a combination of Amazon's Dynamo distributed storage and replication techniques combined with Google's Bigtable data and storage engine model.

<span class="mw-page-title-main">Exasol</span> Database management software company

Exasol is an analytics database management software company. Its product is called Exasol, an in-memory, column-oriented, relational database management system

MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and current versions are licensed under the Server Side Public License (SSPL) which is considered non-free by some organizations and distributions. MongoDB is a member of the MACH Alliance.

NoSQL is an approach to database design that focuses on providing a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Instead of the typical tabular structure of a relational database, NoSQL databases house data within one data structure. Since this non-relational database design does not require a schema, it offers rapid scalability to manage large and typically unstructured data sets. NoSQL systems are also sometimes called "Not only SQL" to emphasize that they may support SQL-like query languages or sit alongside SQL databases in polyglot-persistent architectures.

<span class="mw-page-title-main">Couchbase Server</span> Open-source NoSQL database

Couchbase Server, originally known as Membase, is a source-available, distributed multi-model NoSQL document-oriented database software package optimized for interactive applications. These applications may serve many concurrent users by creating, storing, retrieving, aggregating, manipulating and presenting data. In support of these kinds of application needs, Couchbase Server is designed to provide easy-to-scale key-value, or JSON document access, with low latency and high sustainability throughput. It is designed to be clustered from a single machine to very large-scale deployments spanning many machines.

Riak is a distributed NoSQL key-value data store that offers high availability, fault tolerance, operational simplicity, and scalability. Riak moved to an entirely open-source project in August 2017, with many of the licensed Enterprise Edition features being incorporated. Riak implements the principles from Amazon's Dynamo paper with heavy influence from the CAP theorem. Written in Erlang, Riak has fault-tolerant data replication and automatic data distribution across the cluster for performance and resilience.

<span class="mw-page-title-main">Actian Zen</span>

Actian Zen is an ACID-compliant, Zero-DBA, Embedded, Nano-footprint, Multi-Model, Multi-Platform database management system (DBMS) developed originally by Pervasive Software, which was acquired by Actian Corporation in 2013.

<span class="mw-page-title-main">IBM FlashSystem</span> IBM Storage enterprise system that store data on flash memory

IBM FlashSystem is an IBM Storage enterprise system that stores data on flash memory. Unlike storage systems that use standard solid-state drives, IBM FlashSystem products incorporate custom hardware based on technology from the 2012 IBM acquisition of Texas Memory Systems.

Aerospike is the company behind the Aerospike open source NoSQL distributed database management system. Citrusleaf, a Mountain View, California based company which rebranded to Aerospike in August 2012, announced the product in 2011. The software is used by developers to deploy real-time big data applications.

FoundationDB is a free and open-source multi-model distributed NoSQL database developed by Apple Inc. with a shared-nothing architecture. The product was designed around a "core" database, with additional features supplied in "layers." The core database exposes an ordered key–value store with transactions. The transactions are able to read or write multiple keys stored on any machine in the cluster while fully supporting ACID properties. Transactions are used to implement a variety of data models via layers.

Druid is a column-oriented, open-source, distributed data store written in Java. Druid is designed to quickly ingest massive quantities of event data, and provide low-latency queries on top of the data. The name Druid comes from the shapeshifting Druid class in many role-playing games, to reflect that the architecture of the system can shift to solve different types of data problems.

<span class="mw-page-title-main">Dell Technologies PowerFlex</span> Software-defined storage product

Dell Technologies PowerFlex, is a commercial software-defined storage product from Dell Technologies that creates a server-based storage area network (SAN) from local server storage using x86 servers. It converts this direct-attached storage into shared block storage that runs over an IP-based network.

<span class="mw-page-title-main">YugabyteDB</span> Transactional distributed SQL database

YugabyteDB is a high-performance transactional distributed SQL database for cloud-native applications, developed by Yugabyte.

References

  1. Yuhanna, Noel (15 October 2014). "NoSQL Key-Value Databases, Q3 2014". Forrester Research . Retrieved 29 November 2014.
  2. 1 2 "Aerospike, the former Citrusleaf". DBMS2. August 27, 2012. Retrieved 17 May 2013.
  3. "Definition of Aerospike engine". Wordiq. Archived from the original on 24 December 2004. Retrieved 17 May 2013.
  4. Klint Finley (August 28, 2012). "Grim And Gritty Startup Reboot: NoSQL Company Citrusleaf Changes Name And Acquires AlchemyDB". TechCrunch . Retrieved November 25, 2014.
  5. Jack Clark (June 24, 2014). "Aerospike: Thanks for that $20m, VCs ... next we'll OPEN SOURCE our NoSQL database". The Register . Retrieved November 25, 2014.
  6. Rachel Schramm (24 June 2014). "Aerospike open sources NoSQL database in bid to expand customer ranks". Silicon Angle. Retrieved 30 July 2014.
  7. Abel Avram (24 June 2014). "Aerospike Open Sources Their In-memory NoSQL Database". InfoQ. Retrieved 30 July 2014.
  8. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 "Aerospike Release Notes Pre 4.0". Archived from the original on 11 September 2018. Retrieved 17 Feb 2021.{{cite web}}: CS1 maint: unfit URL (link)
  9. "Aerospike 3.7.0 Release". Aerospike. 14 December 2015. Retrieved 17 February 2021.
  10. "Aerospike 3.8 Release". Aerospike. 16 April 2016. Retrieved 17 February 2021.
  11. "Aerospike 3.9 Release". Aerospike. 12 July 2016. Retrieved 17 February 2021.
  12. "What's New in Aerospike 3.10?". Aerospike. 25 October 2016. Retrieved 17 February 2021.
  13. "What's New in Aerospike 3.11?". Aerospike. 31 January 2017. Retrieved 17 February 2021.
  14. "What's New in Aerospike 3.12?". Aerospike. 4 April 2017. Retrieved 17 February 2021.
  15. 1 2 "What's New in Aerospike 3.13 and 3.14?". Aerospike. 20 June 2017. Retrieved 17 February 2021.
  16. "Aerospike 4.0, Strong Consistency, and Jepsen". Aerospike. 7 March 2018. Retrieved 17 February 2021.
  17. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 "Aerospike Release Notes" . Retrieved 17 February 2021.
  18. "Aerospike 4.1". Aerospike. 11 May 2018. Retrieved 17 February 2021.
  19. "Aerospike 4.2: Storage Efficiency and Speed Improvements". Aerospike. 5 June 2018. Retrieved 17 February 2021.
  20. "Aerospike 4.3: All Flash & Uniform Balance". Aerospike. August 1, 2018. Retrieved 17 February 2021.
  21. "Aerospike 4.4: Change Notification and Operational Improvements". Aerospike. 19 November 2018. Retrieved 17 February 2021.
  22. "Aerospike 4.5: Persistent Memory and Compression". Aerospike. 13 December 2018. Retrieved 17 February 2021.
  23. "Announcing Aerospike 4.7 – the First Commercial Database to Support the Intel® Ethernet 800 Series with ADQ". Aerospike. 24 September 2019. Retrieved 17 February 2021.
  24. "Aerospike 4.8: Enhanced Persistent Memory Support and Compression". Aerospike. 10 December 2019. Retrieved 17 February 2021.
  25. "Aerospike 4.9: New Functionality for Developers". Aerospike. 17 April 2020. Retrieved 17 February 2021.
  26. "Aerospike Database 5: Multi-site Clustering and Cross Datacenter Replication". Aerospike. 12 May 2020. Retrieved 17 February 2021.
  27. "Aerospike Database 5.1: Security Enhancements including HashiCorp Vault Integration". Aerospike. 30 July 2020. Retrieved 17 February 2021.
  28. "Aerospike Database 5.2: XDR Enhancements & Predicate Filters". Aerospike. 30 September 2020. Retrieved 17 February 2021.
  29. "Aerospike Database 5.3: XDR Filtering with Expressions & Expanded Multi-Site Clustering". Aerospike. 18 November 2020. Retrieved 17 February 2021.
  30. "Aerospike Database 5.4: Usability Improvements & Human-Readable XDR Filter Expressions". Aerospike. 13 January 2021. Retrieved 17 February 2021.
  31. "Aerospike Database 5.6: Developer Cornucopia". Aerospike. 12 May 2021. Retrieved 12 May 2021.
  32. "Aerospike Database 5.7.0.7". Aerospike. 11 November 2021. Retrieved 11 November 2021.
  33. "Aerospike Database 6". Aerospike. 27 April 2022. Retrieved 11 April 2022.
  34. 1 2 3 4 5 6 "Aerospike: Architecture of a Real-Time Operational DBMS" (PDF). Retrieved 16 Feb 2021.
  35. "Enhanced Persistent Memory Support and Compression". December 19, 2019. Retrieved 2021-02-16.
  36. "CAP and ACID | Aerospike". www.aerospike.com. Retrieved 18 February 2021.
  37. Kingsbury, Kyle (2018-03-07). "Jepsen: Aerospike 3.99.0.3". jepsen.io. Retrieved 18 February 2021.
  38. "Strong Consistency mode | Aerospike". www.aerospike.com. Retrieved 18 February 2021.
  39. "Clustering | High-speed Distributed Cluster Formation". www.aerospike.com. Retrieved 2021-02-16.
  40. "CTO Panel on Super Storm Sandy and 100% Uptime". December 14, 2012. Archived from the original on 3 March 2013. Retrieved 17 May 2013.
  41. "Documentation | Aerospike". www.aerospike.com. Retrieved 2020-07-28.