[ 
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)

Reply via email to