jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Müller <thomas.muel...@day.com>
Subject Re: [jr3] MVCC
Date Thu, 18 Feb 2010 07:43:20 GMT
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.

Regards,
Thomas

Mime
View raw message