User:Wasiur/sandbox

 Aerospike Database

Aerospike Database is a scalable, distributed database that can be synchronized across multiple data centers. The database is targeted for operation using flash and solid state drives, enabling it to process data requests with very low latency, but can also use DRAM to store data. The software is produced by Aerospike Inc., and was launched in 2009. It is being used by AppNexus, BlueKai, TheTradeDesk, and eXelate, and has been featured in Entrepreneur magazine, Yahoo, and Businessweek.

History
Aerospike Database was first known as Citrusleaf 2.0. In August 2012, the company rebranded both the company and software name to Aerospike. The name Aerospike is derived from 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 as the number of data requests increases exponentially. In 2012, Aerospike acquired AlchemyDB, and integrated the two databases’ functions, including the addition of a relational data management system.

Aerospike Database is a NoSQL database, similar to Apache Cassandra and MongoDB. In benchmarked tests using 500 million records, Aerospike was able to maintain between 300,000 to 400,000 operations per second. Comparatively, the Cassandra and MongoDB databases reached a maximum of 40,000 operations per second.

The Aerospike software is utilized by online advertising companies, and users include adMarketplace, Tapad, Federated Media Publishing, and Chango. The software is capable of delivering targeted ads to customers with low latency, which is a feature in high demand for sites that create personalized ads for viewers of their pages. The database is also used in gaming, security, and e-commerce industries. A free, community edition of Aerospike database was released so that developers could maintain real-time databases for non-profits and small businesses.

Features
Aerospike Database is coded in C, and operates in three layers: a flash optimized data layer, a self-managed distribution layer and a cluster-aware client layer. The distribution layer is replicated across data centers to ensure consistency. The replication also allows the database to remain operational when an individual server node fails or is removed from the cluster. The smart client layer is used to track the cluster configuration in the database, and manages communications in the server node.

The data layer in Aerospike Database is optimized to store data in solid state drives, DRAM, or traditional rotational media. The database indices are stored in DRAM for quick availability, and data writes are optimized through large block writes to reduce latency. The software also employs two sub-programs that are codenamed Defragmenter and Evictor. Defragmenter removes data blocks that have been deleted, and Evictor frees DRAM space by removing references to expired records.

The database software can provide 1 millisecond response times, and Aerospike claims that 99.9% of responses occur in less than 5 ms. Over the past three years of operation by multiple companies, Aerospike database has had a 100% uptime. Its stability is attributed to its automatic failover, replication, and cross-data synchronization.