I read and don’t understand your 2 phase transaction protocol. In phase 2, when transaction record update to aborted? And i read “CockroachDB checks the running transaction’s record to see if it’s been ABORTED; if it has, it restarts the transaction”. When does a transaction restart occur? What if the restart is still aborted ?
And phase 3, if phase 2 has restarted transaction when state transaction record is aborted, How can phase 3 encounter the status of the transaction record is aborted.
I see conflicts. Can you explain me the 2PC process?