Details
-
Improvement
-
Status: Resolved
-
Low
-
Resolution: Won't Fix
-
None
-
None
-
None
Description
Current default for gc_grace_seconds is 10 days. Attached patch changes all instances of this 10 day default to 28 days.
Rationale :
- 10 days is arbitrary, there is nothing special about the current value
- human societies do not operate on cycles which are a multiple of 10 days, they operate on a cycle of 7 day weeks
- operators must run repair once every gc_grace_seconds, and with typical data sizes (and compaction/streaming throttling) this might run for a significant fraction of 10 days
- repair often fails, and detecting and working around that failure might also take a significant fraction of 10 days
- repair is the heaviest operation one can run on a cassandra cluster and operators are therefore motivated to run it ~3x less frequently by default
- the worst case impact is keeping data around for 18 days longer than the previous default, and this only occurs in CFs which actually take DELETE operation
- 28 days is an even multiple of 7 days and easily comprehensible as a default time in which to schedule repair