Simple solutions to complex problems
Apache Cassandra provides some unique benefits that make it a must have in any database developer’s toolkit. I will not argue that every company should use Cassandra as its primary database, however there are strong reasons why every company should use Cassandra as one of its databases.
The top 5 reasons to use Cassandra are:
Let’s discuss the logic behind each of the reasons to add Cassandra to your database mix.
Cassandra provides simple solutions to complex problems such as logging and metrics collection. While Cassandra can be used as a company’s primary database, which is what Netflix does, a good place to start with Cassandra is to use it to simplify point solutions.
Logging is both extremely valuable and painful. Centralizing and analyzing logs becomes difficult as soon as you have multiple servers and multiple clients (iOS, Android, web). Multiple clients and servers are a basic reality for both startups and enterprises.
Cassandra provides an elegant and simple solution to centralized logging. Creating a logging solution in Cassandra is simple, the solution scales extremely well, uptime is amazing, and administration overhead is very low. In practical terms, Cassandra simplifies logging to the point where you’ll spend less time on logging and more on developing features for your app.
As with logging, collecting metrics in Cassandra is equally simple. The fast, linear scalability of writes in Cassandra means that your centralized logging and metrics collection system will easily scale with your business while requiring a minimum of maintenance overhead.
Cassandra requires 30 days to go from absolute beginner to production ready. It is easy to learn because is has one of the smallest technical footprints of any major database.
All this is not to say that you can learn to use Cassandra as well as Netflix in a month. However, you can learn enough to use Cassandra in production which will allow you to simplify a portion of your data workload.
The small investment in learning Cassandra provides a massive ROI on your time and is well worth the effort to learn.
Cassandra is relatively easy to administer. As with any database technology, Cassandra administration does require some skill. However, when compared to other databases the administration costs in time and money are very low.
If you are offloading point solutions, such as logging and metrics, to Cassandra, then the low administration overhead will reduce the amount of time your team spends on non-core activities.
As you gain experience with Cassandra, the low administration overhead can be leveraged to overload even more tasks to Cassandra.
Cassandra provides a masterless cluster with no single point of failure. This results in an extremely fault tolerant system. In simple terms, your users will never know if a server, an entire rack of servers, or even if an entire data center fails.
The masterless nature of Cassandra is noticeable when performing rolling upgrades or other routine maintenance. The overhead and user impact of displaying “down for maintenance” screens are completely eliminated with Cassandra.
Cassandra provides extremely fast, linearly scalable writes. Fast writes are an absolute necessity when deploying Cassandra for logging and metrics collection workloads. Of course, fast writes also come in handy when Cassandra is used as a general purpose database.
Cassandra, while famous for write performance, also provides very fast reads. The key to fast reads is a proper data model.
Lastly, Cassandra delivers linear scalability which makes increasing read and write performance very simple. In practical terms, once you’ve measured your write performance for a single server you easily calculate how many servers to add to your cluster based on your required performance levels.
Given Cassandra’s flat learning curve and its unique benefits there are few reasons not to invest a small amount of time to add a powerful database to your persistence layer.
The best way to start with Cassandra is to use it for point solutions, such as centralized logging and metrics collection. Using Cassandra for these point solutions allow you to leverage its strengths to build simple solutions that require a minimum of maintenance time and effort.
As you gain experience with Cassandra you can leverage its blazing fast reads and writes plus extreme fault tolerance to give your users better application availability and stability.
We specialize in helping professional developers, like you, expand your skill set. Our courses are focused on enabling you to learn everything necessary to use a new technology in a live, production application.
All courses are made with love in
Palo Alto, CA.
Subscribe to our newsletter