[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: |
|
||||||||||||
| Assigned Teams: |
Query Execution
|
||||||||||||
| Participants: | |||||||||||||
| Description |
|
The main task here is to make exhaust cursors work with various features like
|
| 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. |