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

Enable lock-free reads with multi-document transactions

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • None
    • None
    • None
    • Storage Execution

    Description

      In theory, this should not be too difficult, but would take some work.

      Multi-document transactions save the RecoveryUnit (and thus snapshot) and locks held (LockerImpl) across operations/commands. Lock-free reads store the CollectionCatalog on the opCtx, so any new collections accessed can be from the same point-in-time view of the catalog: we would need to save this for the multi-doc transaction like the RecoveryUnit and LockerImpl is saved today.

      The part I'm unfamiliar with is how storage snapshots are handled in multi-document transactions, whether they can ever be reset. If snapshot resets happen, then that would make it a little trickier to handle a stored CollectionCatalog – the CollectionCatalog would need refreshing, too, to maintain the same catalog view in-memory and on-disk.

      Attachments

        Activity

          People

            backlog-server-execution Backlog - Storage Execution Team
            dianna.hohensee@mongodb.com Dianna Hohensee (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated: