Hinted Handoff with gc_mode = immediate

Installation details
ScyllaDB version: 6.2.1

Question: According to that question How the tombstones work in Scylla, the difference with gc_grace_seconds = 0 and gc_mode = immediate in Hinted Handoff mechanism. I red this article about relations between gc_grace_seconds and Hinted Handoff Hinted Handoff and GC Grace Demystified.

My question is how scylla manages Hinted Handoff hints expiration in case of gc_mode = immediate?

Thanks!

Hinted handoff considers gc_grace_seconds, expiring hints which are older than this. This mechanism predates the introduction of the new tombstone_gc schema option, so hinted handoff is only safe to use with either timeout or never modes. It is not safe to use with immediate or repair.

Actually mode=repair takes care of hints, after each repair, all hints are flushed, to ensure there are no hints remaining, which could be shadowed by tombstones we are about to purge.
As for immediate mode, see this issue we just opened: Hinted handoff needs to consider other GC modes than `timeout` · Issue #21662 · scylladb/scylladb · GitHub

2 Likes

Shouldn’t the CQL operation DELETE be prohibited for tables with immediate?

There were plans to disable it, yes “We are even considering rejecting user deletes if the mode is immediate, to be on the safe side.” Preventing Data Resurrection with Repair Based Tombstone Garbage Collection - ScyllaDB