[ 
https://issues.apache.org/jira/browse/CASSANDRA-10990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15181464#comment-15181464
 ] 

Paulo Motta commented on CASSANDRA-10990:
-----------------------------------------

Updated branch with reworked {{RewindableDataInputStreamPlus}}, now treating 
the spill file as circular buffer with max size. Now required space for spill 
buffer file of legacy {{StreamDeserializer}} is {{max(sstableSize, MAX_INT)}}, 
capping the max required space for streaming older version sstables on ~2GB. I 
also updated documentation and tests. WDYT [~yukim]?

Besides that, I added a new 
[dtest|https://github.com/pauloricardomg/cassandra-dtest/commit/b59ea329a5b9302372c57956f7015111fd47a4ae]
 for testing repair of older version sstables on 3.0+, and it seems to work. 
Now we have the following dtests:
* [bootstrap 
dtests|https://github.com/pauloricardomg/cassandra-dtest/blob/10990/upgrade_8099_test.py#L340]
* [sstable loader 
dtests|https://github.com/pauloricardomg/cassandra-dtest/blob/10990/sstable_generation_loading_test.py#L181]
* [repair 
dtests|https://github.com/pauloricardomg/cassandra-dtest/commit/b59ea329a5b9302372c57956f7015111fd47a4ae]

For simplicity, I opted for writing the old streamed sstables in the new format 
without {{EncodingStats}} (since there is no {{SerializationHeader}} 
available), what may make these sstables less optimized in terms of storage 
space from what I understood. Do you think we should construct these stats when 
receiving the sstable or not bother [~slebresne] ? Also, do you recall of any 
other edge case we should watch here?

Thanks!

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

Reply via email to