You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Paulo Motta (JIRA)" <ji...@apache.org> on 2016/03/05 03:52:40 UTC
[jira] [Comment Edited] (CASSANDRA-10990) Support streaming of
older version sstables in 3.0
[ https://issues.apache.org/jira/browse/CASSANDRA-10990?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15181464#comment-15181464 ]
Paulo Motta edited comment on CASSANDRA-10990 at 3/5/16 2:52 AM:
-----------------------------------------------------------------
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 (and max partition size) for streaming legacy/compact 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!
was (Author: pauloricardomg):
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)