[
https://issues.apache.org/jira/browse/CASSANDRA-20281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17934619#comment-17934619
]
David Capwell commented on CASSANDRA-20281:
-------------------------------------------
[[email protected]], slight correction; there are 4 ways! Take a
look at
org.apache.cassandra.fuzz.topology.TopologyMixupTestBase#topologyCommand, its a
test that runs different topology changes in C* and makes sure we do the right
thing
{code}
case RemoveNode:
possible.put(rs ->
multistep(removeNodeRandomizedDispatch(rs, state), awaitClusterStable()), 1);
break;
case HostReplace:
possible.put(rs -> multistep(repairFor(state, "host
replace"), hostReplace(rs, state), awaitClusterStable()), 1);
break;
{code}
and remove node
{code}
private Command<State<S>, Void, ?> removeNodeRandomizedDispatch(RandomSource
rs, State<S> state)
{
RemoveType type = state.removeTypeGen.next(rs);
switch (type)
{
case Decommission:
return removeNodeDecommission(rs, state);
case RemoveNode:
return removeNode(rs, state);
case Assassinate:
return removeNodeAssassinate(rs, state);
default:
throw new UnsupportedOperationException("Unknown remove type: "
+ type);
}
}
{code}
> Capability to run repair before replacing a node
> ------------------------------------------------
>
> Key: CASSANDRA-20281
> URL: https://issues.apache.org/jira/browse/CASSANDRA-20281
> Project: Apache Cassandra
> Issue Type: Improvement
> Components: Consistency/Repair
> Reporter: Jaydeepkumar Chovatia
> Assignee: Jaydeepkumar Chovatia
> Priority: Normal
>
> It is vital to repair the token range of the node being replaced to avoid
> data loss as part of a node replacement.
> There is no better mechanism to repair a node before replacing it. As part of
> this ticket, we can discuss various ideas for extending the AutoRepair
> framework.
> There are two ways to remove a node from the ring:
> # nodetool decommission: AutoRepair framework already has an option to force
> any live node to trigger repair, so we can leverage that readymade
> # -Dcassandra.replace_address=<IP_of_dead_node>: Currently, the framework
> does not proxy repair on behalf of another node. It needs to be extended.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]