A CLASSIC HORROR STORY Ease of Performance Programming THE PIT - - PowerPoint PPT Presentation

a classic horror story
SMART_READER_LITE
LIVE PREVIEW

A CLASSIC HORROR STORY Ease of Performance Programming THE PIT - - PowerPoint PPT Presentation

A CLASSIC HORROR STORY Ease of Performance Programming THE PIT AND THE PENDULUM Lorenzo Alvisi Database Programmer Ease Ease of Performance of Performance Programming Programming Database Programmer Database


slide-1
SLIDE 1

Lorenzo Alvisi

THE PIT AND THE PENDULUM

Performance

A CLASSIC HORROR STORY

Database Programmer

Ease

  • f

Programming

Database Programmer

Ease

  • f

Programming Performance Ease

  • f

Programming Performance

Database Programmer

slide-2
SLIDE 2

CONCURRENCY

Pierre Franc Lamy Young girl on a balcony (1911) Carlo Carrà Concurrency, Woman on a balcony (1912)

ACID TRANSACTIONS: SIMPLE AND POWERFUL

ACID Txn

z := x+y y++ x := 0

Txn

Txn Txn Txn Txn Txn

Txn

Txn Txn Txn

Txn

Txn Txn

Atomicity Consistency Isolation Durability

PERFORMANCE VIA WEAKER ISOLATION GUARANTEES

Database System Default Isolation Strongest Isolation MySQL Cluster Read Committed Read Committed SAP HANA Read Committed Snapshot Isolation Google Spanner Serializability Serializability VoltDB Serializability Serializability Oracle 12C Read Committed Snapshot Isolation MemSQL Read Committed Read Committed SQL Server Read Committed Serializability Postgres Read Committed Serializability

ANSI SQL-92 ISOLATION LEVELS

  • Defined in terms of three

phenomena that can lead to violations of serializability

  • Motivated by weakening locking

implementations of serializability

  • Designed to be implementation

independent (greater flexibility/ better performance)

Isolation Level Proscribed Phenomena

Dirty Read Fuzzy Read Phantom Read Uncommitted Read Committed Repeatable Read (Anomaly) Serializable

slide-3
SLIDE 3

DIRTY READS

R(A) R(B) R(A) W(A)

T1 T2

BEGIN BEGIN COMMIT ABORT A = 5 A = 12 A = 12 W(A) W(B) A = 15

  • T1 modifies a data item.
  • T2 reads that data item before T1

commits or aborts.

  • If T1 then aborts, T2 has read a data

item that was never committed and so never really existed.

Root: Write-Read conflict

FUZZY READS

A.K.A. NON-REPEATABLE READS

R(A) R(A) W(A)

T1 T2

BEGIN BEGIN COMMIT COMMIT A = 5 A = 10 A = 10

  • T1 reads a data item.
  • T2 then modifies or deletes that data

item and commits.

  • If T1 then attempts to reread the item, it

receives a modified value or discovers the item was deleted.

Root: Read-Write conflict

THE PHANTOM MENACE

T1 T2

BEGIN SELECT MAX (salary) FROM players WHERE team = ‘Juve’ COMMIT SELECT MAX (salary) FROM players WHERE team = ‘Juve’ BEGIN COMMIT INSERT INTO players (salary = 30M, team = ‘Juve’)

8M 30M

On July 10 2018…

Non-repeatable predicate-based reads

  • T1 reads a set of data items satisfying

<search condition>.

  • T2 then creates data items that satisfy

T1’s <search condition> and commits.

  • If T1 then repeats its read with the

same <search condition>, it gets a different set of data

WHAT’S NOT TO LIKE?

  • Ambiguous descriptions of proscribed behaviors

Berenson et al, SIGMOD ‘95

R(A) R(B) R(A) W(A)

T1 T2

BEGIN BEGIN COMMIT ABORT A = 5 A = 12 A = 12 W(A) W(B) A = 15

  • Strict Interpretation (prohibits anomaly)
  • A1: W1[X] … R2[X] … (A1 and C2 in any order)
  • Broad Interpretation (prohibits phenomenon)
  • P1: W1[X] … R2[X] … ((A1 or C1) and (A2 or C2) in any order)

Dirty Reads

similar distinctions for P2 (NR reads) and P3 (Phantoms)

slide-4
SLIDE 4

PHENOMENA OR ANOMALIES?

  • Non serializable
  • T2 reads the wrong balance
  • Yet fine by Strict Interpretation A1…
  • W1[X] … R2[X] … (A1 and C2 in any order)
  • T1 does not abort!
  • but violates Broad Interpretation P1
  • W1[X] … R2[X] … ((A1 or C1) and (A2 or

C2) in any order)

T1 T2

BEGIN BEGIN COMMIT COMMIT R(Y=50) R(X= 50) R(X = 10) R(Y = 50) W(Y = 90) W(X = 10)

Dirty Reads

PHENOMENA OR ANOMALIES?

  • Non serializable
  • T1 reads the wrong balance
  • Yet fine by Strict Interpretation A2…
  • R1[X] … W2[X] … C2 … R1[X] … C1
  • No transaction reads same value twice
  • but violates Broad Interpretation P2
  • R1[X] … W2[X] … ((A1 or C1) and (A2 or

C2) in any order)

T1 T2

BEGIN BEGIN COMMIT COMMIT R(Y=90) R(X= 50) R(X = 50) R(Y = 50) W(Y = 90)

Non-repeatable Reads

W(X = 10)

ANSI isolation levels should be intended to proscribe phenomena, not anomalies

WHAT’S NOT TO LIKE?

  • ANSI SQL phenomena are weaker than their

locking counterpart

Isolation Level Read Locks Write Locks

Locking Read Uncommitted

None Long† write locks

Locking Read Committed

Short* read locks (both) Long write locks

Locking Repeatable Read

Long item locks Short predicate locks Long write locks

Locking Serializable

Long read locks (both) Long write locks

Long†: Released after transaction commits Short*: Released after operation ends

slide-5
SLIDE 5

