On Thu, Feb 18, 2010 at 8:43 AM, Thomas Müller <[email protected]> wrote: > Hi, > > I would do MVCC in a similar way it is done in relational databases > such as PostgreSQL. See also > www.postgresql.org/files/developer/transactions.pdf > > Concurrent writes and MVCC: usually MVCC means readers are never > blocked by other readers or writers, and writers are not blocked by > readers. However, writers can block other writers when trying to > update the same node ("row" in databases). > > Concurrent writes to disk: I think this only makes sense if the > hardware supports it. With a single disk it doesn't make sense: > concurrent writes to two different positions or files is actually > slower than serialize writing, and only writing to one position in one > file. > > Relational databases don't usually persist all (intermediate) > versions, just the committed version. I don't think that copy-on-read > is a good idea. If we use append-only storage, in theory all old > versions are available, but indexing those is problematic.
+1, while copy-on-read might be a conveniant implementation approach it's hardly efficient. cheers stefan > > Regards, > Thomas >
