cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paulo Motta (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-8928) Add downgradesstables
Date Mon, 13 Jun 2016 21:30:04 GMT


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:
>             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

View raw message