Description
IgniteCache#loadCache method broadcasts an internal task under the hood. If one of the jobs are local (i.e. if loadCache is invoked on server node), this job is executed in a caller thread, potentially before all or some remote requests are sent. Since data loading is generally long running process, its duration doubles in this scenario.
Possible solution is to check the list of nodes before task execution, and if local node is there, execute on remote nodes first, and only then submit to local node. This way we make sure that remote nodes never wait for the local node.