*** Welcome to piglix ***

Apache Cassandra

Apache Cassandra
Cassandra logo
Original author(s) Avinash Lakshman, Prashant Malik
Developer(s) Apache Software Foundation
Initial release 2008
Stable release
3.10 / February 3, 2017 (2017-02-03)
Development status Active
Written in Java
Operating system Cross-platform
Available in English
Type Database
License Apache License 2.0
Website cassandra.apache.org

Apache Cassandra is a free and open-source distributed 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 robust support for clusters spanning multiple datacenters, with asynchronous masterless replication allowing low latency operations for all clients.

Cassandra also places a high value on performance. In 2012, University of Toronto researchers studying NoSQL systems concluded that "In terms of scalability, there is a clear winner throughout our experiments. Cassandra achieves the highest throughput for the maximum number of nodes in all experiments" although "this comes at the price of high write and read latencies."

Avinash Lakshman (one of the authors of Amazon's Dynamo) and Prashant Malik initially developed Cassandra at Facebook to power the Facebook inbox search feature. Facebook released Cassandra as an open-source project on Google code in July 2008. In March 2009 it became an Apache Incubator project. On February 17, 2010 it graduated to a top-level project.

Facebook developers named their database after the Trojan mythological prophet Cassandra - with classical allusions to a curse on an oracle.

Releases after graduation include

Below an example of keyspace creation, including a column family in CQL 3.0:

Which gives:

Cassandra is not row level consistent.

Cassandra is essentially a hybrid between a key-value and a column-oriented (or tabular) database management system. Its data model is a partitioned row store with tunable consistency. Rows are organized into tables; the first component of a table's primary key is the partition key; within a partition, rows are clustered by the remaining columns of the key. Other columns may be indexed separately from the primary key.


...
Wikipedia

...