[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