Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-13213

Investigate changes in SERVER-44174: $push and $addToSet should restrict memory usage

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.3.1, 4.0.14, 3.6.17, 4.2.3
    • Component/s: manual, Server
    • Labels:
      None

      Description

      Description

      Downstream Change Summary

      In this ticket we added a 100MB memory limit on accumulators $push and $addToSet. Before this, these accumulators could use unbounded memory in rare cases. The one we noticed was when everything had been spilled to disk, but upon merging the separate files spilled to disk we accumulated more than 100MB worth of data in the array. These accumulators cannot spill to disk, so pipelines which use more than 100MB will fail.

      Description of Linked Ticket

      SERVER-43944 describes a more pervasive problem, but it's probably the case that $push and $addToSet are the worst offenders and not too difficult to fix. Let's start with those two and leave SERVER-43944 to track the more general problem which is likely more complex.

      Scope of changes

      Impact to Other Docs

      MVP (Work and Date)

      Resources (Scope or Design Docs, Invision, etc.)

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Days since reply:
                  7 weeks, 4 days ago
                  Date of 1st Reply: