[SERVER-78042] Truncates on change collections and pre-images collections may truncate inconsistent ranges Created: 13/Jun/23 Updated: 19/Jun/23 Resolved: 19/Jun/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Haley Connelly | Assignee: | Haley Connelly |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Sprint: | Execution EMEA Team 2023-06-26 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
In both change collections and pre-images collections, truncates are issued based on the 'lastRecord' of a given marker. Truncate markers are updated when there are inserts into each collection asynchronously. On secondaries, they may even be applied out of order. However, for each collection there is a separate remover thread. If the 'lastRecord' is not actually durable, we could accidentally truncate records before they have been made durable (applies to both primaries and secondaries). Additionally, on secondaries, truncates should be limited to ranges < lastApplied to guarantee a consistent state of the data within its range. |
| Comments |
| Comment by Haley Connelly [ 19/Jun/23 ] |
|
Closing as a duplicate since this must be done in conjunction with |