Skip to content
About
Main content
Recurring principle

Which way the error points

What it is

Why the approximation is safe here. A Bloom filter's false positives let a few non-matching rows through. But an exact join follows the filter, so those rows are removed later. False positives cost work, not correctness. This is the general safe pattern: an approximate pre-filter in front of an exact operator gives an exact answer at reduced cost. Compare approximate aggregation in Aggregation algorithms: spending the bound before data moves, where the approximation is in the answer itself. Same mathematics, very different risk.

From Query Processing › Distributed joins and filters

Data skipping has a "safe direction" (it may read a block it did not need, never skip one it did), and that is the sharpest contrast with the planning articles. Cardinality estimation had no safe side, so its errors were unbounded. Data skipping has a safe side, so every engine adopts it aggressively. Nobody has ever been paged because a zone map (a stored min/max summary of a block) was too conservative.

From Query Planning & Optimization › Changing how much data exists

Each stage is a cheaper test than the next. Each stage has one-sided error: it can only produce false positives ("maybe there") and never false negatives ("not there, but you said yes" is allowed; "there, but you said no" is not). Each stage is ordered by cost per unit of selectivity (how much data it lets you skip per unit of effort).

From Core Data Structures › Compositions

Where it appears

In 14 mechanisms. Each says what the mechanism is about, then how this principle shows up there, in its own words.

Made on the same pages most often.