You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sam Tunnicliffe (Jira)" <ji...@apache.org> on 2024/09/09 09:01:00 UTC
[jira] [Updated] (CASSANDRA-19904) Deprecate use of gossip state for paxos electorate verification
[ https://issues.apache.org/jira/browse/CASSANDRA-19904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sam Tunnicliffe updated CASSANDRA-19904:
----------------------------------------
Change Category: Semantic
Complexity: Normal
Component/s: Consistency/Coordination
Fix Version/s: 5.x
Assignee: Sam Tunnicliffe
Status: Open (was: Triage Needed)
> Deprecate use of gossip state for paxos electorate verification
> ---------------------------------------------------------------
>
> Key: CASSANDRA-19904
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19904
> Project: Cassandra
> Issue Type: Improvement
> Components: Consistency/Coordination
> Reporter: Sam Tunnicliffe
> Assignee: Sam Tunnicliffe
> Priority: Normal
> Fix For: 5.x
>
>
> In C* 5.0 and earlier, paxos uses gossip state to verify the paxos electorate remains stable during a round.
> In 5.1, we mostly use the current epoch for this purpose, but some usage of gossip state has been left in place and should be removed.
> An {{Electorate}} is now constructed from {{ClusterMetadata}} and no longer relies on anything in gossip, so updating gossip in {{PaxosPrepare::onResponse}} is no longer necessary. Instead, in the case where the respondent has signalled a mismatch the requester should perform a metadata catchup to the appropriate epoch.
> Currently, this mismatch is communicated by the presence of a non-empty map of endpoint states, but this is no longer necessary as {{Paxos::verifyElectorate}} can provide the epoch of the placements used to construct its local electorate if it differs from the remote one. That epoch can then be included in the {{Permitted}} response instead of the gossip state. When handling the {{Permitted}} response, the paxos coordinator can use this epoch to determine whether it needs to call {{{}permittedOrTerminateIfElectorateMismatch{}}}.
> For now, we will need to include both the electorate epoch and gossip state in the {{Permitted}} response to ensure continuity during upgrades but eventually the gossip state can be removed from these messages.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org