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

Allow aggregations with $out to be run in a transaction when the "mode" does not perform DDL operations

    • Query Optimization

      With SERVER-35897 complete, we have the ability to perform a $out in a way that performs no catalog changes (i.e. no collection drops or renames). In theory, this should allow us to allow an aggregation $out in a transaction as long as we run in one of those modes.

      This ticket will track work to simply remove the prohibition of $out in a transaction as long as the "mode" is compatible. We'll also write tests that exercise this behavior as appropriate.

      (Currently, we plan to use the DBDirectClient and the ClusterWriter to perform writes inside of $out. We will have to investigate whether this will work in a transaction. One concern is the risk of a deadlock on checking out the session or stashed transaction resources, especially with the DBDirectClient. We may have to either unstash resources or refactor the code in a way that does not depend on the DBDirectClient.)

            Assignee:
            backlog-query-optimization [DO NOT USE] Backlog - Query Optimization
            Reporter:
            kyle.suarez@mongodb.com Kyle Suarez
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: