[CSHARP-3320] LINQ3: Move GroupBy accumulators back to the $group stage Created: 11/Jan/21  Updated: 28/Oct/23  Resolved: 04/Oct/21

Status: Closed
Project: C# Driver
Component/s: LINQ3
Affects Version/s: None
Fix Version/s: 2.14.0

Type: Task Priority: Major - P3
Reporter: Robert Stam Assignee: Robert Stam
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on CSHARP-3778 LINQ3: Implement AstNodeVisitor Closed
depends on CSHARP-3782 LINQ3: Implement AstNodeReplacer Closed
depends on CSHARP-3829 LINQ3: Rename AstVar to AstVarBinding Closed
depends on CSHARP-3830 LINQ3: Split AstFieldExpression into ... Closed
depends on CSHARP-3832 LINQ3: Refactor SymbolTable Closed
depends on CSHARP-3833 LINQ3: Refactor TranslationContext to... Closed
depends on CSHARP-3834 LINQ3: Add First and Last operators t... Closed
depends on CSHARP-3835 LINQ3: Change type of As property of ... Closed
depends on CSHARP-3836 LINQ3: Add the virtual CanBeRenderedA... Closed
is depended on by CSHARP-3590 LINQ3: Implement AstPipelineOptimizer Closed
Related
related to CSHARP-3327 LINQ3: Translate GroupBy to $group stage Closed
Epic Link: CSHARP-2608

 Description   

A simple implementation of some of the `GroupBy` overloads requires holding all documents from each group in a single intermediate document, which requires more memory than necessary (and might even exceed the maximum size of a document that can pass from one pipeline stage to the next). Often these pipelines can be rewritten to move the accumulators back to the original `$group` stage. This will most likely be best implemented as a post-processing step of the AST representation of the pipeline (i.e. the already translated LINQ query).


Generated at Wed Feb 07 21:45:00 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.