Interview :: Cassandra
Cassandra is a popular NOSQL database management system used to handle large amount of data. It is free and open source distributed database that provides high availability without any failure.
Cassandra is written in Java. It is originally designed by Facebook consisting of flexible schemas. It is highly scalable for big data.
The original authors of Cassandra are Avinash Lakshman and Prashant Malik. It was initially developed at Facebook to power the Facebook inbox search feature.
Cassandra introduced its own Cassandra Query Language (CQL). CQL is a simple interface for accessing Cassandra, as an alternative to the traditional Structured Query Language (SQL).
- Cassandra delivers real-time performance simplifying the work of Developers, Administrators, Data Analysts and Software Engineers.
- It provides extensible scalability and can be easily scaled up and scaled down as per the requirements.
- Data can be replicated to several nodes for fault-tolerance.
- Being a distributed management system, there is no single point of failure.
- Every node in a cluster contains different data and able to serve any request.
Cassandra stores its data in the data dictionary.
The main design goal of Cassandra was to handle big data workloads across multiple nodes without a single point of failure.
There are mainly 4 types of NoSQL databases:
- Document store types ( MongoDB and CouchDB)
- Key-Value store types ( Redis and Volgemort)
- Column store types ( Cassandra)
- Graph store types ( Neo4j and Giraph)
These are some key components of Cassandra data model: -
- Table( collection of columns)
- Node
- Cluster
- Keyspace
Some other components of Cassandra are:
- Node
- Data Center
- Commit log
- Mem-table
- SSTable
- Bloom Filter