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

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.


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

Reply via email to