[SERVER-52789] Create mechanism for pinning the oldest timestamp Created: 11/Nov/20  Updated: 29/Oct/23  Resolved: 17/Dec/20

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

Type: New Feature Priority: Major - P3
Reporter: Daniel Gottlieb (Inactive) Assignee: Daniel Gottlieb (Inactive)
Resolution: Fixed Votes: 0
Labels: PM-234-M3, PM-234-T-data-clone
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-53373 Have donor shards pin oldest_timestam... Closed
Backwards Compatibility: Fully Compatible
Sprint: Sharding 2020-12-28
Participants:

 Description   

Currently the oldest timestamp lags the stable timestamp by some window to allow for:

  • sharded transactions at snapshot isolation to target new shards that contain the necessary data.
  • replica set transactions that can query for data across different nodes in the replica set.

But there are other actors in the system that would like to read historical data. Two examples include (background) collection validation and resharding.

This ticket is to provide a mechanism where additional actors can request the oldest timestamp be pinned. Once pinned, an actor can choose to advance its request, or it can completely release its hold on the oldest timestamp.

The oldest timestamp would be calculated as the minimum of the default setting and all the requested pinned timestamps.

Additionally (but maybe for another ticket) there should be a way to ensure an oldest timestamp is pinned across a restart (perhaps not useful for background validation, but necessary for resharding). This presumably means that at startup, there's a startup recovery window/stage where these external actors can re-register an oldest timestamp request before the system kicks in and starts naturally advancing it. It may make sense though to spin off a different ticket to actually have resharding hook into this window.



 Comments   
Comment by Githook User [ 17/Dec/20 ]

Author:

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

Message: SERVER-52789: Add mechanism to allow pinning of the oldest timestamps.
Branch: master
https://github.com/mongodb/mongo/commit/537641adca3ef2134c11322637b6bc4723af7611

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