[
https://issues.apache.org/jira/browse/CASSANDRA-4533?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13438996#comment-13438996
]
Jonathan Ellis commented on CASSANDRA-4533:
-------------------------------------------
Hmm, I don't think this quite works because it still means we can skip saving
cache for CF X when CF Y is being flushed.
I think the problem this code is trying to solve, over a basic executor +
queue, is multiple tasks for X getting queued up while (say) compaction is
sucking a lot of i/o, then firing off those cache-save tasks for X faster than
the defined saving period when it speeds up.
I guess we could make it a Pair<CF, CacheType>?
TBH this is probably premature optimization, if your cache period is so
frequent that multiple queued tasks is a problem, then you should just fix
that. I'd be okay with just ripping this out. Alternatively, we could have
the task check to see if the last-saved cache is older than M minutes before
overwriting it, similar to how normal background compaction submissions are a
no-op if it turns out there's nothing to do by the time we execute the task.
> Multithreaded cache saving can skip caches
> ------------------------------------------
>
> Key: CASSANDRA-4533
> URL: https://issues.apache.org/jira/browse/CASSANDRA-4533
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.8.0
> Reporter: Zhu Han
> Assignee: Yuki Morishita
> Priority: Trivial
> Fix For: 1.1.5
>
> Attachments: 4533-1.1.txt
>
>
> Cassandra flushes the key and row cache to disk periodically. It also uses a
> atomic flag in flushInProgress to enforce single cache writer at any time.
> However, the cache saving task could be submitted to CompactionManager
> concurrently, as long as the number of worker thread in CompactionManager is
> larger than 1.
> Due to the effect of above atomic flag, only one cache will be written out to
> disk. Other writer are cancelled when the flag is true.
> I observe the situation in Cassandra 1.0. If nothing is changed, the problem
> should remain in Cassandra 1.1, either.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira