cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paulo Motta (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-10674) Materialized View SSTable streaming/leaving status race on decommission
Date Tue, 01 Dec 2015 16:39:11 GMT


Paulo Motta commented on CASSANDRA-10674:

bq. In the new {{mutateMV}}, pairedEndpoint.isPresent() in the conditional takes care of the
first place but not the second while there are pendingEndpoints.

That's right, good catch! I simplified but only thinking of the first case, but indeed the
second scenario is valid as there may be a pending joining node which will be a natural endpoint
for that view update. Update this and minor typo and re-submitted tests.

Something I don't get in the fist scenario though is that besides writing to the batchlog,
the node is also persisting the mutation locally via the {{asyncWriteBatchedMutations}} call,
so the batchlog is cleaned if this call is successful afaik. If there are no natural view
endpoints, shouldn't we write only to the batchlog and skip the local write via {{asyncWriteBatchedMutations}}?

> Materialized View SSTable streaming/leaving status race on decommission
> -----------------------------------------------------------------------
>                 Key: CASSANDRA-10674
>                 URL:
>             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

View raw message