[SERVER-38468] Only create coordinator in memory on coordinateCommit Created: 07/Dec/18  Updated: 10/Dec/18  Resolved: 10/Dec/18

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Matthew Saltz (Inactive) Assignee: Matthew Saltz (Inactive)
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Operating System: ALL
Sprint: Sharding 2018-12-17
Participants:

 Description   

Previously with the old commit protocol we would create a transaction coordinator in memory on the coordinator shard when the first statement of the transaction arrived with a coordinator: true flag. Now that we're using an RPC based protocol this isn't necessary. We can instead create the coordinator when the coordinator shard receives coordinateCommit with a participant list.



 Comments   
Comment by Matthew Saltz (Inactive) [ 10/Dec/18 ]

Turns out this makes recovering the decision/making coordinateCommit calls idempotent much more complicated, to the point that it isn't worth it. This is because when a coordinateCommit command arrives, if a coordinator does not exist in memory, we don't know if that means that commit has completed or that it hasn't started.

Generated at Thu Feb 08 04:49:02 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.