We have several tricks for efficiently checking the consistency of transactions
over primary keys, but what are we to do about predicates? Database histories
with predicates are particularly tricky because their correctness hinges on the
entire universe of objects, not just those objects which matched the predicate.
When a query for all even objects returns the empty set, is that because it
selected the unborn version of x, or one in which x = 1? There are many
possibilities, each resulting in a different dependency graph. The
proliferation of these graphs may be intractable, unless we find a way to prove
exactly which invisible version was selected.
If you’d like to talk about this problem, come to Bugbash
2026 on April 22-24th,
in Washington, DC. Jepsen’s seminar, “Paranormal forms”, will introduce the
problem of predicate checking, suggest a few possibilities, then open the floor
to discussion.