Backport atomic invalidations code from Zope3.
The DB's invalidate() method takes a set of oids corresponding to all the changes from a data manager for one transaction. All the objects are invalidated at once. Add a few tests in testZODB of the new code. The tests just cover corner cases, because I can't think of a sensible way to test the atomicity. When it has failed in the past, it's been caused by nearly-impossible to reproduce data races. This fix needs to be backported to Zope 2.6, but only after assessing how significant an impact the API change will have.
Showing
Please register or sign in to comment