[DOCS-11443] Docs for SERVER-32630: Minimize reads of the featureCompatibilityVersion parameter that occur prior to the featureCompatibilityVersion document being read/created Created: 13/Mar/18  Updated: 27/Oct/23  Resolved: 17/Jul/18

Status: Closed
Project: Documentation
Component/s: manual, Server
Affects Version/s: None
Fix Version/s: 3.7.3

Type: Task Priority: Major - P3
Reporter: Kay Kim (Inactive) Assignee: Kay Kim (Inactive)
Resolution: Gone away Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Documented
documents SERVER-32630 Minimize reads of the featureCompatib... Closed
Participants:
Days since reply: 5 years, 30 weeks, 1 day ago
Epic Link: DOCS: 4.0 Server
Story Points: 1

 Description   

Documentation Request Summary:

As of this patch, arbiters now set their featureCompatibilityVersion to the latest version by default. This means that if users have to downgrade their arbiters, they will have to delete the arbiter data files in case there were any backwards-incompatible schema changes that were gated on the featureCompatibilityVersion.

Engineering Ticket Description:

Presently, there are places in the server code that read the featureCompatibilityVersion parameter before it is explicitly initialized with a meaningful value either from reading the featureCompatibilityVersion document or creating a new featureCompatibilityVersion document on clean startup. These reads should be minimized if not eliminated. A proposal to minimize these reads follows:

  • Continue to default the featureCompatibilityVersion parameter to the "unset" value.
  • Assert that the featureCompatibilityVersion parameter is not "unset" in the default getter function (getVersion).
  • For existing reads of the featureCompatibilityVersion parameter, find all reads that occur prior to the document being read. Most if not all of these should be 3.4 to 3.6 specific and thus get removed. If any such reads remain after removal of 3.4 to 3.6-specific behavior, and they must be kept, handle them with a special unsafe getter function that treats the "unset" value as last-stable.


 Comments   
Comment by Maria van Keulen [ 17/Jul/18 ]

kay.kim as of SERVER-32590, we no longer expect to need to delete arbiter data files upon downgrade, since the data files will automatically get downgraded on clean shutdown. I believe there are no FCV-4.0 dependent schema changes on the local database, so downgrading the WiredTiger file version should be sufficient for ensuring that a 3.6 arbiter can still start up.

Generated at Thu Feb 08 08:02:49 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.