They may get serialized and shipped to slaves, as happens in mapReduceTriplets. Reuse with the ConcurrentHashMap seems like overkill to me since at most we'll end up creating one EdgeDirection per partition.