[Jeremy Hylton] > I understand. The further invariant is that the index captured when a > savepoint created is immutable.
Or at least acts like it. Copying is an easy-to-code and effective way to ensure that, and I don't know of a better feasible way. Capturing a lot of savepoints (or doing a lot of commit(True)) while modifying a lot of objects makes for a lot of index copying, though, effectively injecting an O(N**2) time drag (even if rollback/abort(True) is never done). A "copy on modify" flavor of dict could do much better. Since I'm sure Google could also make good use of that, I expect to see a patch on the Python tracker from you implementing that by the end of this weekend <wink>. _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev