[SERVER-30302] Add explicit configuration object for UpdateSequenceGenerator Created: 25/Jul/17  Updated: 30/Oct/23  Resolved: 08/Aug/17

Status: Closed
Project: Core Server
Component/s: Replication, Testing Infrastructure
Affects Version/s: None
Fix Version/s: 3.5.12

Type: Improvement Priority: Major - P3
Reporter: Max Hirschhorn Assignee: May Hoque
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-29939 Update sequence generation for testin... Closed
is depended on by SERVER-29944 Implement a basic idempotency checker... Closed
Related
related to SERVER-30569 Coverity analysis defect 101928: Argu... Closed
Backwards Compatibility: Fully Compatible
Sprint: TIG 2017-07-31, TIG 2017-08-21
Participants:

 Description   

The UpdateSequenceGenerator class introduced in SERVER-29939 is parameterized by

  1. A set of field names to use in the created document,
  2. A maximum depth for nested subdocuments and arrays, and
  3. A maximum length for array values.

may.hoque had the idea to bundle these options together in another class so that we didn't need to have every function take these constraints as threee separate parameters. Additionally, we should add the following additional parameters:

  1. A floating-point value between 0 and 1 (inclusion) to indicate the probability with which to generate a $set with a scalar value,
  2. A floating-point value between 0 and 1 (inclusion) to indicate the probability with which to generate a $set with a subdocument, and
  3. A floating-point value between 0 and 1 (inclusion) to indicate the probability with which to generate a $set with an array value.

Subtracting the sum of the above probabilities from 1 should yield a floating-point value between 0 and 1 (inclusive) to indicate the probability with which to generate an $unset.

Note: Until SERVER-28777 is implemented, multiInitialSyncApply_noAbort() will continue to use the 3.4 update codepath. The work described in this ticket serves as a workaround for SERVER-29944 (specifically by using probabilityOfArray=0) to avoid idempotency issues related to the handling of "blocking elements" / "non-viable paths" in the 3.4 update codepath.



 Comments   
Comment by May Hoque [ 08/Aug/17 ]

Have a wonderful day!

Comment by Githook User [ 07/Aug/17 ]

Author:

{'username': 'Utagai', 'email': 'may.hoque@mongodb.com', 'name': 'may'}

Message: SERVER-30302 Add explicit configuration object for UpdateSequenceGenerator
Branch: master
https://github.com/mongodb/mongo/commit/9255b0a684c6c9ca35da96493b91f04b832dc792

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