Hello.
I'v read "Consensus on Transaction Commit" (a spinoff of "The TLA+ Video Course") through and found a veiled passage.
Section 2 "Transaction Commit" on page 2 starts as follows:
In a distributed system, a transaction is performed by a collection of processes called resource managers (RMs), each executing on a different node. The transaction ends when one of the resource managers issues a request
either to commit or to abort the transaction.
The naive reader (that's me!) would expect rather
The transaction starts when one of the resource managers issues a request...
Compare this with section 4.2 "The Paxos Commit Algorithm" on page 11:
Execution of Paxos Commit normally starts when some RM decides to prepare and sends a BeginCommit message to the leader.
or section 6.3 "Committing a Transaction" on page 18:
In Two-Phase Commit, the BeginCommit message is the Prepared message of the first RM to enter the prepared state.
so the start of the transaction is marked by sending the Prepared/BeginCommit message in case of Two-Phase/Paxos Commit. Isn't it the "request either to commit or to abort"? Alas, there is no message at the Transaction Commit abstraction level. When I started to search the "request either to C or to A", I was really puzzled. Does the request correspond to the transition from "working" into "prepared" state on Figure 1 (page 3), i.e. Prepare action in The Specification of a Transaction Commit Protocol? Or does the request correspond to the Decide action in the same Specification? It the latter case the request ends transaction indeed.