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

Prohibit $out with readConcern level "linearizable"

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 4.1.3
    • Aggregation Framework
    • Minor Change
    • Query 2018-09-24

    Description

      In MongoDB 4.0 and earlier, we explicitly ban readConcern level "majority" for aggregation pipelines containing $out.

          auto readConcernLevel = repl::ReadConcernArgs::get(expCtx->opCtx).getLevel();
          uassert(ErrorCodes::InvalidOptions,
                  "$out cannot be used with a 'majority' read concern level",
                  readConcernLevel != repl::ReadConcernLevel::kMajorityReadConcern);
      

      However, it does allow readConcern level "linearizable". As linearizability is a property of a single document, we will ban a $out aggregation with readConcern level "linearizable", as it isn't clear what semantics will be offered to our users.

      This is a backwards-breaking change in 4.2; however, we will allow support for readConcern level "majority" in $out pipelines in SERVER-20445.

      Attachments

        Issue Links

          Activity

            People

              kyle.suarez@mongodb.com Kyle Suarez
              kyle.suarez@mongodb.com Kyle Suarez
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: