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

Introduce majority committed point advancement notification mechanism

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.3.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Fully Compatible
    • QE 2022-10-17, QE 2022-10-31, QE 2022-11-14, QE 2022-11-28, QE 2022-12-12
    • 5

      While working on SERVER-66840 we discovered the issue with the test jstests/change_streams/only_wake_getmore_for_relevant_changes.js
       
      The issue is that it was agreed that change collections are majority committed by design. In this case the regular insert_listeners do not work with change collections as desired, as they wake the listeners based on local writes. This results in redundant wakes and no documents being returned to the client, as when local write is performed, the write is not guaranteed to be majority committed just yet.
      Oplog works around this issue by having extra signaling mechanism that wakes up upon timestamp advancement in oplog.
       
      The decided solution to this issue is to make tailable awaitable cursors on collections (not only change collection or oplog) that have read concern majority to wait on majority point advacement notification instead of waiting for the local writes provided by the capped notifier.

      louis.williams@mongodb.com has implemented a prototype to solve a similar problem https://evergreen.mongodb.com/filediff/62e15eaf7742ae1d62082175/?patch_number=0

            Assignee:
            denis.grebennicov@mongodb.com Denis Grebennicov
            Reporter:
            denis.grebennicov@mongodb.com Denis Grebennicov
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: