[ https://issues.apache.org/jira/browse/CASSANDRA-4049?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Piotr Kołaczkowski updated CASSANDRA-4049: ------------------------------------------ Attachment: pluggable_custom_components-1.1.5.patch Improved patch: 1. Code style - now uses FileUtils, Guava.readLines 2. Appends TOC instead of overwriting it. 3. Access to TOC file is protected with ReadWriteLock. 4. Components collection is a CopyOnWriteArraySet. 5. No synchronized. I really tried to make components collection immutable first, but that opened unfortunately a whole can of worms related to: 1. SSTable reference counting (two SSTableReader objects sharing data) and deletion 2. Adding custom components from inside of a notifier (e.g. on memtable flush) 3. Rebuilding interval tree (that one was easy to fix, though) Just didn't want to introduce subtle bugs. SSTable and SSTableReader aren't immutable anyway. I performed stress testing with Cassandra FileSystem stress test tool in DSE, and our custom CFS strategy - works fine. > Add generic way of adding SSTable components required custom compaction > strategy > -------------------------------------------------------------------------------- > > Key: CASSANDRA-4049 > URL: https://issues.apache.org/jira/browse/CASSANDRA-4049 > Project: Cassandra > Issue Type: New Feature > Components: Core > Reporter: Piotr Kołaczkowski > Assignee: Piotr Kołaczkowski > Priority: Minor > Labels: compaction > Fix For: 1.1.6 > > Attachments: pluggable_custom_components-1.1.5.patch > > > CFS compaction strategy coming up in the next DSE release needs to store some > important information in Tombstones.db and RemovedKeys.db files, one per > sstable. However, currently Cassandra issues warnings when these files are > found in the data directory. Additionally, when switched to > SizeTieredCompactionStrategy, the files are left in the data directory after > compaction. > The attached patch adds new components to the Component class so Cassandra > knows about those files. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira