Tim Peters wrote:
Probably none for many apps. You'll be working with possibly non-current data, so think of ways your apps could possibly be damaged by that. For example, you're Bill Gates, using ZODB to track all your assets. A summary report takes hours to generate, and by the time you get it, perhaps a few of your billion-dollar overseas accounts were wiped out in the wee hours by an adverse court judgment, but the total you get added in the account values as of the time the report-generating transaction began. Oops. To the extent that MVCC hides that you're working with non-current data, to that extent also does an app relying on current data become vulnerable. When Bill is contemplating fleeing the country during turbulent times, he presumably needs to know how much cash he has right now, not what he had last night. Most apps aren't like that, but a one-size-fits-all policy for long-running transactions (like Bill's) doesn't exist.
Ah, okay. That all makes sense... Of course, Bill may appreciate having a report that says "based on data no newer than X" where X is the time the transaction to generate the report started, rather than no report at all due to lots of read conflicts ;-) Chris