You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Stefan Miklosovic (Jira)" <ji...@apache.org> on 2024/12/02 13:19:00 UTC
[jira] [Commented] (CASSANDRA-20118) Hints ignored during Upgrade from C*4 to C*5
[ https://issues.apache.org/jira/browse/CASSANDRA-20118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17902274#comment-17902274 ]
Stefan Miklosovic commented on CASSANDRA-20118:
-----------------------------------------------
I don't see any easy way around this. We might have a guardrail in 4.1+ saying that even schema on just-upgraded node does not match, we don't care and we are OK to proceed. We might also check what version that node the hints are for is on and if it is 5.0 and we are on 4.1 we might proceed but at the same time we would need to also cover the legitimate situation when schema changes diverges while upgrade is occurring.
This second case should not be hit under normal conditions. I think that it would be welcome if operators had a mean how to forbid any schema changes during upgrades. We plan to include CASSANDRA-19828 by which an operator might forbid any user facing schema changes so the only possible reason schema diverges in 5.0+ would be if these changes come from system tables etc and I don't think we save hints for these, do we? So in that regard the override and continue would be just fine.
> Hints ignored during Upgrade from C*4 to C*5
> --------------------------------------------
>
> Key: CASSANDRA-20118
> URL: https://issues.apache.org/jira/browse/CASSANDRA-20118
> Project: Apache Cassandra
> Issue Type: Bug
> Components: Consistency/Hints
> Reporter: Paul Chandler
> Priority: Normal
>
> I have discovered that some hints were not being processed after nodes come back up when a cluster in in a mixed mode with some cassandra 4 nodes and some cassdandra 5 nodes ( these with a storage compatibility mode CASSANDRA_4 )
>
> When in this mode there is a schema mismatch after the first node has been upgraded, which continues until the last node has been upgraded.
> It seems that the hints are blocked from being sent if there is a schema mismatch between the 2 nodes, that can be seen at this line.
> [cassandra/src/java/org/apache/cassandra/hints/HintsDispatchTrigger.java at cassandra-5.0 · apache/cassandra|https://github.com/apache/cassandra/blob/cassandra-5.0/src/java/org/apache/cassandra/hints/HintsDispatchTrigger.java#L65]
> I have tested removing this line, and that then does allow the hint to be transferred normally. However I am not sure of the implications for doing that if the hint is for part of the schema where the actual mismatch occurs.
>
> This creates the problem when a node is being upgraded and is currently down, hint files will be created for it on the new cassandra 5 nodes and the old cassandra 4 nodes, but the hint files on the old cassandra 4 nodes will not be processed, due to the schema mismatch. Leading to potential data loss.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org