Aerospike is an open source, in-memory NoSQL DBMS. It's a key-value data store designed to deliver sub-millisecond response time for real-time big data applications.
Aerospike Version 3.4.0 offers the ability to query using secondary indexes, user-defined functions that run on the Aerospike database server, new complex data types (lists and maps) and analytics functionality that can run MapReduce-like jobs on top of data that's constantly changing. This latest version also delivers improved enterprise security as well as numerous performance and storage improvements.
The three main components of Aerospike are:
- Aerospike database server main database engine, which was designed to be distributed with failover and to use either random access memory or solid-state drives (SSDs) to store data.
- Aerospike Smart Clients, which come in several different programming languages and maintain constant contact with the Aerospike cluster. If the number of nodes changes, the smart client will receive an update and remap requests, so the developer isn't required to do so.
- Aerospike Management Console, which uses a Web interface that enables Aerospike administrators to manage their clusters.
The commercial edition adds three features unavailable in the open source edition:
- Cross Datacenter Replication, which enables companies to synchronize multiple clusters, typically in different data centers. Replication of this nature is typically enabled to support business continuity in the event that a data center becomes unavailable.
- Fast Restart enables companies that use SSDs to store the indexes in shared memory. With fast restart, you can quickly upgrade clusters, bringing up individual servers without rebuilding the index from data on the SSDs.
- User and roles-based security, which gives users read, read/write and administrative control.
A typical use case for Aerospike is to cache data, storing session information or user profiles for ID mapping. It's ideal for personalizing the user experience on Web portals and mobile applications.
One of the more compelling capabilities of Aerospike is that it simplifies development for programmers to build and operate new applications at scale with minimal up-front administration work. While many NoSQL DBMSes require the developer to define sharding and replication requirements, Aerospike does this automatically. Once applications are running, it's easy to add a new node to an existing cluster and increase the throughput and capacity. No planning or downtime is required.
OSes supported by Aerospike
Aerospike runs on Linux. Support is available for many different Linux distributions, including pre-built binaries for Red Hat, Ubuntu, CentOS and Debian.
Aerospike can be licensed as open source or commercially. For open source, Aerospike clients are available under an Apache-style license, while the server uses an Affero General Public License. Aerospike is sold directly from the vendor. Pricing is based on the volume of unique data used in production rather than the number of servers deployed, transactions per second or even for replicated data within a cluster or data replicated across data centers. Aerospike provides 24/7 support via phone or email with a commercial license.
A free trial version is available under the open source Community edition. The Startup Special gives qualified companies (under $2 million in revenue, $20 million in funding) free access to the Enterprise edition.
Aerospike data types
Developers can use multiple bins with different types. The data types currently supported are string, integer, blob, lists and maps; lists and maps can be recursive. Aerospike also supports arbitrarily large amounts of data using large data types that can be stored without fully rewriting the entire record.
About the author
Craig S. Mullins is a data management strategist, researcher, consultant and author with more than 30 years of experience in all facets of database systems development. He is president and principal consultant of Mullins Consulting Inc. and publisher/editor of TheDatabaseSite.com. Email him at email@example.com.