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