Analyzing Snapshot Isolation

Similar documents
A Framework for Transactional Consistency Models with Atomic Visibility

Transaction Chopping for Parallel Snapshot Isolation

Concurrency Control Serializable Schedules and Locking Protocols

CSC 261/461 Database Systems Lecture 24

Lecture 21. Lecture 21: Concurrency & Locking

2. Correctness of Transactions: Serialization

A Framework for Transactional Consistency Models with Atomic Visibility

Transactional Information Systems:

Introduction to Data Management CSE 344

Transactions are Back but How Different They Are?

CSC 261/461 Database Systems Lecture 21 and 22. Spring 2017 MW 3:25 pm 4:40 pm January 18 May 3 Dewey 1101

CSE 444: Database Internals. Lectures Transactions

Introduction to Database Systems CSE 444

CSE 344 MARCH 5 TH TRANSACTIONS

Chapter S:V. V. Formal Properties of A*

Implementing Isolation

3. Concurrency Control for Transactions Part One

MY WEAK CONSISTENCY IS STRONG WHEN BAD THINGS DO NOT COME IN THREES ZECHAO SHANG JEFFREY XU YU

References. Transaction Management. Database Administration and Tuning 2012/2013. Chpt 14 Silberchatz Chpt 16 Raghu

Lecture 15: The subspace topology, Closed sets

CS322: Database Systems Transactions

Potential violations of Serializability: Example 1

Concurrency Control / Serializability Theory

Relations, Equivalence Relations, and Partial Orders

Slides for Faculty Oxford University Press All rights reserved.

9.5 Equivalence Relations

Page 1. CS194-3/CS16x Introduction to Systems. Lecture 8. Database concurrency control, Serializability, conflict serializability, 2PL and strict 2PL

Outline. Database Management and Tuning. Isolation Guarantees (SQL Standard) Undesirable Phenomena of Concurrent Transactions. Concurrency Tuning

6.033: Fault Tolerance: Isolation Lecture 17 Katrina LaCurts,

Outline. Database Tuning. Undesirable Phenomena of Concurrent Transactions. Isolation Guarantees (SQL Standard) Concurrency Tuning.

Disjoint- Access Parallelism: Impossibility, Possibility, and Cost of Transactional Memory Implementations

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Goal of Concurrency Control. Concurrency Control. Example. Solution 1. Solution 2. Solution 3

Declarative semantics for concurrency. 28 August 2017

Outline. Database Tuning. Undesirable Phenomena of Concurrent Transactions. Isolation Guarantees (SQL Standard) Concurrency Tuning.

Introduction to Database Systems CSE 444

Motivating Example. Motivating Example. Transaction ROLLBACK. Transactions. CSE 444: Database Internals

Intro to Transactions

CSE 444: Database Internals. Lectures 13 Transaction Schedules

Lock Granularity and Consistency Levels (Lecture 7, cs262a) Ali Ghodsi and Ion Stoica, UC Berkeley February 7, 2018

Definition: A context-free grammar (CFG) is a 4- tuple. variables = nonterminals, terminals, rules = productions,,

Last Class Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications

L i (A) = transaction T i acquires lock for element A. U i (A) = transaction T i releases lock for element A

COURSE 1. Database Management Systems

Concurrency. Consider two ATMs running in parallel. We need a concurrency manager. r1[x] x:=x-250 r2[x] x:=x-250 w[x] commit w[x] commit

Transaction in Distributed Databases

Antisymmetric Relations. Definition A relation R on A is said to be antisymmetric

殷亚凤. Consistency and Replication. Distributed Systems [7]

Comparing sizes of sets

3 No-Wait Job Shops with Variable Processing Times

Lecture 7: Transactions Concurrency Control

Distributed Systems. Lec 11: Consistency Models. Slide acks: Jinyang Li, Robert Morris

Database Management Systems Concurrency Control

arxiv: v8 [cs.dc] 29 Jul 2011

A CSP Search Algorithm with Reduced Branching Factor

Byzantine Consensus in Directed Graphs

Transactions. 1. Transactions. Goals for this lecture. Today s Lecture

Transaction Management. Chapter 14

How Consistent is your Cloud Application?

Transaction Management: Concurrency Control

This talk is about. Data consistency in 3D. Geo-replicated database q: Queue c: Counter { q c } Shared database q: Queue c: Counter { q c }

