You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Marcus Eriksson (JIRA)" <ji...@apache.org> on 2015/12/04 14:14:11 UTC

[jira] [Commented] (CASSANDRA-10099) Improve concurrency in CompactionStrategyManager

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