What is Cassandra good for?
"What is Apache Cassandra good for? What does it thrive at doing?" We hear this question a lot at Riptano.
The core of the answer is that Cassandra is great for situations that require any of
- fast read or write performance
- the ability to add more machines as you need additional capacity
- reliable cross-datacenter replication
and that don't require ACID transactions in the database layer.
But if you go up a level, what does that mean?
Cassandra excels at online transactions, also known as real time transactions: requests that need to fully execute in a small amount of time that the end user views as real time. In other words, queries need to execute at the single millisecond level, not the hundreds or thousands of milliseconds area. With Cassandra's multiple caching levels, your data can be served incredibly quickly. Every write is fast with Cassandra thanks to the log-structured storage design, and each write is persisted with a commit log. Cassandra is an excellent choice when downtime or data loss is unacceptable.
Cassandra does well in the other area of data management - analytics. With the current release, MapReduce is supported across your stored data. MapReduce is an algorithm popularized by Google that allows for analytical queries to be run on large data sets across large numbers of servers in parallel. It's not real time - typical jobs can take minutes if not hours - but it's capable of processing gigantic data sets to scour your data for the information you need.
Because Cassandra provides both online and analytical solutions, you can use a single technology to accomplish the majority of your data needs. This is beneficial for both development and operational teams because it reduces the number of systems you need. Given that Cassandra has shown to work at scale, you know you can trust it to perform well as your needs grow.
DataStax has many ways for you to advance in your career and knowledge.
You can take free classes, get certified, or read one of our many white papers.
register for classes
DBA's Guide to NoSQL