# Hinted Handoff with gc\_mode = immediate

**URL:** <https://forum.scylladb.com/t/hinted-handoff-with-gc-mode-immediate/3206>\
**Category:** ScyllaDB\
**Tags:** repair, tombstone, hinted-handoff\
**Created:** [November 18, 2024, 8:45pm UTC](https://forum.scylladb.com/t/hinted-handoff-with-gc-mode-immediate/3206 "2024-11-18T20:45:50Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Artem\_Golovko](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.scylladb.com/artem_golovko/32/1290_2.png) [@Artem\_Golovko](https://forum.scylladb.com/u/Artem_Golovko)\
**Post date:** [November 18, 2024, 8:45pm UTC](https://forum.scylladb.com/t/hinted-handoff-with-gc-mode-immediate/3206/1 "2024-11-18T20:45:50Z")

</div>

_Installation details_  
ScyllaDB version: 6.2.1

**Question** : According to that question [How the tombstones work in Scylla](https://forum.scylladb.com/t/how-the-tombstones-work-in-scylla/3165), 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](https://thelastpickle.com/blog/2018/03/21/hinted-handoff-gc-grace-demystified.html).

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

Thanks!

---

<div class="post-metadata">

**Author:** ![Botond\_Denes](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.scylladb.com/botond_denes/32/163_2.png) [@Botond\_Denes](https://forum.scylladb.com/u/Botond_Denes)\
**Post date:** [November 22, 2024, 8:56am UTC](https://forum.scylladb.com/t/hinted-handoff-with-gc-mode-immediate/3206/2 "2024-11-22T08:56:46Z")

</div>

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`.

---

<div class="post-metadata">

**Author:** ![Botond\_Denes](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.scylladb.com/botond_denes/32/163_2.png) [@Botond\_Denes](https://forum.scylladb.com/u/Botond_Denes)\
**Post date:** [November 22, 2024, 9:26am UTC](https://forum.scylladb.com/t/hinted-handoff-with-gc-mode-immediate/3206/3 "2024-11-22T09:26:36Z")

</div>

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](https://github.com/scylladb/scylladb/issues/21662)

---

<div class="post-metadata">

**Author:** ![Viper](https://avatars.discourse-cdn.com/v4/letter/v/b3f665/32.png) [@Viper](https://forum.scylladb.com/u/Viper)\
**Post date:** [December 20, 2024, 9:25pm UTC](https://forum.scylladb.com/t/hinted-handoff-with-gc-mode-immediate/3206/4 "2024-12-20T21:25:37Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Artem\_Golovko](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.scylladb.com/artem_golovko/32/1290_2.png) [@Artem\_Golovko](https://forum.scylladb.com/u/Artem_Golovko)\
**Post date:** [December 20, 2024, 9:58pm UTC](https://forum.scylladb.com/t/hinted-handoff-with-gc-mode-immediate/3206/5 "2024-12-20T21:58:29Z")

</div>

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](https://www.scylladb.com/2022/06/30/preventing-data-resurrection-with-repair-based-tombstone-garbage-collection/)