ANSI P3 should prevent phantoms due to deletions and updates, not just creations

WHAT’S NOT TO LIKE?

  • ANSI SQL phenomena are weaker than their

locking counterpart

Isolation Level Read Locks Write Locks

Locking Read Uncommitted

None Long† write locks

Locking Read Committed

Short* read locks (both) Long write locks

Locking Repeatable Read

Long item locks Short predicate locks Long write locks

Locking Serializable

Long read locks (both) Long write locks

Long†: Released after transaction commits Short*: Released after operation ends

still

DIRTY WRITES

W(A)

T1 T2

BEGIN BEGIN COMMIT COMMIT A = 10 W(A) A = 15

Root: Write-Write conflicts

  • T1 modifies a data item
  • T2 further modifies that data item

before T1 commits or aborts.

  • Conflicting writes can interleave,

violating invariants

B = 10 W(B) W(B) B = 15

ANSI isolation levels should include phenomenon P0

P0: W1[X]…W2[X]…(C1or A1) and (C2 or A2) in any order

slide-6
SLIDE 6

ANSI-92 ISOLATION LEVELS, POST CRITIQUE

Locking Isolation Level Proscribed Phenomena Read locks on data items and phantoms Write locks on data items and phantoms Degree 0 none none Short* write locks Degree 1 = Locking READ UNCOMMITTED P0 none Long† write locks Degree 2 = Locking READ COMMITTED P0, P1 Short read locks Long write locks Locking REPEATABLE READ P0, P1, P2

Long data-item read locks; Short phantom read locks

Long write locks Degree 3 = Locking SERIALIZABLE P0, P1, P2, P3 Long read locks Long write locks

Long†: Released after transaction commits Short*: Released after operation ends

AND YET…

  • “P0, P1, P2, and P3 are a disguised version of locking”
  • no implementation independence
  • Preventing concurrent execution of conflicting
  • perations approach rules out optimistic and multi

version implementations

  • P0: W1[X] … W2[X] … (C1 or A1)
  • rules out optimistic implementations
  • similar argument holds for P1, P2. P3

THE RUB

  • Phenomena expressed through single object histories
  • but consistency often involves multiple objects
  • Same guarantees for running and committed transactions
  • but optimistic approaches thrive on the difference
  • Definition in terms of objects, not versions
  • no support for multiversion systems

SNAPSHOT ISOLATION

  • T reads from a snapshot of committed values

at T’s start time

  • T’s own writes are reflected in its snapshot
  • When ready to commit, T receives a commit time
  • T commits if its updates do not conflict with

those of any transaction which committed in the interval between T’s start time and commit time

slide-7
SLIDE 7

WRITE SKEW ANOMALY

T1: Change green to red T2: Change red to green

WRITE SKEW ANOMALY

T1: Change green to red T2: Change red to green

WRITE SKEW ANOMALY

T1: Change green to red T2: Change red to green

* * * * * * * *

Serial

  • r

GENERALIZED ISOLATION DEFINITIONS

  • Executions modeled as histories
  • a partial order of read/write operations that respects
  • rder of operations in each transaction
  • a total order << of object versions created by

committed transactions

Adya et al, SIGMOD ‘95

slide-8
SLIDE 8

SERIALIZATION GRAPH

  • Every history is associated with a Direct

Serialization Graph (DSG)

  • nodes are committed transactions
  • edges express different types of direct conflicts
  • write-read
  • write-write
  • read-write
  • edge expresses temporal relation
  • start

(anti-dependency) (dependency)

Ti

s

− → Tj : ci < sj

}

Ti

ww

− − → Tj Ti

wr

− − → Tj Ti

rw

− − → Tj

READ UNCOMMITTED

Proscribes P0: W1[X] … W2[X] … (C1 or A1)

Now, proscribes G0: DSG(H) contains a directed cycle

consisting exclusively of WW edges

Concurrent transactions can modify the same object (as long as they don’t all commit)

T1 T2

ww ww

STRONGER ISOLATION LEVELS

  • No aborted reads
  • T2 cannot read value of aborted T1
  • No intermediate reads
  • T2 cannot read value of T1 that T1 then overwrites
  • No circularity in DSG graph
  • edges in cycle depend on isolation level

SNAPSHOT ISOLATION

  • DSG(H) proscribes:

T1 T2 T1 T2 T3 T2 T3 T1

wr

<latexit sha1_base64="5lgCNYoEvSuUCW v76le0GQx+h0=">A B3nicdVDLTgJBEOzF +IL9ehlIjHxtNkVg3qSxItHNK6QAMHZYRYmzD4y06sh LMXDSeN3+PJX/Az/AMH0AM+KumkUlWd6Ro/kUKj47xbmbn5hcWl7HJuZXVtfSO/uXWt41Qx7rFYxqrmU82liLiHAiWvJYrT0Je86vfOxn71list4ugK+wlvhrQTiUAwika6vFOtfMG1nQnI/6Rw+vE6ugGASiv/1mjHLA15hExSreu k2BzQBUKJvkw10g1Tyjr0Q4fTO4bkj0jtUkQKzMRkok6k6Oh1v3QN8mQYlf/9MbiX149xeC4ORBRkiKP2PShIJUEYzIuS9pCcYaybwhlSpgLCetSR maL8mZ6o5dLB26RYf8Jt/VvQP7xHYvnEK5BFNkYQd2YR9cOI ynEMFPGAQwAM8wbNFrXvr0RpNoxnra2cbZmC9fALyLIv6</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="oQz48/yjCuf3H6Z5cROKYh6eUCg=">A B3nicdVDLSgMxFL1TX7W+qi7dBIvgashYqboruHFZxbGFtpRMm lDMw+SO0opXbtRXCl+kr/g35g+XNTHgcDhnBPuPTdIlTRI6aeTW1peWV3Lrxc2Nre2d4q7e3cmyTQXPk9UohsBM0LJWPgoUYlGqgWLAiXqweBy4tfvhTYyiW9xmIp2xHqxDCVnaKWbB90pljyXTkH+JyWYo9YpfrS6Cc8iESNXzJimR1Nsj5hGyZUYF1qZESnjA9YTo+l+Y3JkpS4JE21fjGSqLuRYZMw CmwyYtg3P72J+JfXzDA8b49knGYoYj4bFGaKYEImZUlXasFRDS1hXEu7IeF9phlHe5KCrU7dcuXUK1Pym3xX90/cC9e7pqVqZX6DPBzAIRyDB2dQhSuogQ8cQniCV3hzmP oPDsvs2jOmf/ZhwU4718tcIkZ</latexit>

