[ https://issues.apache.org/jira/browse/CASSANDRA-6869?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13946823#comment-13946823 ]
Aleksey Yeschenko commented on CASSANDRA-6869: ---------------------------------------------- LGTM mostly, although I do think we should put some 'friendly exception' in ColumnFamilySerializer#deserialize() if version < 2.0 and isSuper() (because hints and batchlog might still contain those serialized mutations). Or maybe put it into MutationSerializer#deserialize() instead. Minor nitty stuff: Failing tests: - LegacySSTableTest, for obvious reasons Unkilled stuff: - old sc format in SSTableImport should probably go Unused imports: - ColumnFamilySerializer has 2 unused imports: DataOutput and MessagingService - SuperColumns has a bunch of unused imports (more than half now) - CellNames in IndexedSliceReader - Collections in StatsMetadata Unused variables: - version in SimpleSliceReader constructor > Broken 1.2 sstables support in 2.1 > ---------------------------------- > > Key: CASSANDRA-6869 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6869 > Project: Cassandra > Issue Type: Bug > Reporter: Aleksey Yeschenko > Assignee: Sylvain Lebresne > Fix For: 2.1 beta2 > > Attachments: 6869.txt > > > CASSANDRA-5417 has broken 1.2 (ic) sstables support in at least two ways. > 1. CFMetaData.getOnDiskSerializer(), used by SSTableNamesIterator and > IndexedSliceReader, doesn't account for pre-2.0 supercolumn sstables > 2. More importantly, ACCNT.CompositeDeserializer doesn't handle ic tables' > cell counts, and maybeReadNext() might throw EOFException while expecting the > partition end marker. SimpleDeserializer is likely just as broken. > I'd expect more issues like this, but less obvious, in the code, and thus am > torn between forcing people to run upgradesstables on 2.0 and actually fixing > these issues, and hoping that we haven't missed anything. > Implementing a supercolumn aware AtomDeserializer is not hard, fixing > CompositeDeserializer and SimpleDeserializer isn't very hard either, but I > really am worried about stuff that's less obvious. Plus, if we drop that > support, we can get rid of some legacy supercolumn code in 2.1. Minus, > obviously, is a bit of extra pain for 2.0->2.1 upgraders still having 1.2- > sstables around. -- This message was sent by Atlassian JIRA (v6.2#6252)