[DOCS-13682] Investigate changes in SERVER-30888: Have FTDC code paths obtain locks with a timeout. Created: 01/Jun/20  Updated: 13/Nov/23  Resolved: 19/Aug/21

Status: Closed
Project: Documentation
Component/s: manual, Server
Affects Version/s: None
Fix Version/s: 4.7.0, 4.4.19, Server_Docs_20231030, Server_Docs_20231106, Server_Docs_20231105, Server_Docs_20231113

Type: Task Priority: Major - P3
Reporter: Backlog - Core Eng Program Management Team Assignee: Naomi Pentrel (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-30888 Have FTDC code paths obtain locks wit... Closed
Participants:
Days since reply: 1 year, 10 weeks ago
Epic Link: DOCSP-15042
Story Points: 2

 Description   

Description

Downstream Change Summary

This adds a new optional parameter 'waitForLock' to the 'collStats' command. The parameter defaults to 'true'. When set to true (or by default), the behavior is unchanged from the existing behavior of 'collStats' blocking behind its lock acquisition to collect statistics. When set to false, 'collStats' will not block behind its lock acquisition. Instead, if the lock cannot be immediately acquired, the 'collStats' command will still succeed but its response will not include any statistics. This new waitForLock=false mode is used by FTDC.

Description of Linked Ticket

Currently FTDC takes out locks in two places (once when running WiredTiger and once when running with replication).
WiredTiger: https://github.com/mongodb/mongo/blob/1dc2afc8b5ce09d88535049df2ad72adc0434cc8/src/mongo/db/storage/wiredtiger/wiredtiger_server_status.cpp#L60
Replication: https://github.com/mongodb/mongo/blob/c1e7921e9d69bd9a37761deb58d119a324341a54/src/mongo/db/ftdc/ftdc_mongod.cpp#L47-L60 which calls into https://github.com/mongodb/mongo/blob/1dc2afc8b5ce09d88535049df2ad72adc0434cc8/src/mongo/db/stats/storage_stats.cpp#L57

Both can wait forever which can be undesirable for FDTC. Instead it may be useful to utilize "tryLocks" such that an FTDC round can make progress and output data despite some pieces blocking.

However such a change would also affect serverStatus output thus be an API change that can affect downstream callers.

Scope of changes

Impact to Other Docs

MVP (Work and Date)

Resources (Scope or Design Docs, Invision, etc.)



 Comments   
Comment by Education Bot [ 30/Nov/22 ]

Fix Version updated for upstream SERVER-30888:
4.7.0, 4.4.19

Comment by Naomi Pentrel (Inactive) [ 19/Aug/21 ]

Team no longer thinks this requires documentation:
https://mongodbcr.appspot.com/816910001/

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