Graphs and trees come up everywhere. We can view the internet as a graph (in many ways) Web search views web pages as a graph

Concurrency Control 1

Topology and Topological Spaces

Foundations of Computer Science Spring Mathematical Preliminaries

Announcements. Transaction. Motivating Example. Motivating Example. Transactions. CSE 444: Database Internals

Concurrency control 12/1/17

Achieving Robustness in Distributed Database Systems

CSE 344 MARCH 25 TH ISOLATION

Overview. Introduction to Transaction Management ACID. Transactions

Model Checking Transactional Memories

CSE 344 MARCH 21 ST TRANSACTIONS

arxiv:submit/ [math.co] 9 May 2011

Partitioning Complete Multipartite Graphs by Monochromatic Trees

Introduction to Data Management CSE 344

Discrete Mathematics. Kruskal, order, sorting, induction

TOPOLOGY, DR. BLOCK, FALL 2015, NOTES, PART 3.

CS 448 Database Systems. Serializability Theory 2. Serializability Theorem

Repairing Preference-Based Argumentation Frameworks

A Mechanism for Sequential Consistency in a Distributed Objects System

Transaction Models and Concurrency Control

Introduction to Data Management. Lecture #24 (Transactions)

Eventual Consistency Today: Limitations, Extensions and Beyond

Intro to Transaction Management

THREE LECTURES ON BASIC TOPOLOGY. 1. Basic notions.

Precisely Serializable Snapshot Isolation

Transaction Management using Causal Snapshot Isolation in Partially Replicated Databases. Technical Report

T ransaction Management 4/23/2018 1

Pessimistic v.s. Optimistic. Outline. Timestamps. Timestamps. Timestamps. CSE 444: Database Internals. Main invariant:

Recognizing Interval Bigraphs by Forbidden Patterns

Graphs. Part I: Basic algorithms. Laura Toma Algorithms (csci2200), Bowdoin College

Strongly connected: A directed graph is strongly connected if every pair of vertices are reachable from each other.

The alternator. Mohamed G. Gouda F. Furman Haddix

Announcements. Motivating Example. Transaction ROLLBACK. Motivating Example. CSE 444: Database Internals. Lab 2 extended until Monday

Introduction to Data Management CSE 344

Lecture 22 Tuesday, April 10

14.1 Concept: ACID properties. 14 Transactions: models Modeling Transactions. Modeling TAs. The Model. A transaction is. System point of view

Shannon capacity and related problems in Information Theory and Ramsey Theory

Transactional Information Systems:

Lecture 1. 1 Notation

Transcription:

Analyzing Snapshot Isolation Andrea Cerone Alexey Gotsman IMDEA Software Institute PODC 2016 presented by Dima Kuznetsov Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 1 / 78

Agenda 1 Introduction 2 Snapshot Isolation Definitions Dependency Graphs Characterization 3 Static Analysis Transaction Chopping Robustness Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 2 / 78

We focus on Snapshot Isolation presented in the last talk... same context of DBMS and transactional memory systems We won t focus on the replicated aspect of the data-bases, but rather on semantics of concurrent user sessions. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 3 / 78

DBMS typically offer various guarantees for transaction management Each mode exhibits different anomalies Stronger modes exhibit less anomalies at expense of performance Stronger guarantees incur more overhead on the DBMS side Less allowed behaviors more concurrent transactions expected to abort Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 4 / 78

From Wikipedia 1 : A transaction executing under snapshot isolation appears to operate on a personal snapshot of the database, taken at the start of the transaction. When the transaction concludes, it will successfully commit only if the values updated by the transaction have not been changed externally since the snapshot was taken. 1 https://en.wikipedia.org/wiki/snapshot_isolation#definition Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 5 / 78

We ll focus on strong session Snapshot Isolation: Transactions are grouped into sessions, a transaction s snapshot is expected to include all preceding transactions of the same session. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 6 / 78

Outline 1 Introduction 2 Snapshot Isolation Definitions Dependency Graphs Characterization 3 Static Analysis Transaction Chopping Robustness Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 7 / 78

We ll use a lot of notation similar to Daniel s talk two weeks ago Obj = {x, y,... } - objects in the data set Event = {e, f,... } - transaction events Op = {read(x, n), write(x, n) x Obj, n Z} op : Event Op Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 8 / 78

Definition A transaction T, S,... is a pair (E, po) where E Event is a finite, non-empty set of events and program-order po E E is a total order. Where... total order is a transitive and irreflexive relation that orders all pairs Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 9 / 78

Definition A history is a pair H = (T, SO) where T is a finite set of transactions with disjoint set of events and the session-order SO T T is a union of total orders defined on disjoint subsets of T, which correspond to transactions in different sessions. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 10 / 78

Definition An abstract execution is a tuple X = (T, SO, VIS, CO), where (T, SO) is a history and the visibility and commit order VIS, CO T T are such that VIS CO and CO is total. Assumptions: All transactions commit (aborted ones do not affect the history) All histories are finite (no infinite computations) Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 11 / 78

Some notation: We ll use (T, S) VIS and T VIS S interchangeably for VIS and other relations. For H = (T, SO) we will shorten (T, SO, VIS, CO) to (H, VIS, CO) For H = (T, SO) and other tuples, we ll use T H to denote that T is part of the tuple H Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 12 / 78

For the relations defined in abstract execution: T VIS S means that T is included in S s snapshot. T CO S means that T is committed before S. VIS CO makes sure that snapshots include only already committed transactions. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 13 / 78

We ll now define snapshot isolation and serializability in terms of consistency axioms: Definition Where... ExecSI = {X X INT EXT SESSION PREFIX NOCONFLICT} ExecSER = {X X INT EXT SESSION TOTALVIS} HistSI = {H VIS, CO : (H, VIS, CO) ExecSI} HistSER = {H VIS, CO : (H, VIS, CO) ExecSER} X PROP means that execution does not violate property PROP Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 14 / 78

Definition (Internal consistency) INT - ensures that a read event e on object x returns the same value a as the last write or read on x in the same transaction. (E, po) T. e E. x, n : Where... op(e) = read(x, n) {f op(f ) = _(x, _) f e} ( ) po op max po {f op (f ) = _ (x, _) f e} = _(x, n) max R (A) = {b b A : a = b (a, b) R} min R (A) = {a b A : a = b (a, b) R} po Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 15 / 78

Definition (External consistency) EXT - ensures that if T read(x, n) then the value is taken from the last visible transaction that wrote to x according to commit order. T T. x, n : Where... T read(x, n) max CO ( VIS 1 (T ) WriteTx x ) write(x, n) T read(x, n) if T reads from x and n is the value of x at the first read. T write(x, n) if T writes to x and n is the final value of x. R 1 (a) = {b (b, a) R} WriteTx x = {T T write(x, _)} Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 16 / 78

Definition (Session visibility) SESSION - requires a snapshot to include all preceding transactions of the same session. SO VIS Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 17 / 78

Example T 1 ordered after T 2 by SO (therefore by VIS and CO), T 2 must read 1 from x. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 18 / 78

Definition (Prefix) PREFIX - ensures that if snapshot taken by T includes S, then it includes all transactions committed before S as well. Where... CO; VIS VIS R 1 ; R 2 = {(a, b) c : (a, c) R 1 (c, b) R 2 } Stronger requirement than VIS transitivity we required from causal consistency and parallel snapshot isolation. VIS CO CO; VIS VIS VIS; VIS VIS Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 19 / 78

The long-fork anomaly is prevented by PREFIX axiom: Example Consider T 1 commits before T 2, then since T 4 s snapshot contains T 2 (due to VIS), it must include T 1 as well Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 20 / 78

Definition (No conflict check) NOCONFLICT - ensures that for any two transactions writing to the same object, one has to be aware of the other. T, S T. x, n. (T, S WriteTx x T S) ( ) T VIS S S VIS T Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 21 / 78

The lost-update anomaly is prevented by NOCONFLICT axiom: Example T 1 and T 2 concurrently increment acct object, but neither T 1 VIS T 1. nor T 2 VIS T 2 Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 22 / 78

Definition (Total visibility) TOTALVIS - requires total order on the visibility relation, giving us serializability of transactions. VIS = CO Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 23 / 78

The write-skew anomaly allowed by Snapshot Isolation is prevented by TOTALVIS axiom: Example With TOTALVIS, either T 1 or T 2 would have to be aware of the other, and we won t be able to read stale values. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 24 / 78

Outline 1 Introduction 2 Snapshot Isolation Definitions Dependency Graphs Characterization 3 Static Analysis Transaction Chopping Robustness Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 25 / 78

Our goal now is to characterize SI in terms of dependencies between transactions. Then we ll be able to decide whether SI allows a given history by looking for appropriate dependencies. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 26 / 78

Definition A dependency graph is a tuple G = (T, SO, WR, WW, RW ), where (T, SO) is a history and for each x Obj we define relations WR(x), WW (x), RW (x) that satisfy the following: WR(x): T, S.T WR(x) S n.t S T write(x, n) S read(x, n) S T.S read(x, _) T.T WR(x) S T, T, S T. ( T WR(x) S T WW (x) is a total order over WriteTx x. WR(x) S ) T = T RW (x) is derived from WR(x) and WW (x) such that RW (x) T S T S T.T WR(x) T T WW (x) S We ll use WW to denote x Obj WW (x) for WW and the other two relations. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 27 / 78

Informally, T WR(x) S means that S reads T s write to x. We ll call an edge in WR a read dependency T T WW (x) S means that S overwrites T s write to x. We ll call an edge in WW a write dependency RW (x) S means that S overwrites the write to x read by T. We ll call an edge in RW an anti dependency Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 28 / 78

Example WR(acct) T 3 reads acct from T 2 s write T 2 T 3 WW (acct) T 2 overwrites acct written in T 1 T 1 T 2 Both T 1 and T 2 overwrite acct s initial value read by both, RW (acct) RW (acct) T 1 T 2 and T 2 T 1. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 29 / 78

Definition Consider execution X = (T, SO, VIS, CO), for x Obj we define relations WR X, WW X, RW X that satisfy the following: T WR X (x) S S read(x, n) T = max CO ( VIS 1 (S) WriteTx x ) T WW X (x) S T CO S T, S WriteTx x T RW X (x) S T S T.T WR X (x) T T WW X (x) S Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 30 / 78

Proposition For any X ExecSI, graph(x ) = (T X, SO X, WR X, WW X, RW X ) is a dependency graph. Proof By showing graph(x ) satisfies all requirements of a dependency graph. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 31 / 78

Outline 1 Introduction 2 Snapshot Isolation Definitions Dependency Graphs Characterization 3 Static Analysis Transaction Chopping Robustness Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 32 / 78

We ll show that SI is characterized by dependency graphs that contain only cycles with at least two adjacent anti-dependency edges. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 33 / 78

Theorem Let GraphSER = {G (T G INT) ((SO G WR G WW G RW G ) is acyclic)} Then HistSER = {H WR, WW, RW. (H, WR, WW, RW ) GraphSER} In other words, execution is serializable if it can be extended into an acyclic dependency graph. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 34 / 78

Theorem Let Then GraphSI = {G (T G INT) (( ) (SO G WR G WW G ) ; RW G? ) is acyclic } HistSI = {H WR, WW, RW.(H, WR, WW, RW ) GraphSI} Where... R? = R {(a, a) a A} Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 35 / 78

The relation (SO G WR G WW G ); RW? G includes edges of the following form: SO SO; RW WR WR; RW WW WW ; RW If there is a cycle in G, it: cannot be composed only of SO WR WW edges, otherwise it is a cycle in CO cannot contain only non-adjacent anti-dependency, otherwise above relation is cyclic. any cycle has to have at least two adjacent anti dependencies. The latter type of cycles are disallowed under SI, they allow long fork and lost update anomalies. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 36 / 78

Prohibited under SI: contain cycles without adjacent anti dependencies. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 37 / 78

Prohibited under serializability, and has a dependency graph RW RW cycle T 1 T 2 T 1. However, allowed under SI Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 38 / 78

To prove the previous theorem we ll show a stronger result: Theorem 1 Soundness: G GraphSI. X ExecSI.graph(X ) = G 2 Completeness: X ExecSI.graph(X ) GraphSI Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 39 / 78

Theorem Completeness: X ExecSI.graph(X ) GraphSI Closely follows from existing results 2. 2 Making Snapshot Isolation Serializable, 2005, A. Fekete et al Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 40 / 78

Consider SI execution, if we have a cycle in the dependency graph: then it contains at least one RW edge (other types of edges included on the CO) if the RW edge does not have an adjacent RW edge, it has to be included in the CO: red edge entailed by the CO edge from S to T, and VIS edge from T to T (PREFIX: CO; VIS VIS ) it violates EXT axiom, T reads x from I though S is visible and ordered after I in the commit order. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 41 / 78

Theorem Soundness: G GraphSI. X ExecSI.graph(X ) = G Proof sketch Construct a basic pre-execution from G Iteratively extend it until satisfies execution definition Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 42 / 78

