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)