[ 
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

Reply via email to