[SERVER-83073] Clarify what lastApplied, lastDurable, etc. mean on primary and secondaries Created: 09/Nov/23  Updated: 10/Nov/23

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

Type: Task Priority: Major - P3
Reporter: Vishnu Kaushik Assignee: Backlog - Replication Team
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Replication
Participants:

 Description   

The definitions in the architecture guide do not go into detail regarding no-holes, etc. for these definitions. For example:
lastApplied: In-memory record of the latest applied oplog entry optime. On primaries, it may lag behind the optime of the newest oplog entry that is visible in the storage engine because it is updated after a storage transaction commits. On secondaries, lastApplied is only updated at the completion of an oplog batch

The above definition doesn't make it clear what happens on the primary when there is an oplog hole. Is the lastAppliedOpTime allowed to advance past the oplog hole? (Yes)

It is also worth spelling out the relationship between lastApplied and lastDurable, for example, lastDurable <= lastApplied, and why that's the case.

I think it's OK to be more verbose here and would even recommend having examples.


Generated at Thu Feb 08 06:51:10 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.