wr

<latexit sha1_base64="5lgCNYoEvSuUCW v76le0GQx+h0=">A B3nicdVDLTgJBEOzF +IL9ehlIjHxtNkVg3qSxItHNK6QAMHZYRYmzD4y06sh LMXDSeN3+PJX/Az/AMH0AM+KumkUlWd6Ro/kUKj47xbmbn5hcWl7HJuZXVtfSO/uXWt41Qx7rFYxqrmU82liLiHAiWvJYrT0Je86vfOxn71list4ugK+wlvhrQTiUAwika6vFOtfMG1nQnI/6Rw+vE6ugGASiv/1mjHLA15hExSreu k2BzQBUKJvkw10g1Tyjr0Q4fTO4bkj0jtUkQKzMRkok6k6Oh1v3QN8mQYlf/9MbiX149xeC4ORBRkiKP2PShIJUEYzIuS9pCcYaybwhlSpgLCetSR maL8mZ6o5dLB26RYf8Jt/VvQP7xHYvnEK5BFNkYQd2YR9cOI ynEMFPGAQwAM8wbNFrXvr0RpNoxnra2cbZmC9fALyLIv6</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="oQz48/yjCuf3H6Z5cROKYh6eUCg=">A B3nicdVDLSgMxFL1TX7W+qi7dBIvgashYqboruHFZxbGFtpRMm lDMw+SO0opXbtRXCl+kr/g35g+XNTHgcDhnBPuPTdIlTRI6aeTW1peWV3Lrxc2Nre2d4q7e3cmyTQXPk9UohsBM0LJWPgoUYlGqgWLAiXqweBy4tfvhTYyiW9xmIp2xHqxDCVnaKWbB90pljyXTkH+JyWYo9YpfrS6Cc8iESNXzJimR1Nsj5hGyZUYF1qZESnjA9YTo+l+Y3JkpS4JE21fjGSqLuRYZMw CmwyYtg3P72J+JfXzDA8b49knGYoYj4bFGaKYEImZUlXasFRDS1hXEu7IeF9phlHe5KCrU7dcuXUK1Pym3xX90/cC9e7pqVqZX6DPBzAIRyDB2dQhSuogQ8cQniCV3hzmP oPDsvs2jOmf/ZhwU4718tcIkZ</latexit>

s

<latexit sha1_base64="WoQu8beNs9O+s6/rb3O/5y4h/lY=">A B3XicdVDLTgJBEOzF +IL9ehlIjHxtNkVg3qSxItHSFwhAQKzQy9MmH1kZtaE K5eNHrR+D+e/AU/wz9wAD3go5JOKlXVma7xE8GVdpx3K7OwuLS8kl3Nra1vbG7lt3euVZxKh 6LRSzrPlUoeISe5lpgPZFIQ19gzR9cTPzaDUrF4+hKDxNshbQX8YAzqo1UVe18wbWdKcj/pHD+8frYAYBKO/ W7MYsDTHSTFClGq6T6NaISs2ZwHGumSpMKBvQHo6m543JgZG6JIilmUiTqTqXo6FSw9A3yZDqv rpTcS/vEaqg9PWiEdJqjFis4eCVBAdk0lX0uUSmRZDQyiT3FxIWJ9KyrT5kZyp7tjF0rFbdMhv8l3dO7LPbLfqFMolmCELe7APh+DC ZThEirgAQOEO3iCZ6tj3Vr31sMsmrG+dnZhDtbLJx8Wi3o=</latexit> <latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">A B3XicdVC7TgJBFL2L 8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG0 2mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6m uBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCD UTVKm6 8S6OaRScyZwlGk CmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWT hzqJIDoi46 kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/b sXJlYowR p2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbM rKdPhgWNVg= </latexit> <latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">A B3XicdVC7TgJBFL2L 8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG0 2mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6m uBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCD UTVKm6 8S6OaRScyZwlGk CmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWT hzqJIDoi46 kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/b sXJlYowR p2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbM rKdPhgWNVg= </latexit> <latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">A B3XicdVC7TgJBFL2L 8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG0 2mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6m uBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCD UTVKm6 8S6OaRScyZwlGk CmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWT hzqJIDoi46 kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/b sXJlYowR p2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbM rKdPhgWNVg= </latexit> <latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">A B3XicdVC7TgJBFL2L 8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG0 2mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6m uBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCD UTVKm6 8S6OaRScyZwlGk CmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWT hzqJIDoi46 kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/b sXJlYowR p2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbM rKdPhgWNVg= </latexit> <latexit sha1_base64="3HkhEnNDHb92/BXAbRnIAIrc89M=">A B3XicdVDLSgMxFL2pr1pfVZdugkVwNcxYqboruH ZgmMLbamZN OGZh4kd4RSunWjuFL8JX/BvzF9uKiPA4HDOSfce26QKmnQdT9JbmV1bX0jv1nY2t7Z3SvuH9yZJN c+DxRiW4GzAglY+GjRCWaqRYsCpRoBMPrqd94ENrIJL7FUSo6EevHMpScoZXqpls eY47A/2flGCBWrf40e4lPItEjFwxY1qem2JnzDRKrsSk0M6MSBkfsr4Yz9ab0BMr9WiYaPtipDN1Kc iY0ZRYJMRw4H56U3Fv7xWhuFlZyzjNEMR8/mgMFMUEzrtSntSC45qZAnjWtoNKR8wzTjaixRsd cpV869skt/k+/q/plz5Xh1t1StLG6QhyM4hlPw4AKqcAM18IGDgCd4hTdyTx7JM3mZR3Nk8ecQlkDevwBaS4iZ</latexit>

cycles consisting of write-write

  • r write-read dependencies

a write-read or write-write edge without a start edge a cycle consisting of write-read/ write-write/start-edges, and a single read-write edge

wr wr wr

ww ww rw s s s ww

slide-9
SLIDE 9

ALL’S WELL? ALL’S WELL?

T1 T2

BEGIN BEGIN COMMIT COMMIT W(X= 10) W(Y= 90) W(Y= 50) W(X= 80)

T1 T2

BEGIN BEGIN COMMIT COMMIT R(Y= 50) R(X = 10) W(X = 90) W(Y=80)

Theory

Conflict Serializability MySQL Community Edition Multiversion Serializability Rococo Anomaly Serializability Oracle 12C

WHY THE CONFUSION?

Semantic gap between how isolation guarantees are defined and how they are experienced by application programmers

Definiti Percepti

In terms of histories and operations invisible Properties of

How isolation properties are formalized How applications perceive them

DON’T KNOW MUCH ABOUT HISTORIES

  • Applications experience isolation guarantees as

contracts specifying which values they can read (i.e. which states they can observe)

  • Low-level read/write operations are instead
  • invisible to applications
  • encourage system-specific definitions
slide-10
SLIDE 10

A STATE-BASED DEFINITION

  • Isolation guarantees as constraints on read states
  • states consistent with what the application observed

Crooks et al, 2017

R2(Y0) R2(Z1)

X: X0 Y: Y0 Z: Z0 X: X0 Y: Y1 Z: Z1 X: X0 Y: Y2 Z: Z1

A STATE-BASED DEFINITION

Crooks et al, 2017

  • Isolation guarantees as constraints on read states
  • states consistent with what the application observed
  • Each transaction is associated with a set of

candidate read states

  • At commit, transaction must pass a commit test

that narrows down which read states are acceptable

R2(Y0) R2(Z1)

X: X0 Y: Y0 Z: Z0 X: X0 Y: Y1 Z: Z1 X: X0 Y: Y2 Z: Z1

A STATE-BASED DEFINITION

A storage system guarantees a specific isolation level I if it can produce an execution (a sequence

  • f atomic state transitions) that
  • is consistent with every transaction’s read states
  • satisfies the commit test for I, for every transaction

Crooks et al, 2017

If no read state prove suitable for some transaction, then I does not hold

PARENT STATES AND COMPLETE STATES

X: X0 Y: Y0 Z: Z0 X: X0 Y: Y1 Z: Z1 X: X0 Y: Y2 Z: Z1 X: X1 Y: Y2 Z: Z1

T0 T2 T

Se

slide-11
SLIDE 11

PARENT STATES AND COMPLETE STATES

  • Parent state sp of T: state from which T commits

X: X0 Y: Y0 Z: Z0 X: X0 Y: Y1 Z: Z1 X: X0 Y: Y2 Z: Z1 X: X1 Y: Y2 Z: Z1

T0 T2 T

Se

PARENT STATES AND COMPLETE STATES

  • Parent state sp of T: state from which T commits
  • Complete state for T: a read state for all read ops in T

X: X0 Y: Y0 Z: Z0 X: X0 Y: Y1 Z: Z1 X: X0 Y: Y2 Z: Z1 X: X1 Y: Y2 Z: Z1

T0 T2 T

X: X0 Y: Y0 Z: Z0 X: X0 Y: Y1 Z: Z1 X: X0 Y: Y2 Z: Z1

T0 T2 T

R(Z1) R(Y1)

Se

PARENT STATES AND COMPLETE STATES

  • Parent state sp of T: state from which T commits
  • Complete state for T: a read state for all read ops in T

X: X0 Y: Y0 Z: Z0 X: X0 Y: Y1 Z: Z1 X: X0 Y: Y2 Z: Z1 X: X1 Y: Y2 Z: Z1

T0 T2 T

X: X0 Y: Y0 Z: Z0 X: X0 Y: Y1 Z: Z1 X: X0 Y: Y2 Z: Z1

T0 T2 T

R(Z1) R(Y1)

Se

SERIALIZABILITY

slide-12
SLIDE 12

SERIALIZABILITY

  • Given a set of transactions T and their read states,

serializability holds if there exists execution e such that for all T in T

COMPLETEe,T (sp)

SNAPSHOT ISOLATION

T1 T2 T1 T2 T3 T2 T3 T1

ww

