Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sql: pool some allocations during flow setup #42809

Merged
merged 2 commits into from
Nov 27, 2019

Commits on Nov 26, 2019

  1. flowinfra: slightly tweak the setup of processors in the flow

    Previously, the last processor ('headProc') would be removed from
    f.processors before flow.startInternal to be run in the same goroutine
    as the one that is doing the setup. However, this was problematic
    because if that processor implements 'Releasable' interface, it will not
    be returned to the pool on the flow clean up. Now this is fixed.
    
    Release note: None
    yuzefovich committed Nov 26, 2019
    Configuration menu
    Copy the full SHA
    a94720d View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2019

  1. sql: pool flow allocations

    Previously, new structs for rowBasedFlow and vectorizedFlow would be
    allocated upon creation. This commit creates pools for both of them.
    flowinfra.Releasable interface is moved into execinfra package because
    now components from rowflow, rowexec, and colflow packages implement
    that.
    
    In order to actually be able to release the flow structs, I needed to
    create separate Cleanup methods (which still share most of the logic)
    which allows for removal of vectorized memory monitoring logic from
    the shared FlowCtx.
    
    Release note: None
    yuzefovich committed Nov 27, 2019
    Configuration menu
    Copy the full SHA
    834e866 View commit details
    Browse the repository at this point in the history