> You stated that the new storage manager will do over-writing, and that
> the MVCC-needed tuples will be kept somewhere else and removed when not
> needed.
>
> It is possible to use SDB, and keep the MVCC-needed tuples somewhere
> else, also in SDB, so we don't have to add MVCC into the SDB existing
> code, we just need to use SDB to implement MVCC.
Possible, in theory.
> The issue was that SDB does two-phase locking, and I was asking if MVCC
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Due to this fact seems we'll have to change SDB anyway. With MVCC per-tuple
locking is not needed. Short-term per-buffer _latches_ are used to prevent
concurrent changes in a buffer, no locks made via lock manager.
I'm not sure does SDB API allow _any_ access to modified tuples or not.
I would rather assume that it doesn't.
> could be layered on top of SDB, rather than being added into SDB.
As I said - possible, in theory, - and also not good thing to do, in theory.
MVCC and 2PL are quite different approaches to problem of concurrency
control. So, how good is layering one approach over another, who knows?
Vadim