CASSANDRA-21000 optionaly remove dropped columns from SSTable header when upgrading#4474
CASSANDRA-21000 optionaly remove dropped columns from SSTable header when upgrading#4474smiklosovic wants to merge 1 commit intoapache:trunkfrom
Conversation
4686cba to
f8f2051
Compare
6269a1c to
cd5dfd0
Compare
patch by Stefan Miklosovic; reviewed by TBD for CASSANDRA-21000
cd5dfd0 to
f2633ce
Compare
blambov
left a comment
There was a problem hiding this comment.
I would prefer to have a more general solution where we store somewhere the list of columns that are actually present in the sstable. This will not be the serialization header, because we can't write without it, but we could write a second set to use on the next compaction.
However, I'm happy to go with this version as it should work well enough, and the general solution is something we could do in the compaction part of CEP-57.
| ReusableLivenessInfo cellLiveness = cellCursor.cellLiveness; | ||
| DataOutputBuffer tempCellBuffer = null; | ||
|
|
||
| if (!metadata().regularAndStaticColumns().contains(cellCursor.cellColumn)) |
There was a problem hiding this comment.
Does this mean that the cursor path doesn't drop data that is older than the drop time of the column?
If so, I think this is something we need to fix (i.e., in addition to this, adjust the applicable deletion time if the column is dropped and recreated).
We should pre-compute the intersection of the table's dropped columns with the ones in this file to avoid performing this contains lookup unnecessarily (most compactions should have an empty intersection).
Thanks for sending a pull request! Here are some tips if you're new here:
Commit messages should follow the following format:
The Cassandra Jira