- Connector API
- The plugin contract by which Presto reaches an external data store, composed of a Metadata API, Data Location API, Data Source API and Data Sink API. It is designed so that connector implementations can stay performant inside a physically distributed execution engine.
- Split
- An opaque handle to an addressable chunk of data in an external storage system, whose contents are defined by the connector - a file path and offsets for a filesystem, or a key, value format and host list for Redis. Splits are the unit assigned to leaf-stage tasks and the unit of scheduling on a worker thread.
- Stage and task
- A stage is a part of the plan that can be executed in parallel across workers; every stage is distributed as one or more tasks, each running the same computation over different input data. Leaf stages read from connectors, intermediate stages consume only results from other stages.
- Pipeline and driver loop
- A pipeline is a chain of operators inside a task, such as the build pipeline and probe pipeline of a hash join, joined to other pipelines by a local in-memory shuffle. The driver loop executes a split by repeatedly moving data between every pair of operators that can make progress, until the quanta expires or nothing can advance.
- Page and Block
- A page is the unit of data the driver loop moves between operators: a columnar encoding of a sequence of rows, made of one Block per column with a flat in-memory representation. Blocks may be plain, dictionary-encoded or run-length encoded, and flatness matters because pointer chasing, unboxing and virtual calls dominate tight loops.
- Data layout
- A physical description of a table that a connector exposes to the optimizer - locations plus partitioning, sorting, grouping and index properties. A connector may return several layouts for one table so the optimizer can pick the one that best serves the query, for example an index on the predicate columns.
- User memory versus system memory
- User memory is allocation a user can reason about from basic knowledge of the query and input, such as an aggregation proportional to its cardinality; system memory is a byproduct of implementation, such as shuffle buffers, and may be uncorrelated with query shape. Presto sets separate limits on user memory and on total user-plus-system memory.
- Reserved pool
- A per-node subdivision of query memory used to unblock a cluster that has run out of general pool memory without spilling. The largest query on the starved node is promoted into the reserved pool on all workers, and only one query cluster-wide may occupy it so that different workers cannot stall different queries into deadlock.
- Raptor
- A shared-nothing storage engine written specifically for Presto that keeps metadata in MySQL and data as ORC files on local flash disks, supporting sorting, bucketing and temporal columns. It backs the A/B Testing use case, where predictable high-throughput low-latency reads matter more than querying data in place.