[
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