Design patterns for efficient graph algorithms in MapReduce | Synapse