Definition A tuple P = (T, SO, VIS, CO) is a pre-execution if it satisfies all the conditions of being an execution, except CO is a strict partial order that may not be total. Where... strict partial order is a transitive and irreflexive relation Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 43 / 78

Definition We let PreExecSI be the set of pre-executions satisfying the SI axioms: PreExecSI = {P P INT EXT SESSION PREFIX NOCONFLICT} Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 44 / 78

Consider G = (H, WR, WW, RW ), let P = (H, VIS, CO) a respective pre-execution. VIS, CO must hold the following to conform with G and satisfy PreExecSI: SO WR WW VIS VIS must conform with read/write dependecies of G and with SO to hold SESSION axiom. CO; VIS VIS to ensure PREFIX axiom. VIS CO to conform with SI definition - only committed transactions in snapshots. CO; CO CO transitivity of CO VIS; RW CO to ensure EXT axiom Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 45 / 78

Lemma Let G = (T, SO, WR, WW, RW ) be a dependency graph, for any relation R T T, the relations VIS = (((SO WR WW ); RW? ) R) ; (SO WR WW ) CO = (((SO WR WW ); RW? ) R) + are a solution to the system of inequalities in the previous slide. They also are the smallest solution to the system for which R CO. Where... R + a transitive closure of R R a transitive and reflexive closure of R Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 46 / 78

Proof outline. Let G = (T, SO, WR, WW, RW ) GraphSI Define P 0 derived from the last lemma by fixing R 0 =. Construct {P i = (T, SO, VIS i, CO i )} n i=0 series of pre-executions. While CO i is not total: Pick arbitrary pair T, S not ordered by CO i R i+1 = R i {(T, S)} Use the lemma with R = R i+1 to derive VIS i+1, CO i+1 (and thus P i+1 ) Let X = P n as CO n is now total. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 47 / 78

Outline 1 Introduction 2 Snapshot Isolation Definitions Dependency Graphs Characterization 3 Static Analysis Transaction Chopping Robustness Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 48 / 78

Transaction Chopping under SI: We ll derive a static analysis that checks if transactions can be chopped into smaller sessions The analysis will suggest an optimized program provided any execution with chopped transactions does not exhibit new behaviors. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 49 / 78

Example Given the top graph, can we chop the top transaction into 2 parts? No... bottom transaction will be able to observe intermittent state. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 50 / 78

Example What if we decouple the reads into separate sessions? Each read is allowed to observe the transfer in any order, no new observable behaviors. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 51 / 78

Definition For history H, let H = SO H SO 1 H {(T, T ) T T H} the equivalence relation grouping transactions from same session. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 52 / 78

Definition Let T H = (E, po) where E = ( {E S S H T }) and ( po = {(e, f ) ) S.e, f E S e po S f S H T ( S, S.e E S f E S S SO H S S H T Informally, T H is the result of splicing all transactions in session of T into the same transaction. ) } Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 53 / 78

Definition For history H, let splice(h) = ( ) { T H T T H }, history resulting from splicing all sessions in a history. For graph G we let G = HG. We ll call G GraphSI spliceable if exists a dependency graph G GraphSI such that H G = splice(h G ). Intuitively, if G is spliceable, then splice(h G ) can be chopped into H G. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 54 / 78

Consider graph G: Example The above graph is not spliceable: T VIS S T VIS T G S WR(acct1) WR(acct2) S G but T G S G Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 55 / 78

Definition Given G let dynamic chopping graph DCG(G) obtained from G by Removing WR G, WW G, RW G edges between transactions related by G Adding SO 1 edges We ll classify the edges as following: SO - successor edges SO 1 - predecessor edges (WR G WW G RW G ) \ G - conflict edges Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 56 / 78

Definition A cycle in DCG(G) is critical if: Does not contain 2 occurrences of the same vertex Contains 3 consecutive edges in form of conflict-predecessor-conflict Any 2 anti dependency edges (RW G \ G ) are separated by at least one read (WR G \ G ) or write (WW G \ G ) dependency edge Intuitively, we want criteria for DCG(G) that translates into an invalid cycle on the spliced graph. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 57 / 78

Consider G Example DCG(G) contains a critical cycle: S SO G S RW G T SO 1 G T WR G S Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 58 / 78