<latexit sha1_base64="9Im5U olgAN5R OfcG25irxKxTU=">A B3nicdVDLTgJBEOzF +IL9ehlIjHxtNlVg3qSxItHNK6QAMHZYRYmzD4y0ysh LMXDSeN3+PJX/Az/AMH0AM+KumkUlWd6Ro/kUKj47xbmbn5hcWl7HJuZXVtfSO/uXWj41Qx7rFYxqrqU82liLiHAiWvJorT0Je84nfPx37ljist4uga+wlvhLQdiUAwika6 vWa+YJrOxOQ/0nh7ON1dAsA5Wb+rd6KWRryCJmkWtdcJ8HGgCoUTPJhrp5qnlDWpW0+mNw3JHtGapEgVmYiJBN1JkdDrfuhb5IhxY7+6Y3Fv7xaisFJYyCiJEUeselDQSoJxmRclrSE4gxl3xDKlDAXEtahijI0X5Iz1R37sHjkHjrkN/mu7h3Yp7Z76R KRZgiCzuwC/vgwjGU4ALK4AGDAB7gCZ4tat1bj9ZoGs1YXzvbMAPr5RP5iYv/</latexit> <latexit sha1_base64="gXwapw3M6Cp4F16cVswLZjF6R/Q=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV01qJUkNpZoXCEBQmaHWZgw+8jMXQkh1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza1rHSWKcZdFMlJVj2ouRchdFCh5NVacBp7kFa97NvYrN1xpEYVX2I95I6DtUPiCUT SZa/XzOacgj0B+Z/kTt+fR/X8x0u5mX2t yKWBDxEJqnWNceOsTGgCgWTfJipJ5rHlHVpmw8m9w3JnpFaxI+UmRDJRJ3J0UDrfuCZ ECxo396Y/Evr5agf9wYiDBOkIds+pCfSI RGZclLaE4Q9k3hDIlzIWEdai DM2XZEx1u3BQPHQObPKbfFd39wsnBefCzpWKMEUadmAX8uDAEZTgHMrgAgMf7uABHi1q3Vr31mgaTVlfO9swA+vpE2CHjds=</latexit> <latexit sha1_base64="gXwapw3M6Cp4F16cVswLZjF6R/Q=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV01qJUkNpZoXCEBQmaHWZgw+8jMXQkh1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza1rHSWKcZdFMlJVj2ouRchdFCh5NVacBp7kFa97NvYrN1xpEYVX2I95I6DtUPiCUT SZa/XzOacgj0B+Z/kTt+fR/X8x0u5mX2t yKWBDxEJqnWNceOsTGgCgWTfJipJ5rHlHVpmw8m9w3JnpFaxI+UmRDJRJ3J0UDrfuCZ ECxo396Y/Evr5agf9wYiDBOkIds+pCfSI RGZclLaE4Q9k3hDIlzIWEdai DM2XZEx1u3BQPHQObPKbfFd39wsnBefCzpWKMEUadmAX8uDAEZTgHMrgAgMf7uABHi1q3Vr31mgaTVlfO9swA+vpE2CHjds=</latexit> <latexit sha1_base64="gXwapw3M6Cp4F16cVswLZjF6R/Q=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV01qJUkNpZoXCEBQmaHWZgw+8jMXQkh1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza1rHSWKcZdFMlJVj2ouRchdFCh5NVacBp7kFa97NvYrN1xpEYVX2I95I6DtUPiCUT SZa/XzOacgj0B+Z/kTt+fR/X8x0u5mX2t yKWBDxEJqnWNceOsTGgCgWTfJipJ5rHlHVpmw8m9w3JnpFaxI+UmRDJRJ3J0UDrfuCZ ECxo396Y/Evr5agf9wYiDBOkIds+pCfSI RGZclLaE4Q9k3hDIlzIWEdai DM2XZEx1u3BQPHQObPKbfFd39wsnBefCzpWKMEUadmAX8uDAEZTgHMrgAgMf7uABHi1q3Vr31mgaTVlfO9swA+vpE2CHjds=</latexit> <latexit sha1_base64="gXwapw3M6Cp4F16cVswLZjF6R/Q=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV01qJUkNpZoXCEBQmaHWZgw+8jMXQkh1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza1rHSWKcZdFMlJVj2ouRchdFCh5NVacBp7kFa97NvYrN1xpEYVX2I95I6DtUPiCUT SZa/XzOacgj0B+Z/kTt+fR/X8x0u5mX2t yKWBDxEJqnWNceOsTGgCgWTfJipJ5rHlHVpmw8m9w3JnpFaxI+UmRDJRJ3J0UDrfuCZ ECxo396Y/Evr5agf9wYiDBOkIds+pCfSI RGZclLaE4Q9k3hDIlzIWEdai DM2XZEx1u3BQPHQObPKbfFd39wsnBefCzpWKMEUadmAX8uDAEZTgHMrgAgMf7uABHi1q3Vr31mgaTVlfO9swA+vpE2CHjds=</latexit> <latexit sha1_base64="loY2TxzbvySFTQbK9jPKOmw3ar0=">A B3nicdVDLSgMxFL1TX7W+qi7dBIvgashYqboruHFZxbGFtpRMm lDMw+SO5ZSunajuFL8JH/BvzF9uPB1IHA454R7zw1SJQ1S+uHklpZXVtfy64WNza3tneLu3p1JMs2FzxOV6EbAjFAyFj5KVK RasGiQIl6MLic+vV7oY1M4lscpaIdsV4sQ8kZWulmO wUS5 LZyD/kxIsUOsU31vdhGeRiJErZkzToym2x0yj5EpMCq3MiJTxAeuJ8Wy/CTmyUpeEibYvRjJTv+VYZMwoCmwyYtg3P72p+JfXzDA8b49lnGYoYj4fFGaKYEKmZUlXasFRjSxhXEu7IeF9phlHe5KCrU7dcuXUK1Pym3xV90/cC9e7pqVqZXGDPBzAIRyDB2dQhSuogQ8cQniEF3h1mP gPDnP82jOWfzZh29w3j4BNM2JHg= </latexit>

wr

<latexit sha1_base64="5lgCNYoEvSuUCW v76le0GQx+h0=">A B3nicdVDLTgJBEOzF +IL9ehlIjHxtNkVg3qSxItHNK6QAMHZYRYmzD4y06sh LMXDSeN3+PJX/Az/AMH0AM+KumkUlWd6Ro/kUKj47xbmbn5hcWl7HJuZXVtfSO/uXWt41Qx7rFYxqrmU82liLiHAiWvJYrT0Je86vfOxn71list4ugK+wlvhrQTiUAwika6vFOtfMG1nQnI/6Rw+vE6ugGASiv/1mjHLA15hExSreu k2BzQBUKJvkw10g1Tyjr0Q4fTO4bkj0jtUkQKzMRkok6k6Oh1v3QN8mQYlf/9MbiX149xeC4ORBRkiKP2PShIJUEYzIuS9pCcYaybwhlSpgLCetSR maL8mZ6o5dLB26RYf8Jt/VvQP7xHYvnEK5BFNkYQd2YR9cOI ynEMFPGAQwAM8wbNFrXvr0RpNoxnra2cbZmC9fALyLIv6</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="oQz48/yjCuf3H6Z5cROKYh6eUCg=">A B3nicdVDLSgMxFL1TX7W+qi7dBIvgashYqboruHFZxbGFtpRMm lDMw+SO0opXbtRXCl+kr/g35g+XNTHgcDhnBPuPTdIlTRI6aeTW1peWV3Lrxc2Nre2d4q7e3cmyTQXPk9UohsBM0LJWPgoUYlGqgWLAiXqweBy4tfvhTYyiW9xmIp2xHqxDCVnaKWbB90pljyXTkH+JyWYo9YpfrS6Cc8iESNXzJimR1Nsj5hGyZUYF1qZESnjA9YTo+l+Y3JkpS4JE21fjGSqLuRYZMw CmwyYtg3P72J+JfXzDA8b49knGYoYj4bFGaKYEImZUlXasFRDS1hXEu7IeF9phlHe5KCrU7dcuXUK1Pym3xX90/cC9e7pqVqZX6DPBzAIRyDB2dQhSuogQ8cQniCV3hzmP oPDsvs2jOmf/ZhwU4718tcIkZ</latexit>

wr

<latexit sha1_base64="5lgCNYoEvSuUCW v76le0GQx+h0=">A B3nicdVDLTgJBEOzF +IL9ehlIjHxtNkVg3qSxItHNK6QAMHZYRYmzD4y06sh LMXDSeN3+PJX/Az/AMH0AM+KumkUlWd6Ro/kUKj47xbmbn5hcWl7HJuZXVtfSO/uXWt41Qx7rFYxqrmU82liLiHAiWvJYrT0Je86vfOxn71list4ugK+wlvhrQTiUAwika6vFOtfMG1nQnI/6Rw+vE6ugGASiv/1mjHLA15hExSreu k2BzQBUKJvkw10g1Tyjr0Q4fTO4bkj0jtUkQKzMRkok6k6Oh1v3QN8mQYlf/9MbiX149xeC4ORBRkiKP2PShIJUEYzIuS9pCcYaybwhlSpgLCetSR maL8mZ6o5dLB26RYf8Jt/VvQP7xHYvnEK5BFNkYQd2YR9cOI ynEMFPGAQwAM8wbNFrXvr0RpNoxnra2cbZmC9fALyLIv6</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="wmU8E1cA4jstcm2 1QNSh70es60=">A B3nicdVC7TgJBFL2L 8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar1 xpEYWX2I95M6CdUPiCUT SxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr42 hFLAh4ik1TrumPH2BxQhYJ Psw0Es1jynq0w eT+4Zkz0ht4kfKTIhkos7kaKB1P/BM qDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulR huZLMqa6XSiWDpyiTX6T7+rufuG4 JzbuXIJpkjD uxCHhw4hDKcQ VcYOD HTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit> <latexit sha1_base64="oQz48/yjCuf3H6Z5cROKYh6eUCg=">A B3nicdVDLSgMxFL1TX7W+qi7dBIvgashYqboruHFZxbGFtpRMm lDMw+SO0opXbtRXCl+kr/g35g+XNTHgcDhnBPuPTdIlTRI6aeTW1peWV3Lrxc2Nre2d4q7e3cmyTQXPk9UohsBM0LJWPgoUYlGqgWLAiXqweBy4tfvhTYyiW9xmIp2xHqxDCVnaKWbB90pljyXTkH+JyWYo9YpfrS6Cc8iESNXzJimR1Nsj5hGyZUYF1qZESnjA9YTo+l+Y3JkpS4JE21fjGSqLuRYZMw CmwyYtg3P72J+JfXzDA8b49knGYoYj4bFGaKYEImZUlXasFRDS1hXEu7IeF9phlHe5KCrU7dcuXUK1Pym3xX90/cC9e7pqVqZX6DPBzAIRyDB2dQhSuogQ8cQniCV3hzmP oPDsvs2jOmf/ZhwU4718tcIkZ</latexit>

s

<latexit sha1_base64="WoQu8beNs9O+s6/rb3O/5y4h/lY=">A B3XicdVDLTgJBEOzF +IL9ehlIjHxtNkVg3qSxItHSFwhAQKzQy9MmH1kZtaE K5eNHrR+D+e/AU/wz9wAD3go5JOKlXVma7xE8GVdpx3K7OwuLS8kl3Nra1vbG7lt3euVZxKh 6LRSzrPlUoeISe5lpgPZFIQ19gzR9cTPzaDUrF4+hKDxNshbQX8YAzqo1UVe18wbWdKcj/pHD+8frYAYBKO/ W7MYsDTHSTFClGq6T6NaISs2ZwHGumSpMKBvQHo6m543JgZG6JIilmUiTqTqXo6FSw9A3yZDqv rpTcS/vEaqg9PWiEdJqjFis4eCVBAdk0lX0uUSmRZDQyiT3FxIWJ9KyrT5kZyp7tjF0rFbdMhv8l3dO7LPbLfqFMolmCELe7APh+DC ZThEirgAQOEO3iCZ6tj3Vr31sMsmrG+dnZhDtbLJx8Wi3o=</latexit> <latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">A B3XicdVC7TgJBFL2L 8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG0 2mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6m uBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCD UTVKm6 8S6OaRScyZwlGk CmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWT hzqJIDoi46 kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/b sXJlYowR p2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbM rKdPhgWNVg= </latexit> <latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">A B3XicdVC7TgJBFL2L 8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG0 2mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6m uBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCD UTVKm6 8S6OaRScyZwlGk CmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWT hzqJIDoi46 kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/b sXJlYowR p2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbM rKdPhgWNVg= </latexit> <latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">A B3XicdVC7TgJBFL2L 8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG0 2mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6m uBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCD UTVKm6 8S6OaRScyZwlGk CmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWT hzqJIDoi46 kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/b sXJlYowR p2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbM rKdPhgWNVg= </latexit> <latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">A B3XicdVC7TgJBFL2L 8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG0 2mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6m uBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCD UTVKm6 8S6OaRScyZwlGk CmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWT hzqJIDoi46 kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/b sXJlYowR p2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbM rKdPhgWNVg= </latexit> <latexit sha1_base64="3HkhEnNDHb92/BXAbRnIAIrc89M=">A B3XicdVDLSgMxFL2pr1pfVZdugkVwNcxYqboruH ZgmMLbamZN OGZh4kd4RSunWjuFL8JX/BvzF9uKiPA4HDOSfce26QKmnQdT9JbmV1bX0jv1nY2t7Z3SvuH9yZJN c+DxRiW4GzAglY+GjRCWaqRYsCpRoBMPrqd94ENrIJL7FUSo6EevHMpScoZXqpls eY47A/2flGCBWrf40e4lPItEjFwxY1qem2JnzDRKrsSk0M6MSBkfsr4Yz9ab0BMr9WiYaPtipDN1Kc iY0ZRYJMRw4H56U3Fv7xWhuFlZyzjNEMR8/mgMFMUEzrtSntSC45qZAnjWtoNKR8wzTjaixRsd cpV869skt/k+/q/plz5Xh1t1StLG6QhyM4hlPw4AKqcAM18IGDgCd4hTdyTx7JM3mZR3Nk8ecQlkDevwBaS4iZ</latexit>

