You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Denis Chudov (Jira)" <ji...@apache.org> on 2023/03/21 16:09:00 UTC

[jira] [Updated] (IGNITE-18856) Switch primary replica calls from Raft leader to primary replica

     [ https://issues.apache.org/jira/browse/IGNITE-18856?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Denis Chudov updated IGNITE-18856:
----------------------------------
    Description: 
*Motivation*
As for now, RW requests to primary replica (see calls of `ReplicaService#invoke` ) are sent to raft leader, for which the refresh leader operation is needed. In presence of placement driver which is responsible for assigning primary replicas, this is not needed, the request can be sent directly to primary replica node. 
Th information about primary replicas assigned by placement driver should be available on every node after IGNITE-18859 . This task is about switching primary replica calls and eliminating excessive code related to refreshing leader of raft group.

*Definition of done*
Requests to primary replica are made to those nodes that are assigned by placement driver, and no related Raft calls are made.

Implementation notes

We should take into account that in current implementation the safe time is propagated from the primary replica, it should be changed to propagation from actual leader. Idle safe time propagation should work even if there is no leaseholder for primary replica. The lease interval should be greater that safe time propagation period, because the replica waits for actual safe time to accept lease.

  was:
*Motivation*
As for now, RW requests to primary replica (see calls of `ReplicaService#invoke` ) are sent to raft leader, for which the refresh leader operation is needed. In presence of placement driver which is responsible for assigning primary replicas, this is not needed, the request can be sent directly to primary replica node. 
Th information about primary replicas assigned by placement driver should be available on every node after IGNITE-18859 . This task is about switching primary replica calls and eliminating excessive code related to refreshing leader of raft group.

*Definition of done*
Requests to primary replica are made to those nodes that are assigned by placement driver, and no related Raft calls are made.



> Switch primary replica calls from Raft leader to primary replica
> ----------------------------------------------------------------
>
>                 Key: IGNITE-18856
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18856
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Denis Chudov
>            Priority: Major
>              Labels: ignite-3
>
> *Motivation*
> As for now, RW requests to primary replica (see calls of `ReplicaService#invoke` ) are sent to raft leader, for which the refresh leader operation is needed. In presence of placement driver which is responsible for assigning primary replicas, this is not needed, the request can be sent directly to primary replica node. 
> Th information about primary replicas assigned by placement driver should be available on every node after IGNITE-18859 . This task is about switching primary replica calls and eliminating excessive code related to refreshing leader of raft group.
> *Definition of done*
> Requests to primary replica are made to those nodes that are assigned by placement driver, and no related Raft calls are made.
> Implementation notes
> We should take into account that in current implementation the safe time is propagated from the primary replica, it should be changed to propagation from actual leader. Idle safe time propagation should work even if there is no leaseholder for primary replica. The lease interval should be greater that safe time propagation period, because the replica waits for actual safe time to accept lease.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)