[ZODB-Dev] Multi-version concurrency control
Toby Dickenson
tdickenson at geminidataloggers.com
Fri Sep 26 12:29:58 EDT 2003
On Friday 26 September 2003 16:41, Jeremy Hylton wrote:
> I've posted a first draft of the project plan in the Wiki.
> http://www.zope.org/Wikis/ZODB/MultiVersionConcurrencyControl
>
> Comments are welcome.
This looks good. DirectoryStorage implementation looks easy and efficient too.
> It would be complicated to support MVCC and versions. Instead, we propose
> to ignore versions. If a connection is using a version, it will not be able
> to use MVCC. (We could always implement it later if there was a need.)
How about including a version parameter in the method, and for now just have
all storages raise an exception if it is non-empty?
> loadNonCurrent(oid, tid) -> data, serialno, start_tid, end_tid
Thinking aloud; will we always need the (potentially large) data at the same
time as the tid range? Would it be useful to also define a new method
getRevisionLifetime with the behavior you describe but returning a 3-tuple of
serial number and tids. I dont think any current storages (except ZEO) would
miss any optimisation opportunities by leaving your loadNonCurrent to a base
class implementation that uses getRevisionLifetime combined with loadSerial.
--
Toby Dickenson
More information about the ZODB-Dev
mailing list