Bruce's lecture on MVCC: In 9.1, we have repeatable read. This is old "Serializable". Now serializable adds another condition. When a conflict is detected, the transaction will be aborted. This will be covered by Friday's lecture on "Serializable Snapshot Isolation". I need to listen to it to have better idea how to support new isolation level.


  • 'SERIALIZABLE' in 9.0 or older will be 'REPEATABLE READ' in 9.1 or later.
  • 'SERIALIZABLE' tests footprint of each transaction and determine if it violates r-w and r-w conflict.
  • This is implemented by list of read objects (rows, pages, or table --- escalates).

Important point is they completely work locally, even in distributed transactions, and you will notice that this does not require any change to XC --- GREAT!!==

SERIALIZABLE for replicated table

Oh gee! I found that we have to share SSI snapshot for replicated table among all the nodes. Because read to rows in distributed table comes only to the server where the raw resides, read to rows in replicated table may come to any nodes. It is quite inefficient to copy all the SSI info to all the other nodes. Only one place to start with seems to me to begin with table-level SSI, not row level. Block level does not make sense.