Predicate Pushdown

Predicate pushdown is a query optimization that moves filter conditions as close to the storage layer as possible, so that data is filtered out before it is read or processed rather than after. Less data moves, so queries run faster.

Filtering before reading

A predicate is a filter condition, like "where temperature greater than 100". Naively, an engine could read all the data and then apply the filter. Predicate pushdown does better: it pushes that filter down to the storage layer, so rows that cannot match are never read in the first place.

With columnar formats like Parquet, this is especially powerful. Parquet files store metadata about the range of values in each chunk, so the engine can skip whole chunks that cannot contain matching rows. Combined with partition pruning, it means a query touches only the data it truly needs.

The result is that well-designed analytical queries read a tiny fraction of the total dataset.

How Arc handles Predicate Pushdown

Arc relies on Parquet metadata and its query engine to push filters down to the storage layer, skipping chunks that cannot match. Together with time partitioning, this keeps scans small and queries fast.

Arc is a high-performance columnar database. Open Parquet on storage you own, single Go binary, production-ready in 30 seconds.