[DOCS-13868] Investigate changes in SERVER-48318: Risk of StaleChunkHistory errors in sharded transactions Created: 09/Sep/20 Updated: 13/Nov/23 Resolved: 11/Oct/21 |
|
| Status: | Closed |
| Project: | Documentation |
| Component/s: | manual, Server |
| Affects Version/s: | None |
| Fix Version/s: | 4.7.0, 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: | Jason Price |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Participants: | |||||||||
| Days since reply: | 2 years, 17 weeks, 2 days ago | ||||||||
| Epic Link: | DOCSP-15042 | ||||||||
| Story Points: | 3 | ||||||||
| Description |
DescriptionDownstream Change Summary The snapshot history window is now the max of (minSnapshotHistoryWindowInSeconds, transactionLifetimeLimitSeconds, 10) where 10 seconds is the hardcoded lower bound for snapshot history window. Please refer to Max's comment here https://jira.mongodb.org/browse/SERVER-48318?focusedCommentId=3364500&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-3364500 for the information that should be included in the documentation for transactionLifetimeLimitSeconds. Description of Linked Ticket While reviewing the changes for A new transaction always chooses a recent timestamp, even with readConcern majority. This is the "speculative majority" behavior. But transactions have a default 60-second lifetime, and chunk history only lasts 10 seconds. Do we see the following?:
Transactions cannot retry StaleChunkHistory (SERVER-39704) and I think this particular case could never be retried, since the history is truly gone. If the client uses a driver's withTransaction API then TransientTransactionError will compel it to retry the transaction from the start and probably succeed. It can retry for up to 120 seconds. It would have to be unlucky for the sequence above to repeat for that long. However, I think we can reduce the incidence of retries by keeping chunk history for at least transactionLifetimeLimitSeconds. Scope of changesImpact to Other DocsMVP (Work and Date)Resources (Scope or Design Docs, Invision, etc.) |
| Comments |
| Comment by Githook User [ 11/Oct/21 ] |
|
Author: {'name': 'jason-price-mongodb', 'email': 'jshfjghsdfgjsdjh@aolsdjfhkjsdhfkjsdf.com'}Message: |
| Comment by Githook User [ 07/Oct/21 ] |
|
Author: {'name': 'jason-price-mongodb', 'email': 'jshfjghsdfgjsdjh@aolsdjfhkjsdhfkjsdf.com'}Message: |