Facebook Cassandra

Cassandra is a column oriented, eventually consistent, distributed storage system for managing very large amounts of structured data. The Cassandra system was designed to run on cheap commodity hardware and handle high write throughput while not sacrificing read efficiency.

What is eventually consistent?

Building reliable distributed systems on a global scale demands trade-offs between consistency and availability .Consistency in a nutshell means that when something is written, it is expected that all reads after the write will have access to that written data. In Cassandra, due to its distributed nature, there are no such hard guarantees. However, we can say that it eventually reaches a consistent state because all data is eventually replicated across the distributed data store. 

Cassandra was designed with the understanding that system/hardware failures will and do occur. Due to this, Cassandra was developed as a peer to peer distributed system where all nodes serve the same functions, meaning there is no single point of failure. One of Cassandra’s greatest strength is its availability and scaling, it achieves this through a fully distributed system where data is replicated across multiple nodes according to user settings.

Data reading and writing is abstracted away from the application, which allows the application to read/write to any node in the system and always expect that the data is replicated across multiple nodes. According to the tunable consistency setting, the user can also achieve complete consistency, a compromise of consistency and speed, or little to no consistency.

Cassandra is a robust solution for those requiring a reasonably consistent, highly available, and scalable fault-tolerant data store. Cassandra is also a great solution for those migrating from relational databases to No SQL due to the Cassandra Query Language, which is essentially a subset of SQL, making Cassandra more accessible than competitors. Cassandra maintains itself as a leader in speed and efficiency within the No SQL domain, so if the goal is to create an application with intensive and quick reads and writes, then Cassandra is the ideal solution.