[SERVER-63308] Accommodate WT-8601 Created: 04/Feb/22  Updated: 29/Oct/23  Resolved: 08/Feb/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 5.3.0

Type: Task Priority: Major - P3
Reporter: Daniel Gottlieb (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:
Depends
is depended on by WT-8601 Timestamps do not work with logged ta... Closed
Related
is related to SERVER-60037 Enable the ordered timestamp assertio... Closed
Backwards Compatibility: Fully Compatible
Sprint: Execution Team 2022-02-21
Participants:

 Description   

WT-8601 fixes a WT bug where timestamped writes to logged tables (potentially) do not provide repeatable reads across a restart. This is because the WT log does not preserve timestamp information, thus writes recovered from the log can be read by a reader with any read_timestamp input.

MDB did rely on using read_timestamp for the oplog, but not in a way where the WT bug could manifest (anything the journal recovers is either rewritten by MDB or no longer a hole where the read_timestamp is meaningful).

WT's change for 8601 isn't to fix the bug per-se, but rather to drop timestamp information completely on writes to logged tables. Thus the behavior is consistent and an application can never successfully rely on it existing.

This ticket is to transform MDBs usage of read_timestamp on the oplog into the server itself.



 Comments   
Comment by Githook User [ 08/Feb/22 ]

Author:

{'name': 'Daniel Gottlieb', 'email': 'daniel.gottlieb@mongodb.com', 'username': 'dgottlieb'}

Message: SERVER-63308: Accomodate WT-8601.

Move read timestamp visibility against the oplog into MongoDB. WiredTiger
historically loses timestamp information across restarts on logged tables. MDB
does rely on read_timestamps for visibility against the oplog in some
circumstances. While case analysis supports that the WT bug does not manifest
in MDB, WT-8601 fully removes timestamps from `WT_UPDATE`s in logged tables.

In MDB, the keys for oplog documents are the object's timestamp. MDB will
instead use that value to filter an oplog entry's visibilty.
Branch: master
https://github.com/mongodb/mongo/commit/df441f20aab3ec13d30ab157d5761d419edc2051

Generated at Thu Feb 08 05:57:26 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.