Massively Parallel Processing (MPP)
Massively Parallel Processing (MPP) is a database architecture in which many independent nodes, each with their own CPU, memory, and storage, cooperate to execute a single query in parallel across a cluster.
Overview
MPP systems — like Teradata, Amazon Redshift, or Google BigQuery — take a "shared-nothing" approach: a query is broken into fragments and distributed across many worker nodes, each processing its own local slice of the data (often a partition or shard) independently, before results are combined. This lets a single query scale out across dozens or hundreds of machines, which is valuable for datasets and workloads that outgrow what any single machine can process.
Shared-Nothing Architecture
In a shared-nothing MPP design, data is partitioned across nodes ahead of time, and each node's compute only ever touches its own local data and storage. Coordinating nodes handle distributing query fragments and merging partial results (for example, combining partial aggregates from each node into a final answer). This architecture trades added network and coordination overhead for the ability to scale query capacity by adding more nodes.
MPP vs. Single-Node Parallelism
MPP parallelizes a query across machines. This is a different axis from parallelizing a query across cores within one machine, which is what a single-node engine with a multi-threaded, vectorized execution engine does.
DuckDB's Model
DuckDB is not an MPP system. It's an in-process, single-node analytical engine that parallelizes a query across the CPU cores available on the machine it's running on, using morsel-driven parallelism rather than distributing work across a cluster. This is a deliberate design choice: DuckDB targets the workloads — often up to hundreds of gigabytes or a few terabytes — that fit comfortably on a single modern machine, without the operational overhead of managing an MPP cluster. MotherDuck builds on DuckDB in the cloud and can run many independent DuckDB instances, and its hybrid execution model can split parts of a single query between a local DuckDB process and a cloud-hosted one — but that's a different mechanism from classic MPP shared-nothing execution of one query across many worker nodes.
Related terms
Amazon Redshift is AWS's cloud data warehouse, using massively parallel processing (MPP) to run analytical SQL over large datasets, available as provisioned clusters or serverless.
query engine →A query engine parses, optimizes, and executes SQL queries against data sources. Learn its core architecture, how it differs from a database, and see examples like DuckDB and Presto.
Vectorized execution →Vectorized execution is a query processing model where each operator processes a batch (a "vector") of values at once, instead of one row at a time, to reduce interpretation overhead and better use modern CPUs.
Dask →Dask is a Python library for parallel and distributed computing that scales pandas-like DataFrame, NumPy-like array, and general task-graph workloads across multiple cores or a cluster.
Apache Hadoop →Apache Hadoop is an open-source framework for distributed storage and processing of very large datasets across clusters of commodity servers, built around HDFS for storage and MapReduce (or later, YARN-managed engines) for computation.
Throughput →Throughput is the amount of work a system completes per unit of time — such as queries per second, rows processed per second, or requests handled per minute — measuring capacity rather than the speed of any single operation.
FAQS
No. DuckDB parallelizes queries across the CPU cores of a single machine rather than distributing execution across a cluster of nodes, which is what defines an MPP architecture.
MPP systems can scale query capacity by adding nodes, but they pay for it with added network and coordination overhead between nodes, plus the operational complexity of running and tuning a distributed cluster.
