nabarunnag commented on pull request #5821:
URL: https://github.com/apache/geode/pull/5821#issuecomment-740967809
* Primary serial sender receives an event but the sender is not running
yet. Hence it has to drop the event.
* Primary has to inform the secondary to remove the event from the
unprocessedEventsMap.
* It has to do that because the event is dropped and the cache listener
on the secondary queue will not be triggered to remove it.
* Hence, the primary sends BatchDestroyOperation to the secondary with
the tail key set to -1 to trigger removal from unprocessedEventMap.
* There is a race in which the BatchDestroyOperation arrives before the
secondary event.
* In this case the event is never removed from the unprocessedEventsMap.
* In this fix, if this happens the event ID is placed in the
unprocessedTokensMap.
* So, when the secondary event arrives, it checks the
unprocessedTokensMap and then realizes that the primary has seen the event and
there is no need to place the event in the unprocessedEventsMap.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]