[SERVER-46191] Make waiting for the truncate point in waitForWriteConcern for single voter replica sets obey wtimeout Created: 14/Feb/20  Updated: 05/Dec/22

Status: Backlog
Project: Core Server
Component/s: Storage
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Dianna Hohensee (Inactive) Assignee: Backlog - Storage Execution Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Problem/Incident
Related
related to SERVER-45792 Make StorageEngine::waitForJournalFlu... Closed
related to SERVER-45847 Pull the JournalFlusher out of the st... Closed
Assigned Teams:
Storage Execution
Sprint: Execution Team 2020-06-29
Participants:

 Description   

This work is the result of adding waiting for the truncate point in SERVER-46186.

The code design should be made with consideration to SERVER-45847 and SERVER-45792. Currently we do not obey writeConcern's wtimeout for flushing the journal or waiting for the truncate point (the oplog no holes point).

This ticket must also unmodify the majority_writes_wait_for_all_durable_timestamp.js test that SERVER-46186 modified to explicitly use

{j: false}

to get a writeConcern wtimeout to work.



 Comments   
Comment by Dianna Hohensee (Inactive) [ 14/Feb/20 ]

There were two initial thoughts for how to do this

1) Separate awaitReplication functionality into a wrapper class that handles the wtimeout calculations and result setting on error, and then call the wait for no holes function and existing replication waiting logic via a anonymous function passed into the wrapper.

2) Make waiting for journaling + no holes entirely asynchronous via registering a desired optime in a queue somewhere, which causes a triggerJournalFlush to be called whenever the oplogReadTimestamp passes a requested optime. This solution would have to deal with flushAllFiles currently called in waitForWriteConcern: we do not currently have any async service that calls that form of waitUntilDurable.

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