Nikolay
А например для Snapshot Isolation ведь не нужна 2PL. В 2pl если взят какой то lock на таблицу , то он ее не отпустит до завершения транзакции. А в SI такого нет. Прочитали данные из таблицы и перешли к другой таблице , например и на table1 уже никакой lock не держим . Выходит ,что 2PL только в serialuzable transaction используется
Ещё раз, о какой СУБД речь, конкретно?
> А например для Snapshot Isolation ведь не нужна 2PL.
Всё равно нужна — Вы забыли о DDL / schema locks (кажется, никто для этого "чисто" MVCC не использует).
> Выходит ,что 2PL только в serialuzable transaction используется
Выходит, что Вы непонятно о чём спрашиваете. ;)
2PL — это общий принцип, понимаете? И он (частично) нарушается в некоторых СУБД на некоторых уровнях изоляции.