[SERVER-34072] config.databases writes with new version field should take the global IX lock rather than the fcvLock Created: 15/Feb/18  Updated: 29/Oct/23  Resolved: 11/Jun/18

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: 4.0.0-rc5, 4.1.1

Type: Task Priority: Major - P3
Reporter: Dianna Hohensee (Inactive) Assignee: Esha Maharishi (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
is depended on by SERVER-34550 [post-branch] Remove database version... Closed
is depended on by SERVER-35391 Remove FCV logic in forceDatabaseRefr... Closed
Problem/Incident
Related
related to SERVER-35538 unblacklist database_versioning.js wo... Closed
Backwards Compatibility: Fully Compatible
Backport Requested:
v4.0
Sprint: Sharding 2018-05-21, Sharding 2018-06-04, Sharding 2018-06-18
Participants:
Linked BF Score: 0

 Description   

It has been decided that the fcvLock should only be utilized by operations that must do a network call while ensuring the FCV doesn't change.

config.databases writes can simply be protected by the global IX lock, which ensures a conflict with setFCV's global S lock acquisition here and here. Combined with an upgrade/downgrade process for config.databases schema, this is sufficient to ensure config.databases entries will have version fields in FCV 4.0.

This work is further necessary to ensure better concurrency between setFCV and sharding createDatabase command, because the fcvLock will continue to be held for the duration of setFCV, which currently would prevent createDatabase during upgrade/downgrade.



 Comments   
Comment by Githook User [ 11/Jun/18 ]

Author:

{'username': 'EshaMaharishi', 'name': 'Esha Maharishi', 'email': 'esha.maharishi@mongodb.com'}

Message: SERVER-34072 Temporarily blacklist database_versioning.js workload from non-stepdown concurrency suites as well

(cherry picked from commit f4f7f2cc15ad46f20de8566e913fb5d25cfd4778)

SERVER-34072 config.databases writes with new version field should take the global IX lock rather than the fcvLock

(cherry picked from commit 0254efea54ab78d065e7df44a2d21b4c5b62212e)
Branch: v4.0
https://github.com/mongodb/mongo/commit/b7c49f9ba1e9684028a08ee9de0b03be51470706

Comment by Githook User [ 11/Jun/18 ]

Author:

{'username': 'EshaMaharishi', 'name': 'Esha Maharishi', 'email': 'esha.maharishi@mongodb.com'}

Message: SERVER-34072 Temporarily blacklist database_versioning.js workload from non-stepdown concurrency suites as well

(cherry picked from commit f4f7f2cc15ad46f20de8566e913fb5d25cfd4778)

SERVER-34072 config.databases writes with new version field should take the global IX lock rather than the fcvLock

(cherry picked from commit 0254efea54ab78d065e7df44a2d21b4c5b62212e)
Branch: v4.0
https://github.com/mongodb/mongo/commit/b7c49f9ba1e9684028a08ee9de0b03be51470706

Comment by Githook User [ 11/Jun/18 ]

Author:

{'username': 'EshaMaharishi', 'name': 'Esha Maharishi', 'email': 'esha.maharishi@mongodb.com'}

Message: SERVER-34072 Temporarily blacklist database_versioning.js workload from non-stepdown concurrency suites as well
Branch: master
https://github.com/mongodb/mongo/commit/f4f7f2cc15ad46f20de8566e913fb5d25cfd4778

Comment by Githook User [ 11/Jun/18 ]

Author:

{'username': 'EshaMaharishi', 'name': 'Esha Maharishi', 'email': 'esha.maharishi@mongodb.com'}

Message: SERVER-34072 config.databases writes with new version field should take the global IX lock rather than the fcvLock
Branch: master
https://github.com/mongodb/mongo/commit/0254efea54ab78d065e7df44a2d21b4c5b62212e

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