[
https://issues.apache.org/jira/browse/RATIS-498?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16795783#comment-16795783
]
Tsz Wo Nicholas Sze commented on RATIS-498:
-------------------------------------------
{quote}
I am thinking that on the follower, once the notification is received to
install the snapshot, and the state machine is informed, we should immediately
return a response to the Leader that the request has been received. The actual
install snapshot work by the State Machine should not be blocking the response
to Leader. We could have a separate thread running on the RaftServerImpl which
keeps track of the snapshot installations in progress so that SM is not
notified multiple times.
In the meanwhile, till the snapshot installation is finished, the Leader will
keep trying to send appendEntries (or notifyInstallSnapshot requests) but the
follower will ignore them.
Please let me know if this approach sounds good to you.
{quote}
It sounds great! It is good to make the NotifyInstallSnapshot call short and
then use the appendEntries to maintain leadership. Leader may keep calling
NotifyInstallSnapshot to check the progress.
BTW, we may consider combining NotifyInstallSnapshot and InstallSnapshot to a
single rpc since they are closely related. I do not have strong opinion on it.
I also agree with [~msingh] for dividing this to 2 JIRAs. The first one can
get committed very soon.
> Notify Follower to Install Snapshot through state machine
> ---------------------------------------------------------
>
> Key: RATIS-498
> URL: https://issues.apache.org/jira/browse/RATIS-498
> Project: Ratis
> Issue Type: New Feature
> Components: server
> Reporter: Hanisha Koneru
> Assignee: Hanisha Koneru
> Priority: Major
> Attachments: RATIS-498.000.patch, RATIS-498.001.patch
>
>
> When a lagging Follower wants to catch up with the Leader, and the Leader
> only has logs with start index greater than the Followers's last log index,
> then the leader sends an InstallSnapshotRequest to the the Follower.
> The aim of this Jira is to allow State Machine to decouple snapshot
> installation from the Ratis server. When Leader does not have the logs to get
> the Follower up to speed, it should notify the Follower to install a snapshot
> (if install snapshot through Log Appender is disabled). The Follower in turn
> notifies its state machine that a snapshot is required to catch up with the
> leader.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)