[ https://issues.apache.org/jira/browse/CASSANDRA-8928?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15328321#comment-15328321 ]
Paulo Motta commented on CASSANDRA-8928: ---------------------------------------- After digging into this for a while we realized it may be too much effort to support writing full-fledged sstables in previous formats in a dependable way, specially after the large scale changes introduced by CASSANDRA-8099. This is due to the fact that we not only have to translate the data component, which is already a large effort per se, but also make sure other components such as indexes, samples, stats, etc, are downgraded correctly, which means a large bunch of legacy code that needs to be kept around until it becomes unsupported. We initially thought this could easily enable CASSANDRA-8110 but it can actually be seen as the opposite: once we make streaming backward compatible, downgrading is just a matter of sstableloading the new-format sstables in a previous-version node, which will already make the sstable be rewritten in the old format correctly, since all the components are rewritten during streaming. Of course there would be some manual juggling needed to restore the node with the correct tokens and schema, but we can probably add some kind of recovery/downgrade mode that would allow an operator to reload the data with sstableloader before the node becomes available. Maybe this could be made easier after CASSANDRA-6038 and/or CASSANDRA-9587. So my take is that we should pursue CASSANDRA-8110 first, since that seems much more attainable, and rethink this later, maybe via recovery mode + sstableloading combo as suggested previously. Since streaming basically transfer raw sstable partitions over the wire, downgraded stream support is just a matter of translating partitions on-the-fly to the previous data format, without the need to support downgrading other components extensively as required here. With this said, I will attach a design document to CASSANDRA-8110 shortly. > Add downgradesstables > --------------------- > > Key: CASSANDRA-8928 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8928 > Project: Cassandra > Issue Type: New Feature > Components: Tools > Reporter: Jeremy Hanna > Assignee: Kaide Mu > Priority: Minor > Labels: gsoc2016, mentor > > As mentioned in other places such as CASSANDRA-8047 and in the wild, > sometimes you need to go back. A downgrade sstables utility would be nice > for a lot of reasons and I don't know that supporting going back to the > previous major version format would be too much code since we already support > reading the previous version. -- This message was sent by Atlassian JIRA (v6.3.4#6332)