[SERVER-64407] Add ResourceYielder support to ARS Created: 10/Mar/22 Updated: 29/Oct/23 Resolved: 14/Mar/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 6.0.0-rc0 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Jack Mulrow | Assignee: | Jack Mulrow |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Sprint: | Sharding NYC 2022-03-21 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
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. |
| Comments |
| Comment by Githook User [ 11/Mar/22 ] |
|
Author: {'name': 'Jack Mulrow', 'email': 'jack.mulrow@mongodb.com', 'username': 'jsmulrow'}Message: |