[SERVER-58491] Consolidate the C++ native cursor implementation with the DBCommandCursor-based one in the shell js Created: 13/Jul/21  Updated: 06/Jun/23

Status: Backlog
Project: Core Server
Component/s: Query Execution
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Yoon Soo Kim Assignee: Backlog - Query Execution
Resolution: Unresolved Votes: 0
Labels: tech-debt
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-65955 Shell's special query path for exhaus... Closed
is related to SERVER-20770 Consolidate the two code paths for ru... Backlog
Assigned Teams:
Query Execution
Participants:

 Description   

The main task here is to make exhaust cursors work with various features like

  • sessions
  • readConcern
  • collation
  • allowDiskUse


 Comments   
Comment by David Storch [ 09/Aug/21 ]

I'm re-opening this, since I'm not convinced that a "Won't Fix" resolution is appropriate. It is true that the mongo shell is deprecated. However, this code is used heavily in the context of testing the server. For testing purposes, this code is very much alive and we will likely be maintaining it for years to come.

The reason not to do this now is that it could be a pretty expensive engineering investment. However, I would be in favor of eventually making some time for this work. I suggest "Backlog" rather than "Won't Fix".

Comment by Ethan Zhang (Inactive) [ 03/Aug/21 ]

We discussed this in the triage meeting and thought this change will only benefit mongo shell, which is deprecated in favor of mongosh. Yoonsoo mentioned that this is even like a medium-sized project, we don't think it worth the effort if now we only use mongo shell for testing.

Comment by David Storch [ 30/Jul/21 ]

It's not looking like we will have time for this as part of the legacy op code removal project. I'm sending this ticket back to the triage queue. This would be a major simplification, however it would only simplify the code for the mongo shell.

Comment by David Storch [ 14/Jul/21 ]

yoonsoo.kim, this could be a tricky task. In the interest of time, I'm not sure if we want to do it as part of the legacy op type removal project. Do you imagine that we would change all queries to use the C++ native path, or do you imagine that we would instead add "exhaust" support to the DBCommandCursor path. I'm not sure which is easiest, but my initial inclination would be to pursue a C++-native approach for all cursors, since exhaust is fairly low-level and probably shouldn't be plumbed through the JS runCommand() function.

Generated at Thu Feb 08 05:44:40 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.