[DRIVERS-2764] Errata in pseudo code for retryable reads specification Created: 06/Nov/23 Updated: 08/Nov/23 Resolved: 08/Nov/23 |
|
| Status: | Closed |
| Project: | Drivers |
| Component/s: | CSOT |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor - P4 |
| Reporter: | Slav Babanin | Assignee: | Shane Harvey |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Driver Changes: | Not Needed | ||||||||
| Start date: | |||||||||
| Description |
SummaryWhat is the problem or use case, what are we trying to achieve? It has been discovered that the pseudo-code provided in the documentation for the retryable reads is not aligned with the specified behavior of prose specification. The specified prose specification behavior, in short, is as follows:
However, the pseudo-code within the specification suggests a different approach. It currently demonstrates only one executeCommand followed by a timeout check leading to indefinite number of attempts if CSOT is not enabled. This situation appears to be similar to what was previously addressed in the retryable writes specifications MotivationWho is the affected end user?Who are the stakeholders? How does this affect the end user?Are they blocked? Are they annoyed? Are they confused? How likely is it that this problem or use case will occur?Main path? Edge case? This problem will only occur for driver developers who are very closely inspecting the specification, perhaps during implementation or when debugging this path in a driver. If the problem does occur, what are the consequences and how severe are they?Minor annoyance at a log message? Performance concern? Outage/unavailability? Failover can't complete? Worst case scenario is inconsistencies in how drivers handle retryable reads due to ambiguities in the pseudo code for the specification. Is this issue urgent?Does this ticket have a required timeline? What is it? Not urgent, no timeline. Is this ticket required by a downstream team?Needed by e.g. Atlas, Shell, Compass? No Is this ticket only for tests?Does this ticket have any functional impact, or is it just test improvements? No, just the specification pseudo code. Acceptance CriteriaWhat specific requirements must be met to consider the design phase complete? The prose spec and the pseudo code spec need to logically agree with each other. |
| Comments |
| Comment by Githook User [ 08/Nov/23 ] |
|
Author: {'name': 'Shane Harvey', 'email': 'shnhrv@gmail.com', 'username': 'ShaneHarvey'}Message: |
| Comment by Shane Harvey [ 07/Nov/23 ] |