-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
Sharding NYC 2022-03-21
If a mongod can run a distributed transaction, which requires checking out the transaction's session from the SessionCatalog to access the TransactionRouter, it may target itself, which would also require that session to access the TransactionParticipant. We solved a similar problem for aggregations that run getMores on themselves in a transaction by adding a ResourceYielder type that the BlockingResultsMerger uses to yield a session while running a "remote" command that may target the local process. We can extend that solution for this case by adding ResourceYielder support to the AsyncRequestsSender, which is used to send remote commands in a transaction.
- is related to
-
SERVER-33683 Allow aggregation $mergeCursors stage to run inside a transaction
- Closed
- split from
-
SERVER-63495 Support targeting remote shards from transaction API on mongod for subset of commands
- Closed