With all the years I've been working with Cassandra, I'm embarrassed that I
have to ask this question.

We have some tables that are taking longer to repair than we're comfortable
with. We're on Cassandra 3.11, so we have to run full repairs as opposed to
incremental repairs, which to my understanding can't be counted on until
Cassandra 4.0. We're running sequential repairs, as opposed to the default
parallel repairs, so that the repairs can run in a low-intensity fashion
while the keyspace is still able to take write and read requests, albeit
preferably and primarily during off-hours. The problem with sequential
repairs is they're taking too long for us and extending into "on-hours."

We could run parallel repairs to speed things up, but that would require
suspending the services in our write pipeline, which we'd rather not resort
to.

Now, we could comfortably run all the repairs we need to within our
off-hours window if we just left out all our tables that are insert-only.
By insert-only, I mean that we have certain classes of tables that we're
only inserting into; we're never updating them or deleting them. Therefore,
these are tables that have no tombstones, and if repairs are just about
clearing out tombstones, then ostensibly they shouldn't need to be
repaired. The question is, is that really the case? Is there any reason to
still run repairs on insert-only tables?

If I come up with my own answer I'm satisfied with, I'll reply to myself
here.

Reply via email to