There are a number of timestamp usage assertion configurations that can be provided in the creation config of a table in WiredTiger.
This includes but might not be limited to:
- write_timestamp_usage
- assert=(write_timestamp=on)
- verbose=[write_timestamp]
Currently if the user wants to restrict their timestamps it appears they would need to specify all three, when two at max or perhaps even only one should be required. This is because the code in one of the two relevant functions "__txn_commit_timestamps_usage_check" checks to see if verbose logging in enabled prior to triggering the assertion.
The other relevant function is: __txn_commit_timestamps_assert which does some assertions but only appears to handle write_timestamp_usage=key_consistent and doesn't appear to handle the other cases for mixed_mode, ordered. Additionally this function is only called once per commit while the prior function is called per op.
We should investigate whether the two functions can be combined, and also investigate removing the verbose logging check so that assertions contained in __txn_commit_timestamps_usage_check are still valid without verbose logging being enabled.
- depends on
-
SERVER-63694 Accommodate WT-8170
- Closed
- is depended on by
-
WT-8749 turn key consistent checking on for MongoDB builds
- Closed
- is related to
-
SERVER-60037 Enable the ordered timestamp assertion in MongoDB
- Closed
-
WT-8691 Remove key_consistent timestamp usage flags
- Closed