Interface QueryResourceAllocator

All Known Subinterfaces:
QueryResourceManager
All Known Implementing Classes:
DefaultResourceManager.DefaultQueryResourceManager, DefaultResourceManager.DefaultResourceAllocator, ThrottledResourceManager.QueuedQueryResourceManager, ThrottledResourceManager.QueuedResourceAllocator

public interface QueryResourceAllocator
Manages resources for an individual query in conjunction with the global ResourceManager. Handles memory and CPU allocation. Instances of this class handle query planning and are used when the client wants to plan the query, but not execute it. An implementation of QueryResourceManager is used to both plan the query and queue it for execution.

This interface allows a variety of resource management strategies to exist for different purposes.

The methods here assume external synchronization: a single query calls the methods at known times; there are no concurrent calls.

  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Make any needed adjustments to the query plan before parallelization.
    void
    Provide the manager with the physical plan and node assignments for the query to be run.
  • Method Details

    • visitAbstractPlan

      void visitAbstractPlan(PhysicalPlan plan)
      Make any needed adjustments to the query plan before parallelization.
      Parameters:
      plan - physical plan
    • visitPhysicalPlan

      void visitPhysicalPlan(QueryWorkUnit work)
      Provide the manager with the physical plan and node assignments for the query to be run. This class will plan memory for the query.
      Parameters:
      work - query work unit