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