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

RSLocalClient should not manually implement readConcern

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Storage Execution
    • ALL
    • Execution NAMR Team 2023-09-18

      The RSLocalClient::queryOnce manually implements majority read concern for its callers. It also does some complex work of stashing the previous ReadSource so that it doesn't affect the caller's RecoveryUnit state.

      We should really be doing this work inside waitForReadConcern() and have the caller pass a "readConcern" to the FindCommandRequest in the DBDirectClient. This should work correctly.

      Ideally inside waitForReadConcern(), if we're in a DirectClient call, we would assert that the caller does not have an active RecoveryUnit then use the existing code to set the ReadSource on the RecoveryUnit based on the requested readConcern. We may need to implement something inside DBDirectClient to push our ReadSource onto the stack somehow so that when we're done with the DBDirectClient call, we reset the original RecoveryUnit state.

            Assignee:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            louis.williams@mongodb.com Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated: