Apache Cassandra®, developed and supported by the Apache project, is a FOSS database management system for NoSQL databases. The application was originally developed by Facebook to support inbox search features, and in July 2008 it was released as an Open Source project. In 2009 Cassandra became part of the Apache Incubator project before becoming an Apache Top-Level project in 2010.
The main feature of Apache Cassandra® is its ability to distribute data over a large number of servers to not only ensure high availability but also to make sure that no single point of failure exists. Apache Cassandra®’s cluster concept is also “masterless”, i.e. does not have a specific controlling server, rather it consists of a cooperating network of all the servers included in the cluster. One of the key features of this tight network is the replication across various data centers.
Instead of, as is often the case, using SQL as the query language, Apache Cassandra® provides CQL – Cassandra® Query Language. This adds another layer of abstraction between the database and users, and contains a multitude of commands specifically tailored to Cassandra and cluster applications. As a Java-based system, Apache Cassandra® can be monitored using Java Management Extensions. For example, Nodetool can be used as the management system in order to add machines to/remove them from the cluster, for instance.