[
https://issues.apache.org/jira/browse/CASSANDRA-8496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15304157#comment-15304157
]
T Jake Luciani commented on CASSANDRA-8496:
-------------------------------------------
Regarding #6 this is something we have seen before when working on MV code
CASSANDRA-10231.
I think our existing "fix" is to force blocking flush for any node metadata
change which is pretty easy to miss.
I think we should consider one of 2 things)
1. Playing system table mutations first (which would require 2 passes)
2. Keep a simple commit log for only system tables which we would order via a
single thread. and replay first on startup.
I guess you could get into the reverse problem here though. A commit log
contains old table format changes but the new table metadata has already been
applied.
> Remove MemtablePostFlusher
> --------------------------
>
> Key: CASSANDRA-8496
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8496
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Benedict
> Assignee: Branimir Lambov
> Priority: Minor
>
> To improve clearing of the CL, prevent infinite growth, and ensure the prompt
> completion of tasks waiting on flush in the case of transient errors, large
> flushes or slow disks, in 2.1 we could eliminate the post flusher altogether.
> Since we now enforce that Memtables track contiguous ranges, a relatively
> small change would permit Memtables to know the exact minimum as well as the
> currently known exact maximum. The CL could easily track the total dirty
> range, knowing that it must be contiguous, by using an AtomicLong instead of
> an AtomicInteger, and tracking both the min/max seen, not just the max. The
> only slight complexity will come in for tracking the _clean_ range as this
> can now be non-contiguous, if there are 3 memtable flushes covering the same
> CL segment, and one of them completes later. To solve this we can use an
> interval tree since these operations are infrequent, so the extra overhead is
> nominal. Once the interval tree completely overlaps the dirty range, we mark
> the entire dirty range clean.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)