[SERVER-76238] Evaluate replacing NO_YIELD with INTERRUPT_ONLY Created: 18/Apr/23  Updated: 07/Nov/23  Resolved: 07/Nov/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 7.2.0-rc0

Type: Improvement Priority: Major - P3
Reporter: Louis Williams Assignee: Rushan Chen
Resolution: Fixed Votes: 0
Labels: query-director-triage
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Query Execution
Backwards Compatibility: Fully Compatible
Sprint: QE 2023-06-26, QE 2023-07-10, QE 2023-07-24, QE 2023-08-07, QE 2023-08-21, QE 2023-09-04, QE 2023-09-18, QE 2023-10-02, QE 2023-10-16, QE 2023-10-30, QE 2023-11-13
Participants:

 Description   

The existence of INTERRUPT_ONLY implies that there is a use case for a query not being interruptible, but all of our database operations should be interruptible. The task here is to try to remove NO_YIELD entirely and replace it with INTERRUPT_ONLY or at least understand why we still need NO_YIELD.



 Comments   
Comment by Githook User [ 06/Nov/23 ]

Author:

{'name': 'Rushan Chen', 'email': 'rushan.chen@mongodb.com', 'username': 'ruchen'}

Message: SERVER-76238 replace NO_YIELD with INTERRUPT_ONLY
Branch: master
https://github.com/mongodb/mongo/commit/e725892aa01a0ff3cfb75541b0a91819951cbecc

Comment by Rushan Chen [ 08/Aug/23 ]

This experiement (override when initiating the PlanYieldPolicy Object) showed that replacing NO_YIELD with INTERRUPT_ONLY is safe to carry out. It covers all PlanYieldPolicy objects created via plan_executor_factory::make call, including those invoked from classic, SBE as well as the emerging CQF paths in getExecuter().

The following pull request will implement this replacement.

Comment by Kyle Suarez [ 18/Apr/23 ]

We think we should do this; sending this to the director triage to discuss scheduling.

Generated at Thu Feb 08 06:32:10 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.