[SERVER-31242] findAndModify no-op retry should respect the fields option Created: 25/Sep/17  Updated: 30/Jan/24

Status: Open
Project: Core Server
Component/s: None
Affects Version/s: 3.6.0-rc1
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Jack Mulrow Assignee: Backlog - Query Execution
Resolution: Unresolved Votes: 3
Labels: todo_in_code
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-76583 Support retryable findAndModify for t... Backlog
Duplicate
is duplicated by SERVER-44151 Retryable write of findAndModify can ... Closed
is duplicated by SERVER-43484 Complete TODO listed in SERVER-31242 Closed
Gantt Dependency
Related
related to SERVER-48368 fts_find_and_modify.js should be blac... Closed
is related to SERVER-45653 avoid writing unneeded fields to no-o... Closed
Assigned Teams:
Query Execution
Operating System: ALL
Sprint: Query 2019-12-02, Query 2019-12-30, Query 2020-01-13, Query Execution 2021-04-05, Query Execution 2021-04-19
Participants:

 Description   

findAndModify can accept a "fields" option that determines which fields to return in the value object (like projection). Right now when reconstructing the findAndModify response, we don't account for this option. Instead, if "fields" is given we should filter the response to include the specified fields only.

Failing retryable_writes_jscore_passthrough tests:

  • crud_api.js
  • find_and_modify2.js
  • find_and_modify_server6865.js
  • profile_findandmodify.js


 Comments   
Comment by Kyle Suarez [ 02/Jun/23 ]

After discussion with bernard.gorman@mongodb.com, moving this ticket to the quick wins bucket but noting that this is likely on the larger size of a potential quick win.

Comment by Kyle Suarez [ 02/May/23 ]

Kyle to discuss this with Bernard at the director triage. We think that it would be worth someone with experience in this area to take a look at the current state of affairs before we action on this ticket (either scheduling soon, putting it into the quick wins bucket, etc.)

Comment by Mindaugas Malinauskas [ 08/Apr/21 ]

Since we decided that proceeding with this ticket makes sense after "Reduce oplog entry size of retryable findAndModify operations" project, moving to Open.

Comment by Ethan Zhang (Inactive) [ 07/Apr/21 ]

Andy recently wrote a scope: PM-2213 Reduce oplog entry size of retryable findAndModify operations. This project proposed that we can store the document post-image in a separate collection instead of the oplog entry. The issue with the oplog entry size can be mitigated in this way. So we want to put this issue off for the moment.

The issue with the field option being ignored is not part of the goals for Andy's project. After a discussion, we think it should be OK to wait for Andy's project to be completed and then come back to the field option issue.

Comment by Asya Kamsky [ 19/Jan/20 ]

I couldn't find one, so I filed SERVER-45653 to track writing only the needed fields into the oplog.

Comment by Asya Kamsky [ 19/Jan/20 ]

Is there a separate ticket to store only the needed fields (ones that were returned by original findAndModify) in the oplog rather than the full document? That seems like a better fix than trying to apply the projection when retrying the operation...

Generated at Thu Feb 08 04:26:25 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.