[SERVER-42497] Detect/log unintentional untimestamped writes to catalog table Created: 30/Jul/19 Updated: 29/Oct/23 Resolved: 21/Aug/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | None |
| Fix Version/s: | 4.3.1 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Xiangyu Yao (Inactive) | Assignee: | Daniel Gottlieb (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||||||
| Backport Requested: |
v4.2
|
||||||||||||||||||||||||||||||||
| Sprint: | Execution Team 2019-08-12, Execution Team 2019-08-26 | ||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||
| Linked BF Score: | 12 | ||||||||||||||||||||||||||||||||
| Description |
|
|
| Comments |
| Comment by Githook User [ 21/Aug/19 ] |
|
Author: {'username': 'dgottlieb', 'email': 'daniel.gottlieb@mongodb.com', 'name': 'Daniel Gottlieb'}Message: |
| Comment by Alexander Gorrod [ 21/Aug/19 ] |
|
Woo! Thanks for finding a path forward on this Dan - I'm excited that there is more checking around expected use now. |
| Comment by Daniel Gottlieb (Inactive) [ 20/Aug/19 ] |
|
Unfortunately assert=(commit_timestamp=always) is not sufficient for the table in question _mdb_catalog:
If we actually do the required server work to make key_consistent viable and there is a notable performance hit, it still might be preferable turning it on in (some/all) testing. |
| Comment by Susan LoVerso [ 19/Aug/19 ] |
|
The checks for key_consistent are a lot more involved and will likely have a performance impact. The code for always or never is code we're already executing every time we commit (checking if a bit is set). |
| Comment by Daniel Gottlieb (Inactive) [ 19/Aug/19 ] |
|
Using assert=(commit_timestamp=key_consistent) is still the long-term goal, but that depends on PM-253 being completed. |
| Comment by Susan LoVerso [ 19/Aug/19 ] |
|
I'm late to this party, but would setting the assert=(commit_timestamp=always) on this table find this for you? (Or durable_timestamp=always if that is a better option.) Setting that should not really have any impact on performance. |
| Comment by Eric Milkie [ 05/Aug/19 ] |
|
I believe we might only do untimestamped writes to the catalog at startup, so perhaps there's a way to disallow them at other times without a performance hit. |