Theorem For G GraphSI, if DCG(G) contains no critical cycles, then G is spliceable. Specifically: If G is spliceable, then the spliced graph G GraphSI G GraphSI so it contains no cycles without adjacent anti-dependencies we might be able to chop G into G Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 59 / 78

We use the last theorem to derive the static analysis. Assume set of programs P = {P 1, P 2,... }, each defining code of a session resulting from chopping a single transaction. Each P i is composed of k i program pieces W i j and R i j sets of objects written or read by j-th piece of P i Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 60 / 78

History H can be produced by programs P if there s 1:1 correspondence between every session in H and program P i P, and each transaction in the session corresponds to respective program piece, along with its read/write sets. Chopping is defined correct if every dependency graph G GraphSI, where H G can be produced by P is spliceable. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 61 / 78

Example We have 4 programs, one for each session. Each transaction is a program piece. For transfer session we have 2 program pieces with T : W 1 1 = R1 1 = {acct1} T : W 1 2 = R1 2 = {acct2} Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 62 / 78

Consider program set P Definition Static chopping graph SCG(P) is a graph where nodes are program pieces in form of (i, j) and the edge (i 1, j 1 ), (i 2, j 2 ) is present if: i 1 = i 2 and: j 1 < j 2 (a successor edge) j 1 > j 2 (a predecessor edge) i 1 i 2 and: W i 1 j 1 R i 2 j2 (a read dependency edge) W i 1 j 1 W i 2 j 2 (a write dependency edge) R i 1 j1 W i 2 j 2 (an anti dependency edge) Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 63 / 78

The edge set of static graphs SCG(P) over-approximate the edge sets of the dynamic graphs DCG(G) corresponding to graphs G produced by programs P. The chopping defined by P is correct if SCG(P) contains no critical cycles (as defined for dynamic graphs). Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 64 / 78

Example Fig. 5 contains a critical cycle: (var1 = acct1) RW (acct1 = acct1 100) S (acct2 = acct2 + 100) WR (var2 = actt2) P (var1 = acct1) not a valid chopping Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 65 / 78

Example Fig. 6 contains a single cycle, where two vertices appear twice not a critical cycle. The above chopping is spliceable. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 66 / 78

Outline 1 Introduction 2 Snapshot Isolation Definitions Dependency Graphs Characterization 3 Static Analysis Transaction Chopping Robustness Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 67 / 78

Robustness: We ll derive an analysis that check where an application behaves the same way under a weak consistency model as it does under a strong one. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 68 / 78

Robustness against SI towards SER Check if a given application running under SI, behaves the same as if it runs under serializability model. Specifically, no histories in HistSI \ HistSER Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 69 / 78

Theorem For any G, we have G GraphSI \ GraphSER iff T G INT, G contains a cycle, and all its cycles have at least two adjacent anti-dependency edges. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 70 / 78

Consider G: Example The above graph contains a cycle with two adjacent anti-dependencies. G GraphSI \ GraphSER Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 71 / 78

Static analysis: Assume code of transactions defined by set of programs P with given read and write sets. Based on them, derive static dependency graph, over-approximating possible dependencies that can exist. Check that static dependency graph contains no cycles with two adjacent anti-dependency edges. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 72 / 78

Robustness against PSI towards SI Check if a given application running under PSI, behaves the same as if it runs under SI model. Again, make sure there are no histories in HistPSI \ HistSI Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 73 / 78

Definition Sets of executions and histories allowed by parallel SI are: ExecPSI = {X X INT EXT SESSION TRANSVIS NOCONFLICT} HistPSI = {H VIS, CO.(H, VIS, CO) ExecPSI} Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 74 / 78

Definition TRANSVIS axiom ensures that transactions ordered by VIS are observed by others in this order. However, allows transactions unrelated by VIS to be observed in different orders; in particular, allows long fork anomaly. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 75 / 78

Theorem Let GraphPSI = {G (T G INT) (( ) ) (SO G WR G WW G ) + ; RW G? is irreflexive } Then HistPSI = {H WR, WW, RW.(H, WR, WW, RW ) GraphPSI} Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 76 / 78

Theorem For any G, we have G GraphPSI \ GraphSI iff T G INT, G contains at least one cycle with no adjacent anti-dependency edges, and all its cycles have at least two anti dependency edges. Static analysis: Similar to SI/SER case, but checks the static dependency graph for the above criteria. Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 77 / 78

Thank you! Andrea Cerone, Alexey Gotsman (IMDEA) Analyzing Snapshot Isolation PODC 2016 78 / 78