Currently Infinispan implements putAll(map) by means of looping over all entries and submitting them by means of put() one-by-one.
This is very slow if you have a lot of synchronous updates to apply.
It would be much more efficient, if a special bulk operation would be supported, so that all entries are sent to their respective replica nodes in one go. It would reduce the number of network roundtrips and related overhead and it would also make use of parallel execution, because some of the puts can be executed in parallel as they land on different nodes.
Note: Hazelcast has this optimization. It often improves performance of bulk puts by at least a factor of 2 or 3, even if it is used between a client and Hazelcast server, i.e. a bulk operation is sent to a single grid node from a client and no parallelism can be used.