Apache Cassandra is a free and open-source NoSQL database management system that is designed to handle large amounts of data with no single point of failure. In this post, I’m going to highlight 3 different tools that make life easier when using Apache Cassandra.
The first tool I’m going to talk about is called “Cassandra Migration“. As the name suggests, this is a simple and lightweight Apache Cassandra database schema migration tool. It is a Kotlin fork of Contrast Security’s Cassandra Migration project. It is designed to work similarly to Flyway with support for both plain CQL and Java-based migrations, using DataStax’s Cassandra Java driver in its implementation. The main limitation with this tool is that the tool does not roll back the database upon migration failure. You’re expected to manually restore it’s backup if need be.
The second tool that I’m going to talk about is called “ValuStor“. It is a key-value pair database solution that resolves a number of out-of-the-box limitations including lack of persistent storage, type-inflexibility, no direct redundancy or failover capabilities, poor scalability, and lack of TLS support. It can also be used for JSON document storage and asynchronous distributed messaging applications. It’s main features include:
- A single header-only implementation makes it easy to drop into C++ projects.
- An optional backlog queues data in the event that the database is temporarily inaccessible.
- Adaptive fault tolerance, consistency, and availability.
- TLS support, including client authentication
- Supports a variety of native C++ data types in the keys and values.
- Simple API: Only a single
store()
and a singleretrieve()
function are needed. There is no need to write database queries. - RAM-like database performance for most applications.
- There is no need to batch read or write requests for performance.
- There is no special client configuration required for redundancy, scalability, or multi-thread performance.
The last tool we are going to talk about is called “CassKop“. The CassKop Cassandra Kubernetes operator makes it easy to run Apache Cassandra on Kubernetes. This operator allows to easily create and manage racks and data centers aware of Cassandra clusters. It is also based on the CoreOS operator-sdk tools and APIs. It’s main features include:
- Deployment of a C* cluster (rack or AZ aware)
- Scaling up the cluster (with cleanup)
- Scaling down the cluster (with decommission prior to Kubernetes scale down)
- Pods operations (removenode, upgradesstable, cleanup, rebuild..)
- Adding a Cassandra DC
- Removing a Cassandra DC
- Setting and modifying configuration files
- Setting and modifying configuration parameters
- Update of the Cassandra docker image
- Rolling update of a Cassandra cluster
- Rolling restart of a Cassandra rack
- Stopping a Kubernetes node for maintenance
- Manage operations on pods through CassKop plugin (cleanup, rebuild, upgradesstable, removenode..)
- Performing live Cassandra repairs through the use of Cassandra reaper
Cassandra.Link is a knowledge base that our team created to act as a central POI for all things Apache Cassandra. Our goal with Cassandra.Link was to not only fill the gap of Planet Cassandra but we want to bring the Cassandra community, no matter what variant they use, together. Feel free to reach out if you wish to collaborate with us on this project in any capacity.
We are a technology company that specializes in building business platforms. If you have any questions about the tools discussed in this post or about any of our services, feel free to send us an email!
- 3 Useful Apache Cassandra Tools: Part 1
- 3 Useful Apache Cassandra Tools: Part 2
- 3 Useful Apache Cassandra Tools: Part 3
- 3 Useful Apache Cassandra Tools: Part 4
- 3 Useful Apache Cassandra Tools: Part 5