There has been progress on https://issues.apache.org/jira/plugins/servlet/mobile#issue/CASSANDRA-8928
Which is similar to what datastax does for DSE. Would this be an acceptable solution? Jake On Mon, Feb 20, 2023 at 11:17 AM guo Maxwell <cclive1...@gmail.com> wrote: > It seems “An alternative solution is to implement/complete CASSANDRA-8110 > <https://issues.apache.org/jira/browse/CASSANDRA-8110>” can give us more > options if it is finished😉 > > Branimir Lambov <blam...@apache.org>于2023年2月20日 周一下午11:03写道: > >> Hi everyone, >> >> There has been a discussion lately about changes to the sstable format in >> the context of being able to abort a cluster upgrade, and the fact that >> changes to sstables can prevent downgraded nodes from reading any data >> written during their temporary operation with the new version. >> >> Most of the discussion is in CASSANDRA-18134 >> <https://issues.apache.org/jira/browse/CASSANDRA-18134>, and is >> spreading into CASSANDRA-14277 >> <https://issues.apache.org/jira/browse/CASSANDRA-14227> and >> CASSANDRA-17698 <https://issues.apache.org/jira/browse/CASSANDRA-17698>, >> none of which is a good place to discuss the topic seriously. >> >> Downgradability is a worthy goal and is listed in the current roadmap. I >> would like to open a discussion here on how it would be achieved. >> >> My understanding of what has been suggested so far translates to: >> - avoid changes to sstable formats; >> - if there are changes, implement them in a way that is >> backwards-compatible, e.g. by duplicating data, so that a new version is >> presented in a component or portion of a component that legacy nodes will >> not try to read; >> - if the latter is not feasible, make sure the changes are only applied >> if a feature flag has been enabled. >> >> To me this approach introduces several risks: >> - it bloats file and parsing complexity; >> - it discourages improvement (e.g. CASSANDRA-17698 is no longer a LHF >> ticket once this requirement is in place); >> - it needs care to avoid risky solutions to address technical issues with >> the format versioning (e.g. staying on n-versions for 5.0 and needing a >> bump for a 4.1 bugfix might require porting over support for new features); >> - it requires separate and uncoordinated solutions to the problem and >> switching mechanisms for each individual change. >> >> An alternative solution is to implement/complete CASSANDRA-8110 >> <https://issues.apache.org/jira/browse/CASSANDRA-8110>, which provides a >> method of writing sstables for a target version. During upgrades, a node >> could be set to produce sstables corresponding to the older version, and >> there is a very straightforward way to implement modifications to formats >> like the tickets above to conform to its requirements. >> >> What do people think should be the way forward? >> >> Regards, >> Branimir >> >> >> -- > you are the apple of my eye ! > -- http://twitter.com/tjake