Package org.apache.drill.exec.work.foreman.rm
package org.apache.drill.exec.work.foreman.rm
Provides resource management and queuing support for the Drill foreman.
The resource manager tracks total resources available to Drill. Several
implementations are available: a default implementation for systems without
queueing and an access-controlled (AC) version for systems with queues.
Each resource manager provides a per-query manager that is responsible for queuing the query (if needed) and memory allocation to the query based on query characteristics and memory assigned to the query.
Provides two different queue implementations. A distributed ZooKeeper queue and a local queue useful for embedded Drillbits (and for testing.)
-
ClassDescriptionAbstract base class for a resource manager.Represents a default resource manager for clusters that do not provide query queues.Distributed query queue which uses a Zookeeper distributed semaphore to control queuing across the cluster.Exposes a snapshot of internal state information for use in status reporting, such as in the UI.Wrapper around the default and/or distributed resource managers to allow dynamically enabling and disabling queueing.Query queue to be used in an embedded Drillbit.Interface which defines a queue implementation for query queues.Exception thrown for all non-timeout error conditions.The opaque lease returned once a query is admitted for execution.Exception thrown if a query exceeds the configured wait time in the query queue.Manages resources for an individual query in conjunction with the global
ResourceManager
.Extends aQueryResourceAllocator
to provide queueing support.Drillbit-wide resource manager shared by all queries.Builds the proper resource manager and queue implementation for the configured system options.Global resource manager that provides basic admission control (AC) via a configured queue: either the Zookeeper-based distributed queue or the in-process embedded Drillbit queue.Per-query resource manager.Searches a fragment operator tree to find buffered within that fragment.