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

Denis Chudov updated IGNITE-19120:
----------------------------------
    Description: 
*Motivation*

This ticket is about TopologyAwareRaftGroupService which can subscribe on 
leader change. Necessary metadata is last log index and last applied index in 
leader's storage. 

This will allow to remove readIndex requests on acceptance of a lease on 
leaseholder candidate. As we know that no write commands in replication group 
can happen in absence of leaseholder, this means that leaseholder should just 
catch up leader's last log index received with leader metadata to make sure 
that its local storage is up-to-date. Applied index can be not reliable as 
leader may be being recovered and applied index maybe in progress of catch-up 
with log index, but it might be useful to know applied index on leaseholder 
candidate to justify time of waiting for actual storage state.

*Definition of done*

readIndex call is removed from Replica#waitForActualState.

  was:
*Motivation*

This ticket is about TopologyAwareRaftGroupService which can subscribe on 
leader change, and RaftGroupService methods such as 
refreshAndGetLeaderWithTerm(). Necessary metadata is last applied index in 
leader's storage. 

This will allow to remove readIndex requests on acceptance of a lease on 
leaseholder candidate. As we know that no write commands in replication group 
can happen in absence of leaseholder, this means that leaseholder should just 
catch up leader's last applied index received with leader metadata to make sure 
that its local storage is up-to-date.

*Definition of done*

readIndex call is removed from Replica#waitForActualState.

RaftGroupServiceImpl#refreshAndGetLeaderWithTerm also gets leader metadata 
along with leader. 

LeaderWithTerm class is enriched with metadata and (possibly) renamed.


> Raft client should get leader metadata along while getting leader itself
> ------------------------------------------------------------------------
>
>                 Key: IGNITE-19120
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19120
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Denis Chudov
>            Priority: Major
>              Labels: ignite-3
>
> *Motivation*
> This ticket is about TopologyAwareRaftGroupService which can subscribe on 
> leader change. Necessary metadata is last log index and last applied index in 
> leader's storage. 
> This will allow to remove readIndex requests on acceptance of a lease on 
> leaseholder candidate. As we know that no write commands in replication group 
> can happen in absence of leaseholder, this means that leaseholder should just 
> catch up leader's last log index received with leader metadata to make sure 
> that its local storage is up-to-date. Applied index can be not reliable as 
> leader may be being recovered and applied index maybe in progress of catch-up 
> with log index, but it might be useful to know applied index on leaseholder 
> candidate to justify time of waiting for actual storage state.
> *Definition of done*
> readIndex call is removed from Replica#waitForActualState.



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

Reply via email to