|
As part of this ticket (or spun off tickets):
- Extend TransactionParticipant to track optional statement ids for transaction commands and return the response a write would have returned originally if a previously executed statement id is received
- Optional because drivers will not include them, only a router
- Should support all retryable writes commands, i.e. insert, update, delete, and findAndModify
- Extend TransactionRouter to send statement ids to shards
- This is only needed for internal transactions used to execute a retryable write, so this does not need to be default behavior
- Extend chunk migration session history migration to migrate history for committed transactions to enable reconstructing statement responses for retries across migrations
|