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

Paulo Motta commented on CASSANDRA-10674:
-----------------------------------------

bq. I think if either 1) there are pending nodes or 2) there are no view 
natural endpoints, the current MV design will not want the batchlog cleaned up 
on a successful write.

I think when there is a defined natural endpoint and pending endpoints it's 
valid to clear the batchlog if the write is sucessful, because it means the 
data was replicated correctly to the pending endpoint that will own the range 
of the natural endpoint after the range movement is completed. Do you agree 
with that [~jkni]?

What I'd like to understand better is why we write to the local batchlog when 
the local node is not a replica of the base mutation? Is it because the local 
node is probably a pending endpoint that will eventually become a base replica? 
In this case we probably shouldn't clear the batchlog after writing so the view 
will be replicated correctly to the natural endpoints once the local node 
becomes a base replica.

[~tjake] [~carlyeks] would you mind clarifying this?

> Materialized View SSTable streaming/leaving status race on decommission
> -----------------------------------------------------------------------
>
>                 Key: CASSANDRA-10674
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10674
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Coordination, Distributed Metadata
>            Reporter: Joel Knighton
>            Assignee: Paulo Motta
>             Fix For: 3.0.1, 3.1
>
>         Attachments: leaving-node-debug.log, receiving-node-debug.log
>
>
> On decommission of a node in a cluster with materialized views, it is 
> possible for the decommissioning node to begin streaming sstables for an MV 
> base table before the receiving node is aware of the leaving status.
> The materialized view base/view replica pairing checks pending endpoints to 
> handle the case when an sstable is received from a leaving node; without the 
> leaving message, this check breaks and an exception is thrown. The streamed 
> sstable is never applied.
> Logs from a decommissioning node and a node receiving such a stream are 
> attached.



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

Reply via email to