Replication : Transaction Log and Snapshot

Regarding isolation levels, you can already get serializable isolation by using SELECT FOR UPDATE. E.g. to do a multi-statement update transaction you can do

BEGIN;
select … for update …; /* will hold locks on all rows fetched, until commit /

update … ; /
can depend on rows fetched by SELECT */
COMMIT;