ezsystems/ezpublish — pull request #419 by jjCavalleri (2012-08-30 18:06:16+00:00)
Title: Fixed #19544: Simplifying content and template expiration for operations on large bulks of data

The drive for the development of this patch came from the identification of two different problems, that shared a common root cause.
» Hiding / Revealing an object with many child nodes (each of the child nodes with a complex set of related / sub tree objects, causes timeout, memory exhaustion or DB Deadlock issues
» Moving chunks of nodes at once (50, for instance) from locations with a few thousand children (again some of these with complex structures attached), causes timeout, memory exhaustion or DB Deadlock issues.

In both cases it was possible to identify that the main cause for the problems were:
DB Deadlocks -> update and store modified, for the whole tree up to the contents being moved was being executed (in the minimum) twice for each object moved.
Full cache expiration is being executed several times during the process of clearing it after the hide/reveal operation, when one time would suffice.