-
Type: Task
-
Resolution: Unresolved
-
Priority: Unknown
-
None
-
Affects Version/s: None
-
Component/s: None
Use Case
As a... user of the driver
I want... a clean WriteConcern interface
So that... it's clear how I should specify the write concern
User Impact
- Breakages:
- Anyone specifying fsync, j, or wtimeout in the URI string
- Anyone currently ignoring TS errors and specifying fsync, j, or wtimeout in the MongoClient constructor options
- Anyone currently specifying w, journal, or wtimeoutMS as a top level MongoClient constructor option
- Anyone trying to access fsync, j, or wtimeout on the WriteConcern class
- Anyone trying to pass fsync, j, or wtimeout to the WriteConcern.fromOptions method
Dependencies
- Breaks shell users
Unknowns
- N/A
Acceptance Criteria
Implementation Requirements
- Replace fsync, j, and wtimeout in the WriteConcernSettings class
- Remove WRITE_CONCERN_KEYS
- Convert fsync, j, and wtimeout to internal-marked getters in the WriteConcern class
- Remove fsync from the WriteConcern constructor
- Update the WriteConcern.apply method to remove handling for fsync, j, and wtimeout as input
- Update the WriteConcern.fromOptions method to remove handling for fsync, j, and wtimeout as input
- Update the gridfs implementation to not use the unsupported WriteConcern options
Testing Requirements
- Update existing tests that use the removed options to use the new options as applicable
- Add unit tests for the internal legacy getters to ensure shell compat
Documentation Requirements
- Communicate changes to the docs team, including the new sources of truth for URI vs constructor supported options AND make sure the precedence of constructor options over URI options is clearly called out
Follow Up Requirements
- N/A