Denis Chudov created IGNITE-21348: ------------------------------------- Summary: Trigger lease negotiation retry in case when the lease candidate is no more in assignments Key: IGNITE-21348 URL: https://issues.apache.org/jira/browse/IGNITE-21348 Project: Ignite Issue Type: Bug Reporter: Denis Chudov
On receiving the "lease granted" message, the candidate replica tries to catch up the actual storage state, in order to do that it makes read index request. But in case when this candidate is no more a member of assignments (and replication group) this request fails and is retried until the lease negotiation interval exceeds. This makes no sense because such retries will not be successful, and the current candidate is not a good candidate anymore - because, although the leaseholder may be not a part of replication group, preferably it should be, and should be its leader. The assignment changes when some of current candidates and leaseholders are no more included in new assignment set, should be detected on the placement driver active actor, and the current lease should be revoked (if negotiation is in progress) or not prolonged. The new negotitation will be triggered automatically by the lease updater. *Implementation notes* This assignment changes detection should be done on placement driver side, because the events of assignment changes can be processed on different nodes in different time, and there is already assignments tracker as a part of placement driver. -- This message was sent by Atlassian Jira (v8.20.10#820010)