Poisson Sampling over Acyclic Joins
We introduce the problem of Poisson sampling over joins: compute a sample of the result of a join query by conceptually performing a Bernoulli trial for each join tuple, using a non-uniform and tuple-specific probability. We propose an algorithm for Poisson sampling over acyclic joins that is nearly instance-optimal, running in time 𝑄 (|db| + k łog |db|) where |db| is the size of the input database, and k is the size of the resulting sample. Our algorithm hinges on two building blocks: (1) The construction of a random-access index that allows, given a number i , to randomly access the i -th join tuple without fully materializing the (possibly large) join result; (2) The probing of this index to construct the result sample. We study the engineering trade-offs required to make both components practical, focusing on their implementation in column stores, and identify best-performing alternatives for both. Our experiments show that this pair of alternatives significantly outperforms the repeated-Bernoulli-trial algorithm for Poisson sampling while also demonstrating that the random-access index by itself can be used to competively implement Yannakakis' acyclic join processing algorithm when no sampling is required. This shows that, as far a query engine design is concerned, it is possible to adopt a common basis for both classical acyclic join processing and Poisson sampling, both without regret compared to classical join and sampling algorithms.
Authors
- Frank Neven (ORCID: https://orcid.org/0000-0002-7143-1903)
- Stijn Vansummeren
- Lorrens Pantelis
- Liese BEKKERS
Institutions
- Hasselt University (BE)
Publication Details
- Journal
- Proceedings of the ACM on Management of Data
- Published
- 2026-05-18
- DOI
- https://doi.org/10.1145/3802101
- Primary Topic
- Advanced Database Systems and Queries
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- Fonds Wetenschappelijk Onderzoek
- Universiteit Hasselt
- Vlaamse regering