[ 
https://issues.apache.org/jira/browse/CASSANDRA-8498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15302972#comment-15302972
 ] 

Tyler Hobbs commented on CASSANDRA-8498:
----------------------------------------

bq.  I'd prefer to log an error and skip the records involved but otherwise 
start up normally.

This would cause problems for tables with low (or 0) {{gc_grace_seconds}}, 
which is common for tables where everything is TTL'ed.

It seems like this problem is equivalent to "should we allow a node to start 
that's been down for more than {{gc_grace_seconds}}".  We advise operators not 
to do this (in order to avoid zombie data), but there are cases where it makes 
sense, like the TTL case above, or if deletes are never performed on a cluster. 
 I'm sure there are operators out there who are not aware of these guidelines, 
so it might make sense to make them more explicit by requiring a {{-D}} flag to 
start when commit log segments are older than gc_grace.  If the flag is not 
used, we fail to start and print a message about the guidelines and mention the 
flag.

> Replaying commit log records that are older than gc_grace is dangerous
> ----------------------------------------------------------------------
>
>                 Key: CASSANDRA-8498
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8498
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Benedict
>
> If we replay commit log records that are older than gc_grace we could 
> introduce data corruption to the cluster. We should either (1) fail and 
> suggest a repair, or (2) log an exception. I prefer (1).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to