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

Sylvain Lebresne commented on CASSANDRA-11828:
----------------------------------------------

Thanks, lgtm, I'm +1 on both patches. but could you attach patch and run tests 
for 2.2 (with the 2.1 merged, which seems to have conflicts) and 3.9?

bq. except removing the synchronization from {{IntegerIterval.Set.add}} as the 
individual interval class is thread-safe and hence the consistency is better if 
the set class also

Right. My suggestion to make the base class immutable, with a specifically 
called out mutable (and thread-safe) variant for the case where we need it, as 
I usually like making immutability the default and making it clear when it's 
not, but I'm bikeshedding, especially as long as it's the only use of the 
class. I'm cool with your solution, we can always change things later if 
{IntegerInterval}} sees reuse and immutability is better for those reuse.

> Commit log needs to track unflushed intervals rather than positions
> -------------------------------------------------------------------
>
>                 Key: CASSANDRA-11828
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11828
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local Write-Read Paths
>            Reporter: Branimir Lambov
>            Assignee: Branimir Lambov
>             Fix For: 2.2.x, 3.0.x, 3.x
>
>
> In CASSANDRA-11448 in an effort to give a more thorough handling of flush 
> errors I have introduced a possible correctness bug with disk failure policy 
> ignore if a flush fails with an error:
> - we report the error but continue
> - we correctly do not update the commit log with the flush position
> - but we allow the post-flush executor to resume
> - a successful later flush can thus move the log's clear position beyond the 
> data from the failed flush
> - the log will then delete segment(s) that contain unflushed data.
> After CASSANDRA-9669 it is relatively easy to fix this problem by making the 
> commit log track sets of intervals of unflushed data (as described in 
> CASSANDRA-8496).



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

Reply via email to