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

Benedict commented on CASSANDRA-15004:
--------------------------------------

Blake realised there was an issue with the patch he posted, so I have put 
together an alternative patch with input from [~krummas].

[3.0|https://github.com/belliottsmith/cassandra/tree/15004-3.0] 
[3.11|https://github.com/belliottsmith/cassandra/tree/15004-3.11] 
[4.0|https://github.com/belliottsmith/cassandra/tree/15004-4.0]

These patches extract an interface for {{LifecycleTransaction}} and no-op the 
relevant calls ({{prepareToCommit}} and {{obsoleteOriginals}}) so that 
{{SSTableRewriter.prepareToCommit}} does not update the tracker - these are 
then invoked directly once each rewriter has finished its other preparatory 
work.

It's a bit ugly and still finicky, but probably better/safer than more invasive 
surgery at this point in time.

> Anti-compaction briefly removes sstables from the read path
> -----------------------------------------------------------
>
>                 Key: CASSANDRA-15004
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15004
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Blake Eggleston
>            Assignee: Blake Eggleston
>            Priority: Major
>             Fix For: 4.0, 3.0.x, 3.11.x
>
>
> Since we use multiple sstable rewriters in anticompaction, the first call to 
> prepareToCommit will remove the original sstables from the tracker view 
> before the other rewriters add their sstables. This creates a brief window 
> where reads can miss data.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to