cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Piotr Kołaczkowski (JIRA) <>
Subject [jira] [Updated] (CASSANDRA-4049) Add generic way of adding SSTable components required custom compaction strategy
Date Thu, 20 Sep 2012 15:12:07 GMT


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:
>             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
> 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:

View raw message