[ https://issues.apache.org/jira/browse/CASSANDRA-8496?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joshua McKenzie updated CASSANDRA-8496: --------------------------------------- Assignee: Branimir Lambov > 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)