[
https://issues.apache.org/jira/browse/IGNITE-27256?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vladislav Pyatkov updated IGNITE-27256:
---------------------------------------
Description:
h3. Motivation
The current implementation notifies the client side when a new leader appears.
To avoid missing a leader, we have to refresh it for the client side on each
subscription (on initialization of topology change):
{code}
PhysicalTopologyAwareRaftGroupService#requestLeaderManually(ClusterService,
Executor, RaftGroupService, CompletableFuture<?>)
{code}
We don't need to do this if the server side sends a notification about the
current leader (if the leader is in a local node).
h3. Implementation notes
The optimal way to notify about a leader after subscription is sending a term
in `SubscriptionLeaderChangeRequestAcknowledge`. The term is the last when the
recipient node was a leader.
h3. Definition of done
Add a notification about a current leader.
Remove the method above from the client side.
was:
h3. Motivation
The current implementation notifies the client side when a new leader appears.
To avoid missing a leader, we have to refresh it for the client side on each
subscription (on initialization of topology change):
{code}
PhysicalTopologyAwareRaftGroupService#refreshLeader(ClusterService, Executor,
RaftGroupService, CompletableFuture<?>)
{code}
We don't need to do this if the server side sends a notification about the
current leader (if the leader is in a local node).
h3. Implementation notes
The optimal way to notify about a leader after subscription is sending a term
in `SubscriptionLeaderChangeRequestAcknowledge`. The term is the last when the
recipient node was a leader.
h3. Definition of done
Add a notification about a current leader.
Remove the method above from the client side.
> Simplify server side of topology-aware RAFT client
> --------------------------------------------------
>
> Key: IGNITE-27256
> URL: https://issues.apache.org/jira/browse/IGNITE-27256
> Project: Ignite
> Issue Type: Improvement
> Components: replication ai3
> Reporter: Vladislav Pyatkov
> Priority: Major
> Labels: ignite-3
>
> h3. Motivation
> The current implementation notifies the client side when a new leader
> appears. To avoid missing a leader, we have to refresh it for the client side
> on each subscription (on initialization of topology change):
> {code}
> PhysicalTopologyAwareRaftGroupService#requestLeaderManually(ClusterService,
> Executor, RaftGroupService, CompletableFuture<?>)
> {code}
> We don't need to do this if the server side sends a notification about the
> current leader (if the leader is in a local node).
> h3. Implementation notes
> The optimal way to notify about a leader after subscription is sending a term
> in `SubscriptionLeaderChangeRequestAcknowledge`. The term is the last when
> the recipient node was a leader.
> h3. Definition of done
> Add a notification about a current leader.
> Remove the method above from the client side.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)