[ https://issues.apache.org/jira/browse/CASSANDRA-10990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15112830#comment-15112830 ]
Paulo Motta commented on CASSANDRA-10990: ----------------------------------------- Many thanks for the detailed explanation and clarification [~slebresne]! I believe the purpose of this ticket is more to allow streaming of old sstables to 3.0 vnodes via {{sstableloader}} as well as support bootstrap and move on 3.0 nodes that did not complete {{upgradesstables}} (dense nodes) than to actually provide full 2.x-3.0 streaming compatibility (we can leave this to CASSANDRA-8110). There seems to be additional complications with repair due to different digest formats, so we can address that in a separate ticket if necessary. I was able to achieve streaming of pre-3.0 sstables fairly transparently with the addition of a {{RewindableDataInputStreamPlus}} wrapper input stream that allows rewinding a source stream, so we can leverage the exactly same code path of reading pre-3.0 sstables ({{OldFormatIterator}}) to do the static compact table handling. Currently, the {{RewindableDataInputStreamPlus}} works in memory, so next step is to spill the buffer to disk if its sizes goes above a certain treshold. I agree we need to do extensive testing before calling this supported. I propose to extend CASSANDRA-10563 upgrade dtests to perform a bootstrap of a new node, without performing {{upgradesstables}} on upgraded nodes (so they will contain only old sstables), and check that all streamed data will be readable via thrift and/or cql. I updated the previous branch with the latest changes. > Support streaming of older version sstables in 3.0 > -------------------------------------------------- > > Key: CASSANDRA-10990 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10990 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging > Reporter: Jeremy Hanna > Assignee: Paulo Motta > > In 2.0 we introduced support for streaming older versioned sstables > (CASSANDRA-5772). In 3.0, because of the rewrite of the storage layer, this > became no longer supported. So currently, while 3.0 can read sstables in the > 2.1/2.2 format, it cannot stream the older versioned sstables. We should do > some work to make this still possible to be consistent with what > CASSANDRA-5772 provided. -- This message was sent by Atlassian JIRA (v6.3.4#6332)