Andrey, I agree that most likely this can be done in an async way. There
are some nuances, though, because if a node leaves during an ongoing
exchange, we should remove the locks in the context of the ongoing exchange
and not wait for the next exchange event.

I will take a look at your PR shortly.

ср, 15 авг. 2018 г. в 15:57, Andrey Mashenkov <andrey.mashen...@gmail.com>:

> Hi Igniters,
>
> I've found Ignite node tries to unlock tx entries when a node left the
> grid.
> Ignite do this synchronously in
> GridCacheMvccManager.removeExplicitNodeLocks() in discovery and exchange
> threads.
>
> Looks like this can be done in ascync way.
> I've made a PR #4565 and seems there is no new test failures [1].
>
> I'm not familiar enough with exchange manager code, but looks like we can
> scan locked entries more than once per node left event.
> Also, it looks possible we can scan locked entries once for several merged
> exchange events.
>
> Thoughts? Any ideas how this can be refactoried?
>
> [1]
>
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8&tab=projectOverview&branch_IgniteTests24Java8=pull%2F4546%2Fhead
>
> --
> Best regards,
> Andrey V. Mashenkov
>

Reply via email to