wr wr wr

ww ww rw s s s

  • DSG(H) proscribes:

SNAPSHOT ISOLATION

  • Given a set of transactions T and their read states,

snapshot isolation holds if there exists execution e such that for all T in T

COMPLETE ∃s ∈ Se. ∧

e,T (s)

SNAPSHOT ISOLATION

  • Given a set of transactions T and their read states,

snapshot isolation holds if there exists execution e such that for all T in T

COMPLETE ∃s ∈ Se. ∧

e,T (s)

∆(s, sp) WT ∩ = ∅ ∧( )

slide-13
SLIDE 13

Read-Uncommitted

dirty reads: one transaction may see uncommitted state of another transaction

Read-Committed

no dirty reads or writes, but allows for non-repeatable reads

Repeatable Reads

non-repeatable range reads

It-That-Shall-Not-Be-Named

dirty writes - transaction modifies item previously modified by undecided transaction

Snapshot Isolation

none of the above, but write skew

PERFORMANCE VIA WEAKER ISOLATION GUARANTEES

Basically Available, Soft state, Eventually consistent

BASE

Transaction Guarantees

BASE Storage (e.g. put, get)

Implement Consistency

Storage Interface

Basically Available, Soft state, Eventually consistent

ACID Storage Application

BASE

Custom code for better performance Complexity gets quickly out of control

A CLASSIC HORROR STORY

Database Programmer

Ease

  • f

Programming Performance

Help!

slide-14
SLIDE 14

Transfer c ≥ $10? c := c-$10 s := s+$10 Transfer c ≥ $10? c := c-$10 s := s+$10

MORE CONCURRENCY !

Transfer

Part1 c ≥ $10? c := c-$10 Part2 s := s+$10

Transfer

Part1 c≥$10? c := c-$10 Part2 s := s+$10

Time

MORE COMPLEXITY!

Read c Read s Balance Transfer c ≥ $10? c := c-$10 s := s+$10

MORE COMPLEXITY!

Transfer

Read c Read s Balance Part1 c ≥ $10? c := c-$10 Part2 s := s+$10

Finer Isolation for one transaction may affect all transactions!

Performance vs Complexity

Better Performance More Interleavings Greater Complexity

slide-15
SLIDE 15

Vilfredo Pareto

NOT ALL TRANSACTIONS ARE CREATED EQUAL

  • Many transactions are

not run frequently

  • Many transactions

are lightweight

20% of the causes account for 80% of the effects

Performance vs Complexity

Better Performance More Interleavings Greater Complexity

Performance vs Complexity

More Interleavings selectively

Performance vs Complexity

More Interleavings selectively

slide-16
SLIDE 16

SALT

+

NOT ALL TRANSACTIONS ARE CREATED EQUAL

Use a flexible abstraction

Acid txn alkaline txn alkaline txn

slide-17
SLIDE 17

BASE transaction

alkaline txn alkaline txn

BASE TRANSACTION

Different Isolation guarantees for
 different types of transactions

Atomicity Durability

}

SALT ISOLATION

To ACID transactions: a single, monolithic ACID transaction To BASE transactions: a sequence of small ACID transactions

BASE WITH BASE

Fine Isolation granularity between BASE transactions

BASE 1 BASE 2 BASE BASE

BASE WITH ACID

ACID

Coarse Isolation granularity to ACID transactions

slide-18
SLIDE 18

HOW WELL DOES IT WORK ?

How does the performance of Salt compare to ACID? How much programming effort is required to get that performance?

PERFORMANCE GAIN

Latency (ms) 200 150 100 5 250 Fusion Ticket 1000 2000 3000 4000 5000 6000 7000 8000 Throughput (transactions/sec) ACID Salt

6.5x

Latency (ms) 2000 1500 1000 500 0 0 2000 4000 6000 8000 10000 12000 Throughput (transactions/sec) ACID Salt TPC-C

6.6X

Configuration

  • Emulab Cluster (Dell Power Edge R710)
  • 10 shards, 3-way replicated

Running on MYSQL Cluster

PROGRAMMING EFFORT VS PERFORMANCE

Fusion Ticket Throughput (transactions/sec) 10000 8000 6000 4000 2000 Number of BASE-ified transactions

ACID 1 2 Raw ops

… …

3 6.5x 7.2x

TPC-C Throughput (transactions/sec)

10000 8000 6000 4000 2000

Number of BASE-ified transactions

1 2 3 4 ACID BASE 12000

slide-19
SLIDE 19

Programming BASE transactions is still hard!

AND YET…

ACID

I

ACID

I

ACID

I

ACID

I

ACID

WHAT DO PROGRAMMERS WANT?

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

I

ACID

WE LOVE ACID

Use a flexible implementation

NOT ALL TRANSACTIONS ARE CREATED EQUAL

Use a flexible abstraction

slide-20
SLIDE 20

CALLAS

Uniform Abstraction Ease of Programming Uniformity Ease of Programming Conservative Mechanism Uniform Implementation

THE PRICE OF UNIFORMITY

