Details

      Description

      Once we have the reservation infrastructure available, we want to make use of it by claiming memory reservations upfront in the Prepare() phase of the query.

      • Compute minimum buffer pool memory requirements for each operator, and compute the peak requirement (execution of some nodes does not overlap, so this depends on the plan shape).
      • Claim those reservations for the query at start of Prepare(), so we can fail fast if the memory isn't available
      • Distribute the reservations to the exec nodes.

      For the initial work, we can assume conservatively that all fragments run on all daemons, so that we don't need scheduling information to compute the estimates. This may over-reserve memory in some cases, since some fragments are unpartitioned or have fewer scan ranges than daemons.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                tarmstrong Tim Armstrong
                Reporter:
                tarmstrong Tim Armstrong
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: