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

Sylvain Lebresne commented on CASSANDRA-13069:
----------------------------------------------

What I had in mind was more about simplifying the whole view write patch to be 
1) write a batchlog for local+view mutations and then 2) apply those mutations, 
which implied rewriting {{Keyspace.apply}} so we don't start by writing the 
base mutation in the commit log for instance, and I still think it would be 
both simpler code-wise and be more easy to reason about correction. But this is 
admittedly not the place to debate about this, and you are right that things 
aren't as grim as I portrayed it in my previous comment anyway, so happy to 
focus on just the bug for which this was opened for.

So things mostly look good except for the {{isFirstReplay}} addition in 
{{BatchLogManager}} that I'm fairly unsure about. My understanding is that the 
main goal of the batchlog delay is to avoid replaying batches that may still 
have a change to succeed, but your change seems to break that, so it sounds 
like that could have adverse performance effect, including on non-view usages 
of the batchlog. To be honest though, the batchlog code isn't my main area of 
expertise, so if if you feel this is important and not a real problem, I'd 
prefer we isolate that change to a separate ticket so it is looked in its own 
right (and preferably by someone more knowledgeable of that code).


> Local batchlog for MV may not be correctly written on node movements
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-13069
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13069
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Materialized Views
>            Reporter: Sylvain Lebresne
>            Assignee: Paulo Motta
>
> Unless I'm really reading this wrong, I think the code 
> [here|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/service/StorageProxy.java#L829-L843],
>  which comes from CASSANDRA-10674, isn't working properly.
> More precisely, I believe we can have both paired and unpaired mutations, so 
> that both {{if}} can be taken, but if that's the case, the 2nd write to the 
> batchlog will basically overwrite (remove) the batchlog write of the 1st 
> {{if}} and I don't think that's the intention. In practice, this means 
> "paired" mutation won't be in the batchlog, which mean they won't be replayed 
> at all if they fail.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to