  The isolation level Multiversion Read Committed (RC), offered by many
database systems, is known to trade consistency for increased transaction
throughput. Sometimes, transaction workloads can be safely executed under RC
obtaining the perfect isolation of serializability at the lower cost of RC. To
identify such cases, we introduce an expressive model of transaction programs
to better reason about the serializability of transactional workloads. We
develop tractable algorithms to decide whether any possible schedule of a
workload executed under RC is serializable (referred to as the robustness
problem). Our approach yields robust subsets that are larger than those
identified by previous methods. We provide experimental evidence that workloads
that are robust against RC can be evaluated faster under RC compared to
stronger isolation levels. We discuss techniques for making workloads robust
against RC by promoting selective read operations to updates. Depending on the
scenario, the performance improvements can be considerable. Robustness testing
and safely executing transactions under the lower isolation level RC can
therefore provide a direct way to increase transaction throughput without
changing DBMS internals.
