Create a Google-Benchmark for exec::agg::buildPipeline()

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Minor - P4
    • None
    • Affects Version/s: None
    • Component/s: None
    • Query Execution, Query Optimization
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      In SPM-4106 we've separated DocumentSource code into QO and QE parts and created exec::agg::buildPipeline() function which takes a QO pipeline and creates the corresponding QE pipeline stage-by-stage. Creating QE stages from QO stages adds additional work/cost for memory allocation, parameter copying, reference incrementing for shared objects, etc.

      We should create a google benchmark that measures exec::agg::buildPipeline() time (without executing the resulting QE pipelines) for large and complex pipelines (many stages + many sub-pipelines), preferably testing all possible stages. Creating such pipelines is a separate challenge and we might want to borrow / benefit from other ongoing testing projects concerning with random generation of valid aggregation pipelines.

      Unfortunately, we did not manage to create this Google-Benchmark at the beginning of SPM-4106 to observe the actual performance impact of this project, however, creating this benchmark after the project will still help to estimate the extra work and create a baseline for the future modifications.

            Assignee:
            Unassigned
            Reporter:
            Romans Kasperovics
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: