[
https://issues.apache.org/jira/browse/CASSANDRA-10099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15041538#comment-15041538
]
Marcus Eriksson commented on CASSANDRA-10099:
---------------------------------------------
main reason we synchronize all/most methods in
WrappingCompactionStrategy/CompactionStrategyManager is that we need to be able
to reload the actual compaction strategy safely.
Patch [here|https://github.com/krummas/cassandra/commits/marcuse/10099] which
replaces the synchronized on the methods with a read/write lock.
Note that this probably has a small chance of creating overlap in LCS since we
don't see all new sstables as a 'transaction' - but this is safe in 2.1+ as
long as it is very rare since we drop any sstable that would cause overlap to L0
http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-10099-testall/
http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-10099-dtest/
> Improve concurrency in CompactionStrategyManager
> ------------------------------------------------
>
> Key: CASSANDRA-10099
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10099
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Yuki Morishita
> Fix For: 3.x
>
>
> Continue discussion from CASSANDRA-9882.
> CompactionStrategyManager(WrappingCompactionStrategy for <3.0) tracks SSTable
> changes mainly for separating repaired / unrepaired SSTables (+ LCS manages
> level).
> This is blocking operation, and can lead to block of flush etc. when
> determining next background task takes longer.
> Explore the way to mitigate this concurrency issue.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)