Cassandra Selection Criteria for NoSQL Databases


In looking at the features of Cassandra, it seems clear that many of them are aimed at particularly large enterprises, while others would also be useful for smaller applications. There are no clear-cut rules when you are selecting database software, but the following points offer a little guidance as to when you could be thinking about using Cassandra.

1. You have a lot of data

NoSQL solutions like Cassandra and HBase are built to work with billions of rows. If you have an extremely large amount of data that you need to hold in a database, then you should be considering installing Cassandra and testing to see if it meets your needs.

If you don’t yet have billions of rows, but think that you might one day, then Cassandra is still worth looking at. It will give you room to grow and you won’t have to take your application offline for an extended period if the time comes that you do need to scale your system.

2. You need to store data fast

Certain applications require that your database is able to accept and store data at a very fast rate. And many large companies that rely on user profiling and tracking have chosen to use Cassandra for this.

For example, if you are building web analytics software that tracks what people look at on your website, then on busy days the database will be bombarded by many thousands of small pieces of information at once. If the database cannot handle this information and write it to permanent storage quickly, the performance of your entire application will suffer.

Cassandra is optimized for writing data and outperforms both relational database systems and other NoSQL solutions in this area.

3. Vertical scaling is no longer cost-effective or appropriate

If you’ve upgraded your database server to the latest, greatest, and most expensive components but it is still struggling to work quickly enough then scaling horizontally (sharing the work between more computers) is the solution. Cassandra is designed to do this, and it does it very well.

Similarly, if you find that you need to deploy your database in multiple geographical areas or data centers then Cassandra’s distributed databases will help ensure that the data is available everywhere.

4. You want to add and remove servers from your cluster

If it is difficult for you to predict how many database servers you need, or you already know that you will need to change this in the future, then you will appreciate how easy is it to add nodes (computers) to a cluster (a collection of computers working on the same task) using Cassandra.

By comparison to many other database solutions, Cassandra makes it very straightforward to install the software on a new server and add that machine to the cluster.

5. Your data is a good fit for wide columns

Cassandra organizes information into columns – in a similar fashion to relational databases that you may have used or may already be using. If the data that you are storing fits nicely into columns then Cassandra is a good option for you. If not, there are types of NoSQL database that are not based around columns (for example, graph databases and key-value data stores).

Remember, wide-column databases are not the same as relational databases. If your data is extremely relational, it may not be worth the effort for you to adjust it.

6. You don’t know what you’re doing

That’s putting it bluntly, but Cassandra’s ease-of-use and excellent documentation are two of the reasons people are using it. You don’t need to be an expert in database administration or network infrastructure to use Cassandra. Many organizations also choose it even when they have large teams of well-trained IT staff – the quicker those people can learn and setup the database, the quicker they can move on to working on something else.

7. You have time

This might seem obvious but, as a final note, it is worth pointing out that even if your project falls into the situations above then there are still occasions when you might not want to migrate to Cassandra…yet.

Changing databases, or simply working with a new database for the first time, can be a lot more time-consuming than you might think. If you are in the middle of a busy project-development schedule then now is not a good time to change your database…unless you have hit unsurmountable problems with your current solution.

As an application developer, you must decide what the best solution for your current application is. This may be different from your last project, and the needs of the next one may be different again. Carefully work out what features your project needs from its database, and then evaluate whether Cassandra has those features. Do this as early in a product development plan as you can, and do it thoroughly – what works for Netflix, eBay, and GoDaddy might not work for you.

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>