the complexity of testing predicate locks
The problem of testing predicates for satisfiability arises in several aspects of database systems such as the use of predicate locks in concurrency control [7]. Such problems are NP-complete even for "simple predicates", i.e. predicates consisting of Boolean combinations of comparisons between a field of a tuple and a constant. However, when the relations referred to by the predicates are of fixed degree, there is an algorithm whose runtime is bounded by a polynomial in the length of the predicate. This is true not only for "simple predicates" but also for predicates containing comparisons between a field and another field, possibly offset by a constant. The proofs involve showing that if a predicate is satisfiable, then it is satisfiable by a tuple whose field values are related to constants occurring in the predicate.
complexity test satisfiability aspect database system use concurrency control algorithm runtime polynomial values completeness