[SERVER-45792] Make StorageEngine::waitForJournalFlush interruptible Created: 27/Jan/20 Updated: 06/Dec/22 Resolved: 09/Mar/20 |
|
| Status: | Closed |
| 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: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||
| Assigned Teams: |
Storage Execution
|
||||||||||||
| Participants: | |||||||||||||
| Description |
|
This function will be added in We wanted to make it interruptible, but the waitForMajorityService doesn't expect waitForWriteConcern (which will call waitForJournalFlush) to throw. This is not technically correct, because waitForWriteConcern returns a Status and today calls waitUntilDurable, which can in fact throw an error. The desire is to make writeConcern's j:true code interruptible, like writeConcern's w code. We could also explore moving more of the waitUntilDurable callers onto waitForJournalFlush, to make them interruptible (otherwise waitUntilDurable is uninterruptible while calling into WT). However, only callers of waitUntilDurable that call with the same function parameter settings as the JournalFlusher. We could explore moving the special function parameter controllable functionality out of waitUntilDurable into a higher level, too.. |
| Comments |
| Comment by Dianna Hohensee (Inactive) [ 09/Mar/20 ] |
|
I'm closing this as Done because the work has happened elsewhere. waitForJournalFlush can throw an interrupt error and the callers thereof handle it appropriately. SERVER-46191 is a newer ticket of interest, where we now wish to somehow make waitForJournalFlush – or a wrapper thereof – obey the wtimeout given via writeConcern options. |