Chopping transactions into pieces is good for performance but may lead to nonserializable executions. Many researchers have reacted to this fact by either inventing new concurrency-control mechanisms, weakening serializability, or both. We adopt a different approach. We assume a user who
—has access only to user-level tools such as (1) choosing isolation degrees 1ndash;4, (2) the ability to execute a portion of a transaction using multiversion read consistency, and (3) the ability to reorder the instructions in transaction programs; and
—knows the set of transactions that may run during a certain interval (users are likely to have such knowledge for on-line or real-time transactional applications).
Given this information, our algorithm finds the finest chopping of a set of transactions TranSet with the following property:
If the pieces of the chopping execute serializably, then TranSet executes serializably
. This permits users to obtain more concurrency while preserving correctness. Besides obtaining more intertransaction concurrency, chopping transactions in this way can enhance intratransaction parallelism.
The algorithm is inexpensive, running in
O(n×(e+m))
time, once conflicts are identified, using a naive implementation, where
n
is the number of concurrent transactions in the interval,
e
is the number of edges in the conflict graph among the transactions, and
m
is the maximum number of accesses of any transaction. This makes it feasible to add as a tuning knob to real systems.
The use of non-deterministic database languages is motivated using pragmatic and theoretical considerations. It is shown that non-determinism resolves some difficulties concerning the expressive power of deterministic languages: there are nondeterministic languages expressing low complexity classes of queries/updates, whereas no such deterministic languages exist.Various mechanisms yielding non-determinism are reviewed. The focus is on two closely related families of nondeterministic languages. The first consists of extensions of Datalog with negations in bodies and/or heads of rules, with non-deterministic fixpoint semantics. The second consists of non-deterministic extensions of first-order logic and fixpoint logics, using the witness operator. The ability of the various non-deterministic languages to express deterministic transformations is characterized. In particular, non-deterministic languages expressing exactly the queries/updates computable in polynomial time are exhibited, whereas it is conjectured that no analogous deterministic language exists. The connection between non-deterministic lan-'I.N.R.I.A.,
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.