Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-67857

Manage last applied timestamp outside of the storage engine

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Storage Execution

      The timestamp to read at when using the kLastApplied read source is maintained internally in the storage engine in the component called the snapshot manager. This timestamp doesn't really have anything to do with the storage engine and is rather a replication related construct about how we can safely read in the repl SECONDARY state concurrently with oplog batch application.

      Logically, for the storage engine, this could be maintained outside and passed in similarly to how the kProvided read source works. This could make it easier to avoid bugs where a timestamp needs to be checked against some conditions before we open a storage snapshot with it.

      Some special handling needs to occur as the query yield code needs to advance the timestamp for the kLastApplied read source, something that is not done for kProvided.

            Assignee:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            henrik.edin@mongodb.com Henrik Edin
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: