thelastpickle / cassandra-reaper

Automated Repair Awesomeness for Apache Cassandra
http://cassandra-reaper.io/
Apache License 2.0
490 stars 218 forks source link

RandomPartition compatibility #1279

Closed kngatineau closed 1 year ago

kngatineau commented 1 year ago

Hello,

I am working on setting up Reaper with two Cassandra clusters, one Cassandra 3.11.14 cluster using RandomPartition partitioner and one Cassandra 4.0.2 cluster configured with Murmur3Partition.

I am looking for a tool that can support both partitioners with repairs and was hoping to get clarity on if this is possible with Reaper. If not, what would need to be done to add support for the RandomPartition partitioner.

I apologize if this is one of those "go read the docs" questions, however, I am struggling to find out what the partitioner compatibility is for this service and I am new to Cassandra. I am seeing that this tool works with Cassandra 1.2 and above, which was the version Murmur3Partition became the new default, but I am unsure if this is the reason why this tool cannot work with Cassandra versions below 1.2.

Thanks in advance for the help

kngatineau commented 1 year ago
    if (partitioner.endsWith("RandomPartitioner")) {
      rangeMin = BigInteger.ZERO;
      rangeMax = new BigInteger("2").pow(127).subtract(BigInteger.ONE);
    } else if (partitioner.endsWith("Murmur3Partitioner")) {
      rangeMin = new BigInteger("2").pow(63).negate();
      rangeMax = new BigInteger("2").pow(63).subtract(BigInteger.ONE);
    } else {
      throw new ReaperException("Unsupported partitioner " + partitioner);
    }
    rangeSize = rangeMax.subtract(rangeMin).add(BigInteger.ONE);
    this.partitioner = partitioner;
  }

I may have answered my own question (I tried searching for RandomPartition several times, I promise.. spelling things correctly is hard). Will close this issue after testing it all out.

adejanovski commented 1 year ago

Hi @kngatineau, Reaper does support the RandomPartitioner indeed 👍