Table of Contents
Fetching ...

When View- and Conflict-Robustness Coincide for Multiversion Concurrency Control

Brecht Vandevoort, Bas Ketsman, Frank Neven

TL;DR

A sufficient condition for isolation levels guaranteeing that conflict- and view-robustness coincide is provided and it is shown that this condition is satisfied by the isolation levels occurring in Postgres and Oracle.

Abstract

A DBMS allows trading consistency for efficiency through the allocation of isolation levels that are strictly weaker than serializability. The robustness problem asks whether, for a given set of transactions and a given allocation of isolation levels, every possible interleaved execution of those transactions that is allowed under the provided allocation, is always safe. In the literature, safe is interpreted as conflict-serializable (to which we refer here as conflict-robustness). In this paper, we study the view-robustness problem, interpreting safe as view-serializable. View-serializability is a more permissive notion that allows for a greater number of schedules to be serializable and aligns more closely with the intuitive understanding of what it means for a database to be consistent. However, view-serializability is more complex to analyze (e.g., conflict-serializability can be decided in polynomial time whereas deciding view-serializability is NP-complete). While conflict-robustness implies view-robustness, the converse does not hold in general. In this paper, we provide a sufficient condition for isolation levels guaranteeing that conflict- and view-robustness coincide and show that this condition is satisfied by the isolation levels occurring in Postgres and Oracle: read committed (RC), snapshot isolation (SI) and serializable snapshot isolation (SSI). It hence follows that for these systems, widening from conflict- to view-serializability does not allow for more sets of transactions to become robust. Interestingly, the complexity of deciding serializability within these isolation levels is still quite different. Indeed, deciding conflict-serializability for schedules allowed under RC and SI remains in polynomial time, while we show that deciding view-serializability within these isolation levels remains NP-complete.

When View- and Conflict-Robustness Coincide for Multiversion Concurrency Control

TL;DR

A sufficient condition for isolation levels guaranteeing that conflict- and view-robustness coincide is provided and it is shown that this condition is satisfied by the isolation levels occurring in Postgres and Oracle.

Abstract

A DBMS allows trading consistency for efficiency through the allocation of isolation levels that are strictly weaker than serializability. The robustness problem asks whether, for a given set of transactions and a given allocation of isolation levels, every possible interleaved execution of those transactions that is allowed under the provided allocation, is always safe. In the literature, safe is interpreted as conflict-serializable (to which we refer here as conflict-robustness). In this paper, we study the view-robustness problem, interpreting safe as view-serializable. View-serializability is a more permissive notion that allows for a greater number of schedules to be serializable and aligns more closely with the intuitive understanding of what it means for a database to be consistent. However, view-serializability is more complex to analyze (e.g., conflict-serializability can be decided in polynomial time whereas deciding view-serializability is NP-complete). While conflict-robustness implies view-robustness, the converse does not hold in general. In this paper, we provide a sufficient condition for isolation levels guaranteeing that conflict- and view-robustness coincide and show that this condition is satisfied by the isolation levels occurring in Postgres and Oracle: read committed (RC), snapshot isolation (SI) and serializable snapshot isolation (SSI). It hence follows that for these systems, widening from conflict- to view-serializability does not allow for more sets of transactions to become robust. Interestingly, the complexity of deciding serializability within these isolation levels is still quite different. Indeed, deciding conflict-serializability for schedules allowed under RC and SI remains in polynomial time, while we show that deciding view-serializability within these isolation levels remains NP-complete.
Paper Structure (23 sections, 11 theorems, 2 equations, 5 figures)

This paper contains 23 sections, 11 theorems, 2 equations, 5 figures.

Key Result

theorem 1

A schedule $s$ is conflict-serializable iff $SeG(s)$ is acyclic.

Figures (5)

  • Figure 1: A schedule $s_1$ with $v_{s_1}$ (single lines) and $\ll_{s_1}$ (double lines) represented through arrows.
  • Figure 2: A schedule $s_2$ with $v_{s_2}$ (single lines) and $\ll_{s_2}$ (double lines) represented through arrows.
  • Figure 3: Serialization graphs $SeG(s_1)$(left) and $SeG(s_2)$(right) for the schedules $s_1$ and $s_2$ presented in Figure \ref{['fig:ex:schedule']} and Figure \ref{['fig:ex:viewser']}.
  • Figure 4: A schedule $s$ with $v_{s}$ (single lines) and $\ll_{s}$ (double lines) represented through arrows. The three transactions form a dangerous structure $T_{1} \rightarrow T_{2} \rightarrow T_{3}$.
  • Figure 5: A schedule $s_4$ with $v_{s_4}$ (single lines) and $\ll_{s_4}$ (double lines) represented through arrows.

Theorems & Definitions (18)

  • definition 1
  • theorem 1: implied by DBLP:conf/icde/AdyaLO00
  • definition 2
  • theorem 2: DBLP:books/cs/Papadimitriou86
  • theorem 3
  • definition 3
  • definition 4
  • definition 5: Robustness
  • definition 6
  • proposition 1
  • ...and 8 more