Looks like no major table version changes since 3.0, and a couple of minor changes in 3.0.7/3.7 and 3.0.8/3.8: https://github.com/apache/cassandra/blob/48a539142e9e318f9177ad8cec4781 9d1adc3df9/doc/source/architecture/storage_engine.rst
So, I suppose whether a revert is safe or not depends on whether the "mb" and "mc" table format changes were backported to 3.1.0. Looking at https://github.com/apache/cassandra/blob/ e092873728dc88aebc6ee10153b9bd3cd90cd858/src/java/org/ apache/cassandra/io/sstable/format/big/BigFormat.java#L112 I'd say it looks like the "mb" and "mc" table formats were not backported to 3.1.0, so downgrading is probably dangerous. Potentially, if you don't need any of the features in 3.1.0 vs 3.0 you could "downgrade" to 3.0.16 as a "safer" change that would get you compatible with "mc" formatted sstables. At that point you can probably go back and forth between 3.0.16 and 3.11.2 safely. I'm not sure this is actually any safer than jumping directly to 3.11.2 though, and it's definitely a lot more complicated. This is pure speculation on my part, but given that the changes in mb and mc aren't major row format changes, downgrading *might* still work. Or, potentially, you might be able to use a newer sstableloader to load the mc-format files into 3.1.0 successfully. If you go down this road, test the cross-version loading thoroughly first. It's probably not the best plan, but if you get stuck it might be useful. All that said... 3.11.2 is probably a strict improvement over 3.1.0 in features, stability, and performance. I'd lean towards testing as much as possible then just rolling forwards.