What is Reaper?Reaper is a centralized, stateful, and highly configurable tool for running Apache Cassandra™ repairs against single or multi-site clusters.
It is an open source project, originally developed by Spotify™, that we forked to add support for latest versions and features of Apache Cassandra™.
The current version supports running Apache Cassandra™ cluster repairs in a segmented manner, opportunistically running multiple parallel repairs at the same time on different nodes within the cluster. Basic repair scheduling functionality is supported as well.
Reaper supports multiple interfaces : a REST endpoint, a command line tool, and a GUI for maximum convenience.
The code and releases are fully available in our GitHub repository.
Main features of Reaper
- Supports the following versions of Apache Cassandra™ : 2.0.x, 2.1.x, 2.2.x, 3.0.x and 3.x
- Tunable sub-range repairs
- Start, pause, cancel repairs
- Simple scheduler for cyclic repair jobs
- Optional automatic scheduler for no brainer maintenance of multiple clusters
- Support for incremental repair
- Handle backpressure in case nodes have too many pending compactions
- Cluster status view (health, size on disk for nodes/racks/datacenters)
How does Reaper work ?
Reaper performs all operations by connecting to the nodes using JMX. This allows it to start and stop repair processes, track repair completion, and gather metrics about pending compactions to handle backpressure.
To have Reaper running properly, there is a requirement that its instances can access all nodes using JMX.
Both a local and fault tolerant mode are currently being developed and should be generally available in the near future. Both modes allow multiple Reaper instances to collaborate on the same repair jobs; each one handling the work for its locally accessible nodes.