[ 
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)

Reply via email to