jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcel Reutegger <marcel.reuteg...@gmx.net>
Subject Re: [jr3] MVCC
Date Thu, 18 Feb 2010 22:24:27 GMT
On Thu, Feb 18, 2010 at 08:43, Thomas Müller <thomas.mueller@day.com> 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.

not necessarily. the current implementation in jackrabbit already
supports quite some of these features. you can keep an index reader
open while the index is updated, which basically gives you read-only
multi-versioning. it would even be possible to go back in time by
keeping old commit points. basic support for this is already


> Regards,
> Thomas

View raw message