MODULAR CONCURRENCY CONTROL

Cross-Group CC Implementation ACID Abstraction

Txn Txn Txn Txn Txn Txn

Insight 1: Decouple Abstraction and Implementation

Specialized in-group CC

MODULAR CONCURRENCY CONTROL

Cross-Group CC Implementation ACID Abstraction

Txn Txn Txn Txn Txn Txn

Insight 2: Separation of Concerns Limited Scope Aggressive Optimizations

Specialized in-group CC

slide-21
SLIDE 21

CORRECTNESS ACROSS GROUPS

Goal: No dependency cycles over all transactions

  • 1. No cycles within each group
  • 2. No cycles spanning multiple groups

Nexus locks

Never conflict for transactions in the same group Always conflict for transactions in different groups

(unless both reading)

Minimal interference with group-specific CC

ISOLATION ACROSS GROUPS A SUBTLE PROBLEM

Txn 1

W(A)

W(C) Txn 2

W(A)

W(B) Txn 3 W(B) W(C)

T1 T3 T2 Group 1 Group 2

A A B

Time

B C C

TRADITIONAL LOCKING

Txn 1

W(A)

W(C) Txn 2

W(A)

W(B)

T1 T3 T2

Txn 3 W(B) W(C)

Time

ties depends on to completes before C1 C2 C3

A A B B C C

slide-22
SLIDE 22

A SUBTLE PROBLEM

Txn 1

W(A)

W(C) Txn 2

W(A)

W(B) Txn 3 W(B) W(C)

T1 T3 T2 Group 1 Group 2

A A B

Time

B C C

A REFINEMENT A REFINEMENT

depends on T2 T1 T2 T1 completes cannot start before

Nexus Lock Release Order

release its nexus locks releases its nexus locks

ENFORCE LOCK RELEASE ORDER

Txn 1

W(A)

W(C) Txn 3 W(B) W(C)

T1 T3 T2

Time

C1

A C

Txn 2

W(A)

W(B)

A B B C

ISOLATION WITHIN GROUPS

Increase in-group concurrency while maintaining safety

slide-23
SLIDE 23

TRANSACTION CHOPPING

Txn 1 R(A) W(A) W(B) Txn 2 W(A) W(C) Txn1-1 R(A) W(A) Txn 2-2 W(B) Txn 2-1 W(A) Txn 2-2 W(C)

Static Analysis

Shasha et al. ’95

TRANSACTION CHOPPING

Txn 1 R(A) W(A) W(B) Txn 2 W(A) W(C)

Shasha et al. ’95

TRANSACTION CHOPPING

R(A) W(A) W(B) W(A) W(C)

s s s

c c

Shasha et al. ’95

No SC cycle among all transactions

TRANSACTION CHOPPING

R(A) W(A) W(B)

s

c

W(A) W(C)

s

+MCC: within each group

Shasha et al. ’95

slide-24
SLIDE 24

SELF CONFLICT

Txn 1

W(A) W(B) W(C)

Txn 1’

W(A) W(B) W(C)

c c c

W(A) W(B) W(C)

s s

W(A) W(B) W(C)

s s

W(A) W(B) W(C) W(A) W(B) W(C)

c

SELF CONFLICT A NEW CC MECHANISM: RUNTIME PIPELINING

c c c

W(A) W(B) W(C)

s s

W(A) W(B) W(C)

s s

W(A) W(B) W(C) W(A) W(B) W(C)

RUNTIME PIPELINING

c c c

W(A) W(B) W(C)

s s

W(A) W(B) W(C)

s s

W(A) W(B) W(C) W(A) W(B) W(C)

Accurate Detection

slide-25
SLIDE 25

RUNTIME PIPELINING

W(C) R(B) R(D) W(A)

T1 T2

R(A) R(B) W(B) W(C) W(C) R(B) R(D) W(A)

T1 T2

R(A) R(B) W(B) W(C) dep

HOW TO GROUP

tx

txn

txn txn txn txn txn tx tx tx tx

txn txn txn txn

Default Group Group 1 Group 2

HOW WELL DOES IT WORK?

This talk…

End-to-end performance

…but of course there’s more

What are the relative merits

  • f Callas’ various
  • ptimizations?

What is the overhead

  • f nexus locks?

What is the effect of using different groupings?

CALLAS PERFORMANCE

Throughput (transactions/sec)

20000 16000 12000 8000 4000

TPC-C Fusion Ticket 3

MySQL Cluster TC TC+MCC Callas Salt Salt Callas TC+MCC MySQL Cluster TC

slide-26
SLIDE 26

BENEFIT OVER ACID BASELINE

Throughput (transactions/sec)

20000 16000 12000 8000 4000

TPC-C Fusion Ticket 3

MySQL Cluster TC TC+MCC Callas Salt Salt Callas TC+MCC TC MySQL Cluster

TRANSACTION CHOPPING

Throughput (transactions/sec)

20000 16000 12000 8000 4000

TPC-C Fusion Ticket 3

MySQL Cluster TC TC+MCC Callas Salt Salt Callas TC+MCC TC MySQL Cluster

TRANSACTION CHOPPING + MCC

Throughput (transactions/sec)

20000 16000 12000 8000 4000

TPC-C Fusion Ticket 3

MySQL Cluster TC TC+MCC Callas Salt Salt Callas TC+MCC TC MySQL Cluster

CALLAS: MCC + RUNTIME PIPELINING

Throughput (transactions/sec)

20000 16000 12000 8000 4000

TPC-C Fusion Ticket 3

MySQL Cluster TC TC+MCC Callas Salt Salt Callas TC+MCC TC MySQL Cluster

slide-27
SLIDE 27

WITHIN 5% OF SALT

Throughput (transactions/sec)

20000 16000 12000 8000 4000

TPC-C Fusion Ticket 3

MySQL Cluster SC Cycle SC+Grouping Callas Salt Salt Callas SC+Grouping SC Cycle MySQL Cluster

CONCLUSION

Cross-Group CC

Implementation

ACID Abstraction

txn tx tx tx tx tx