[Noob] veiled passage in "Consensus on Transaction Commit"

35 views
Skip to first unread message

Alexander Vasilev

unread,
May 5, 2019, 3:18:20 AM5/5/19
to tlaplus
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.

Leslie Lamport

unread,
May 8, 2019, 10:19:55 PM5/8/19
to tlaplus
This does appear to be a typo.  Unfortunately, I don't know how to post a corrected version on the paper's current location.  I will try to find out.

Leslie

Amir A.H.S.A

unread,
May 9, 2019, 3:57:01 AM5/9/19
to tla...@googlegroups.com
Hi,

In the case of Transaction Commit spec (TCommit), there is no Transaction Manager and therefore there is no need to send/receive messages. Each RM will independently change its current state to the next state, and it uses "canCommit" and "notCommitted" as a means to abstract the unnecessary complexity of sending/receiving messages.

As to your specific question, the start of a transaction is marked by an RM that changes its current state from "working" to "prepared".

Please let me know if this helps.

Sincerely,
Amir Hossein Sayyad Abdi



--
You received this message because you are subscribed to the Google Groups "tlaplus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tlaplus+u...@googlegroups.com.
To post to this group, send email to tla...@googlegroups.com.
Visit this group at https://groups.google.com/group/tlaplus.
For more options, visit https://groups.google.com/d/optout.

Alexander Vasilev

unread,
May 9, 2019, 5:13:20 AM5/9/19
to tlaplus
Dear Mr. Lamport, Mr. Abdi

Thank you for your replies. The issue is settled.

четверг, 9 мая 2019 г., 14:57:01 UTC+7 пользователь AmirHossein написал:
To unsubscribe from this group and stop receiving emails from it, send an email to tla...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages