Hi,

We've seen this issue in some production systems and I've been asked to raise this to the list for visibility.

The main idea[1] is to propagate partitioner and cluster name through Gossip and validate these. The approach I took is to Json encode those in a generic JSON_PAYLOAD new AppState but I lack the historical context as to why enum ordinals were used in the first place: Imo Json encoding going forward:

- Prevents burning extra AppStates

- Prevents forks with custom AppStates on online rolling upgrades to OSS conflict on the mapping (scary)

- Friendlier to being extended, customized and more robust towards modifications

Options:

A. Introduce this new generic state (4-0 -> trunk) and we use this onward

B. Drop the idea of a generic json AppState and just add one new AppState for this ticket 4.0->5.0 as this is not an issue in trunk due to TCM. This one de-risks the upcoming trunk release and could be repurposed in the future to become A if we chose so.

Thoughts welcomed, thanks in advance.


[1] https://issues.apache.org/jira/browse/CASSANDRA-20910

Reply via email to