DEV Community

APPWRK IT Solutions
APPWRK IT Solutions

Posted on • Originally published at


How To Get Started With Apache Cassandra – A Distributive NoSql Database

Apache Cassandra is an open-source distributed database management system that is designed to handle huge amounts of data across various data centers and clouds, it provides high availability with no single point of failure.

Alt Text

It’s highly scalable, written in java, and offers many features that other relational and NoSQL databases cannot. Originally it was developed by Facebook for performing inbox search, they open-sourced it in 2008, and Cassandra became a part of Apache Incubator in 2009. It owns the ability to handle high volumes that make it beneficial for mega-corporations. Currently corporate giants such as Facebook, Apple, Instagram, Spotify, Twitter, Uber, Cisco, eBay, Netflix, and Rackspace.

Why Cassandra?

Do you want a more flexible data model in the world of relational databases? Get started with a Cassandra database that can scale up to meet any number of concurrent users and run fast blazingly. This database is with no single point of failure and can easily distribute data to multiple data centers, geographies, and the cloud.

Architecture of Cassandra

Alt Text

The Cassandra Architecture consists of the following elements:
Element - Function

Node - It is a basic data component where the data is stored.

Datacenter - It is a collection of all related networks of nodes and it can be a virtual or physical datacenter.

Cluster - It consists of one or more data centers and it can reach any required locations.

Commit Log - The write operations are kept in the commit log first and are used for crash recovery(the database is recovered to a usable and consistent state).

Mem-Table - Once the data is stored in the commit log, it’s kept in mem-table (memory table) and stored there until the threshold is reached.

SSTable - Sorted-String Table is a disk file to store MemTable data after it reaches the threshold. SStables are kept on disk in sequence and maintain the database table.

How Apache Cassandra is Unique?

Cassandra is one of the widely-used and most efficient NoSQL databases. One of the key benefits of the system is that it provides high service availability and consistent access with no failure. Data management is a key business factor a corporate needs to implement because the loss of data is not truly affordable. It handles and manages a huge amount of data across multiple servers. It is able to write down a huge amount of data quickly without interfering with the reading efficiency. It is accurate as well as fast for both small or large volumes of data. It provides horizontal scalability, allows the user to meet the sudden hike in demand as it enables the user to accommodate more customer data. It clearly offers massive data handling, operational simplicity, continuous availability, and easy data distribution.

How Cassandra Works?

The distributed design of Apache Cassandra is built on Amazon’s Dynamo and the peer-to-peer data system is based on Google’s Big Table. The fundamental architecture includes a cluster of nodes and everyone can write a request or accept a read. The key aspect of architecture is that all nodes can communicate among themselves and there is no master node.

Node is a particular location where data is stored in a cluster, cluster consist of a complete set of the data center where the data is stored and processed. The related nodes are paired together in the data centers. As a result, nodes can be added, the system can be expanded, concurrent users can be handled across the system.

The structure provides data protection and ensures data integrity with the commit log. The commit log keep backup thus ensures that data doesn’t get lost at any chance. In the memtable is the memory where Cassandra data is entered and indexed. There is always an active memtable per table and when a memtable threshold is reached it’s directly pushed to disk and converted into SSTables. In simple words, whenever the commit log gets full it triggers the flush to transfer memtables content to SStables. Commit log is one of the most important key aspects of Cassandra architecture as it provides a failsafe for data integrity and protection.

When To Use Cassandra?

Cassandra is used to storing a huge amount of data at a rapid speed. For example, while processing stock market data or telecom switch data, a large volume of data is generated every second. To search the data quickly you need to fully index the data where the data is sorted in a predetermined order. Using a key you can search the fully indexed data, thus the required information is fetched quickly. Cassandra enables you to add more data when data size grows so you can use it when you are expecting that there will be an upsurge in data size. The data clusters are highly fault-tolerant with no single point of failure and provide good performance for both read and write purposes.


In this blog, you have learned about how Cassandra is unique, how does it work, its architecture, its advantages, and when to use it? Cassandra is a great solution for mega corporates. Ideal database management system for businesses that can’t afford data loss or can’t let their database down when a server is disrupted. It’s easy to scale, easy to use, for consistently growing businesses. Apache Cassandra architecture is built to hold a huge amount of data of the concurrent users across the system. Despite being decentralized, it enables users to access and control data. With no single point of failure, the system delivers constant availability, data loss, and deduct downtime. You don’t need to shut down the system to accommodate more data, just add on the required number of new nodes. These surprising benefits altogether tempt major companies to implement Apache Cassandra.

Top comments (0)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.

One does not simply learn git