cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benedict (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-8383) Memtable flush may expire records from the commit log that are in a later memtable
Date Thu, 27 Nov 2014 12:59:13 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-8383?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14227622#comment-14227622
] 

Benedict commented on CASSANDRA-8383:
-------------------------------------

Initial patch [here|https://github.com/belliottsmith/cassandra/tree/8383-bug-clexpirereorder]

We should also introduce a commit log correctness stress test, so we can reproduce this, be
certain it is fixed, and so we can be sure to avoid this or similar scenarios in future. 

> Memtable flush may expire records from the commit log that are in a later memtable
> ----------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-8383
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8383
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Benedict
>            Assignee: Benedict
>            Priority: Critical
>              Labels: commitlog
>             Fix For: 2.1.3
>
>
> This is a pretty obvious bug with any care of thought, so not sure how I managed to introduce
it. We use OpOrder to ensure all writes to a memtable have finished before flushing, however
we also use this OpOrder to direct writes to the correct memtable. However this is insufficient,
since the OpOrder is only a partial order; an operation from the "future" (i.e. for the next
memtable) could still interleave with the "past" operations in such a way that they grab a
CL entry inbetween the "past" operations. Since we simply take the max ReplayPosition of those
in the past, this would mean any interleaved future operations would be expired even though
they haven't been persisted to disk.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message