Client-Side Transactions
- Client reads A, B, C
- Client reserves txid
- Client writes A, B, C with lien to txid for some time (how long? see below)
- Client writes T with (A', B', C') at txid
- Client writes A' into A, B' into B, C' into C
- Client deletes T
Server-Side Transactions (2PC)
- Client sends MT to master
- (oid, version) predicates
- writes, creates (server-assigned keys?), deletes
- reads?
- Master writes transaction object with list of participants, acquiring a txid
- Master sends txid, MT to all participants
- Participants lock objects and log MT
- Participants send vote
- Master writes decision in table
- Master relays decision to participants
- Master relays to client
- Participants commit
- Participants acknowledge
- Master removes transaction object