THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE...

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

Transcript of THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE...

Page 1: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

Lorenzo Alvisi

THE PIT AND THE PENDULUM

Performance

A CLASSIC HORROR STORY

Database Programmer

Ease of

Programming

Database Programmer

Ease of

ProgrammingPerformance

Ease of

ProgrammingPerformance

Database Programmer

Page 2: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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

TxnTxn

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 LevelProscribed PhenomenaDirty Read

Fuzzy Read Phantom

Read Uncommitted

Read Committed

Repeatable Read

(Anomaly) Serializable

Page 3: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

DIRTY READS

R(A)

R(B)

R(A)

W(A)

T1 T2

BEGIN

BEGIN

COMMIT

ABORT

A = 5

A = 12

A = 12W(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 READSA.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 = 12W(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)

Page 4: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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 locksShort predicate locks Long write locks

Locking Serializable

Long read locks (both) Long write locks

Long†: Released after transaction commitsShort*: Released after operation ends

Page 5: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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 locksShort predicate locks Long write locks

Locking Serializable

Long read locks (both) Long write locks

Long†: Released after transaction commitsShort*: Released after operation ends

still

DIRTY WRITES

W(A)

T1 T2

BEGIN

BEGIN

COMMIT

COMMIT

A = 10W(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 = 10W(B)

W(B) B = 15

ANSI isolation levels should include

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

Page 6: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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 commitsShort*: 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 operations 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

Page 7: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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

or

GENERALIZED ISOLATION DEFINITIONS

• Executions modeled as histories‣ a partial order of read/write operations that respects

order of operations in each transaction ‣ a total order << of object versions created by

committed transactions

Adya et al, SIGMOD ‘95

Page 8: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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)

Tis�! Tj : ci < sj

}Tiww��! Tj

Tiwr��! Tj

Tirw��! 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 T2ww

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 T3T1

wr<latexit sha1_base64="5lgCNYoEvSuUCWWv76le0GQx+h0=">AAAB3nicdVDLTgJBEOzFF+IL9ehlIjHxtNkVg3qSxItHNK6QAMHZYRYmzD4y06shhLMXDSeN3+PJX/Az/AMH0AM+KumkUlWd6Ro/kUKj47xbmbn5hcWl7HJuZXVtfSO/uXWt41Qx7rFYxqrmU82liLiHAiWvJYrT0Je86vfOxn71list4ugK+wlvhrQTiUAwika6vFOtfMG1nQnI/6Rw+vE6ugGASiv/1mjHLA15hExSreuuk2BzQBUKJvkw10g1Tyjr0Q4fTO4bkj0jtUkQKzMRkok6k6Oh1v3QN8mQYlf/9MbiX149xeC4ORBRkiKP2PShIJUEYzIuS9pCcYaybwhlSpgLCetSRRmaL8mZ6o5dLB26RYf8Jt/VvQP7xHYvnEK5BFNkYQd2YR9cOIIynEMFPGAQwAM8wbNFrXvr0RpNoxnra2cbZmC9fALyLIv6</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="oQz48/yjCuf3H6Z5cROKYh6eUCg=">AAAB3nicdVDLSgMxFL1TX7W+qi7dBIvgashYqboruHFZxbGFtpRMmmlDMw+SO0opXbtRXCl+kr/g35g+XNTHgcDhnBPuPTdIlTRI6aeTW1peWV3Lrxc2Nre2d4q7e3cmyTQXPk9UohsBM0LJWPgoUYlGqgWLAiXqweBy4tfvhTYyiW9xmIp2xHqxDCVnaKWbB90pljyXTkH+JyWYo9YpfrS6Cc8iESNXzJimR1Nsj5hGyZUYF1qZESnjA9YTo+l+Y3JkpS4JE21fjGSqLuRYZMwwCmwyYtg3P72J+JfXzDA8b49knGYoYj4bFGaKYEImZUlXasFRDS1hXEu7IeF9phlHe5KCrU7dcuXUK1Pym3xX90/cC9e7pqVqZX6DPBzAIRyDB2dQhSuogQ8cQniCV3hzmPPoPDsvs2jOmf/ZhwU4718tcIkZ</latexit>

wr<latexit sha1_base64="5lgCNYoEvSuUCWWv76le0GQx+h0=">AAAB3nicdVDLTgJBEOzFF+IL9ehlIjHxtNkVg3qSxItHNK6QAMHZYRYmzD4y06shhLMXDSeN3+PJX/Az/AMH0AM+KumkUlWd6Ro/kUKj47xbmbn5hcWl7HJuZXVtfSO/uXWt41Qx7rFYxqrmU82liLiHAiWvJYrT0Je86vfOxn71list4ugK+wlvhrQTiUAwika6vFOtfMG1nQnI/6Rw+vE6ugGASiv/1mjHLA15hExSreuuk2BzQBUKJvkw10g1Tyjr0Q4fTO4bkj0jtUkQKzMRkok6k6Oh1v3QN8mQYlf/9MbiX149xeC4ORBRkiKP2PShIJUEYzIuS9pCcYaybwhlSpgLCetSRRmaL8mZ6o5dLB26RYf8Jt/VvQP7xHYvnEK5BFNkYQd2YR9cOIIynEMFPGAQwAM8wbNFrXvr0RpNoxnra2cbZmC9fALyLIv6</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="oQz48/yjCuf3H6Z5cROKYh6eUCg=">AAAB3nicdVDLSgMxFL1TX7W+qi7dBIvgashYqboruHFZxbGFtpRMmmlDMw+SO0opXbtRXCl+kr/g35g+XNTHgcDhnBPuPTdIlTRI6aeTW1peWV3Lrxc2Nre2d4q7e3cmyTQXPk9UohsBM0LJWPgoUYlGqgWLAiXqweBy4tfvhTYyiW9xmIp2xHqxDCVnaKWbB90pljyXTkH+JyWYo9YpfrS6Cc8iESNXzJimR1Nsj5hGyZUYF1qZESnjA9YTo+l+Y3JkpS4JE21fjGSqLuRYZMwwCmwyYtg3P72J+JfXzDA8b49knGYoYj4bFGaKYEImZUlXasFRDS1hXEu7IeF9phlHe5KCrU7dcuXUK1Pym3xX90/cC9e7pqVqZX6DPBzAIRyDB2dQhSuogQ8cQniCV3hzmPPoPDsvs2jOmf/ZhwU4718tcIkZ</latexit>

s<latexit sha1_base64="WoQu8beNs9O+s6/rb3O/5y4h/lY=">AAAB3XicdVDLTgJBEOzFF+IL9ehlIjHxtNkVg3qSxItHSFwhAQKzQy9MmH1kZtaEEK5eNHrR+D+e/AU/wz9wAD3go5JOKlXVma7xE8GVdpx3K7OwuLS8kl3Nra1vbG7lt3euVZxKhh6LRSzrPlUoeISe5lpgPZFIQ19gzR9cTPzaDUrF4+hKDxNshbQX8YAzqo1UVe18wbWdKcj/pHD+8frYAYBKO//W7MYsDTHSTFClGq6T6NaISs2ZwHGumSpMKBvQHo6m543JgZG6JIilmUiTqTqXo6FSw9A3yZDqvvrpTcS/vEaqg9PWiEdJqjFis4eCVBAdk0lX0uUSmRZDQyiT3FxIWJ9KyrT5kZyp7tjF0rFbdMhv8l3dO7LPbLfqFMolmCELe7APh+DCCZThEirgAQOEO3iCZ6tj3Vr31sMsmrG+dnZhDtbLJx8Wi3o=</latexit><latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">AAAB3XicdVC7TgJBFL2LL8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG002mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6mmuBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCDDUTVKm668S6OaRScyZwlGkkCmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWTThzqJIDoi466kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/bbsXJlYowRRp2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbMMMrKdPhgWNVg==</latexit><latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">AAAB3XicdVC7TgJBFL2LL8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG002mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6mmuBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCDDUTVKm668S6OaRScyZwlGkkCmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWTThzqJIDoi466kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/bbsXJlYowRRp2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbMMMrKdPhgWNVg==</latexit><latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">AAAB3XicdVC7TgJBFL2LL8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG002mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6mmuBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCDDUTVKm668S6OaRScyZwlGkkCmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWTThzqJIDoi466kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/bbsXJlYowRRp2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbMMMrKdPhgWNVg==</latexit><latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">AAAB3XicdVC7TgJBFL2LL8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG002mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6mmuBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCDDUTVKm668S6OaRScyZwlGkkCmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWTThzqJIDoi466kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/bbsXJlYowRRp2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbMMMrKdPhgWNVg==</latexit><latexit sha1_base64="3HkhEnNDHb92/BXAbRnIAIrc89M=">AAAB3XicdVDLSgMxFL2pr1pfVZdugkVwNcxYqboruHHZgmMLbamZNNOGZh4kd4RSunWjuFL8JX/BvzF9uKiPA4HDOSfce26QKmnQdT9JbmV1bX0jv1nY2t7Z3SvuH9yZJNNc+DxRiW4GzAglY+GjRCWaqRYsCpRoBMPrqd94ENrIJL7FUSo6EevHMpScoZXqplsseY47A/2flGCBWrf40e4lPItEjFwxY1qem2JnzDRKrsSk0M6MSBkfsr4Yz9ab0BMr9WiYaPtipDN1KcciY0ZRYJMRw4H56U3Fv7xWhuFlZyzjNEMR8/mgMFMUEzrtSntSC45qZAnjWtoNKR8wzTjaixRsddcpV869skt/k+/q/plz5Xh1t1StLG6QhyM4hlPw4AKqcAM18IGDgCd4hTdyTx7JM3mZR3Nk8ecQlkDevwBaS4iZ</latexit>

cycles consisting of write-write or 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

Page 9: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

ALL’S WELL? ALL’S WELL?

T1 T2

BEGINBEGIN

COMMITCOMMIT

W(X= 10)

W(Y= 90)

W(Y= 50)

W(X= 80)

T1 T2

BEGINBEGIN

COMMITCOMMIT

R(Y= 50)R(X = 10)

W(X = 90)

W(Y=80)

TheoryConflict Serializability

MySQL Community Edition

Multiversion SerializabilityRococo

Anomaly SerializabilityOracle 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

Page 10: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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: X0Y: Y0Z: Z0

X: X0Y: Y1Z: Z1

X: X0Y: Y2Z: Z1

A STATE-BASED DEFINITIONCrooks 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: X0Y: Y0Z: Z0

X: X0Y: Y1Z: Z1

X: X0Y: Y2Z: Z1

A STATE-BASED DEFINITION

A storage system guarantees a specific isolation level I if it can produce an execution (a sequence of 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: X0Y: Y0Z: Z0

X: X0Y: Y1Z: Z1

X: X0Y: Y2Z: Z1

X: X1Y: Y2Z: Z1

T0 T2 TSe

Page 11: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

PARENT STATES AND COMPLETE STATES

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

X: X0Y: Y0Z: Z0

X: X0Y: Y1Z: Z1

X: X0Y: Y2Z: Z1

X: X1Y: Y2Z: Z1

T0 T2 TSe

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: X0Y: Y0Z: Z0

X: X0Y: Y1Z: Z1

X: X0Y: Y2Z: Z1

X: X1Y: Y2Z: Z1

T0 T2 T

X: X0Y: Y0Z: Z0

X: X0Y: Y1Z: Z1

X: X0Y: Y2Z: Z1

T0 T2 TR(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: X0Y: Y0Z: Z0

X: X0Y: Y1Z: Z1

X: X0Y: Y2Z: Z1

X: X1Y: Y2Z: Z1

T0 T2 T

X: X0Y: Y0Z: Z0

X: X0Y: Y1Z: Z1

X: X0Y: Y2Z: Z1

T0 T2 TR(Z1)R(Y1)

Se

SERIALIZABILITY

Page 12: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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 T3T1

ww<latexit sha1_base64="9Im5UUolgAN5RROfcG25irxKxTU=">AAAB3nicdVDLTgJBEOzFF+IL9ehlIjHxtNlVg3qSxItHNK6QAMHZYRYmzD4y0yshhLMXDSeN3+PJX/Az/AMH0AM+KumkUlWd6Ro/kUKj47xbmbn5hcWl7HJuZXVtfSO/uXWj41Qx7rFYxqrqU82liLiHAiWvJorT0Je84nfPx37ljist4uga+wlvhLQdiUAwika66vWa+YJrOxOQ/0nh7ON1dAsA5Wb+rd6KWRryCJmkWtdcJ8HGgCoUTPJhrp5qnlDWpW0+mNw3JHtGapEgVmYiJBN1JkdDrfuhb5IhxY7+6Y3Fv7xaisFJYyCiJEUeselDQSoJxmRclrSE4gxl3xDKlDAXEtahijI0X5Iz1R37sHjkHjrkN/mu7h3Yp7Z76RRKRZgiCzuwC/vgwjGU4ALK4AGDAB7gCZ4tat1bj9ZoGs1YXzvbMAPr5RP5iYv/</latexit><latexit sha1_base64="gXwapw3M6Cp4F16cVswLZjF6R/Q=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV01qJUkNpZoXCEBQmaHWZgw+8jMXQkh1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza1rHSWKcZdFMlJVj2ouRchdFCh5NVacBp7kFa97NvYrN1xpEYVX2I95I6DtUPiCUTTSZa/XzOacgj0B+Z/kTt+fR/X8x0u5mX2ttyKWBDxEJqnWNceOsTGgCgWTfJipJ5rHlHVpmw8m9w3JnpFaxI+UmRDJRJ3J0UDrfuCZZECxo396Y/Evr5agf9wYiDBOkIds+pCfSIIRGZclLaE4Q9k3hDIlzIWEdaiiDM2XZEx1u3BQPHQObPKbfFd39wsnBefCzpWKMEUadmAX8uDAEZTgHMrgAgMf7uABHi1q3Vr31mgaTVlfO9swA+vpE2CHjds=</latexit><latexit sha1_base64="gXwapw3M6Cp4F16cVswLZjF6R/Q=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV01qJUkNpZoXCEBQmaHWZgw+8jMXQkh1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza1rHSWKcZdFMlJVj2ouRchdFCh5NVacBp7kFa97NvYrN1xpEYVX2I95I6DtUPiCUTTSZa/XzOacgj0B+Z/kTt+fR/X8x0u5mX2ttyKWBDxEJqnWNceOsTGgCgWTfJipJ5rHlHVpmw8m9w3JnpFaxI+UmRDJRJ3J0UDrfuCZZECxo396Y/Evr5agf9wYiDBOkIds+pCfSIIRGZclLaE4Q9k3hDIlzIWEdaiiDM2XZEx1u3BQPHQObPKbfFd39wsnBefCzpWKMEUadmAX8uDAEZTgHMrgAgMf7uABHi1q3Vr31mgaTVlfO9swA+vpE2CHjds=</latexit><latexit sha1_base64="gXwapw3M6Cp4F16cVswLZjF6R/Q=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV01qJUkNpZoXCEBQmaHWZgw+8jMXQkh1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza1rHSWKcZdFMlJVj2ouRchdFCh5NVacBp7kFa97NvYrN1xpEYVX2I95I6DtUPiCUTTSZa/XzOacgj0B+Z/kTt+fR/X8x0u5mX2ttyKWBDxEJqnWNceOsTGgCgWTfJipJ5rHlHVpmw8m9w3JnpFaxI+UmRDJRJ3J0UDrfuCZZECxo396Y/Evr5agf9wYiDBOkIds+pCfSIIRGZclLaE4Q9k3hDIlzIWEdaiiDM2XZEx1u3BQPHQObPKbfFd39wsnBefCzpWKMEUadmAX8uDAEZTgHMrgAgMf7uABHi1q3Vr31mgaTVlfO9swA+vpE2CHjds=</latexit><latexit sha1_base64="gXwapw3M6Cp4F16cVswLZjF6R/Q=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV01qJUkNpZoXCEBQmaHWZgw+8jMXQkh1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza1rHSWKcZdFMlJVj2ouRchdFCh5NVacBp7kFa97NvYrN1xpEYVX2I95I6DtUPiCUTTSZa/XzOacgj0B+Z/kTt+fR/X8x0u5mX2ttyKWBDxEJqnWNceOsTGgCgWTfJipJ5rHlHVpmw8m9w3JnpFaxI+UmRDJRJ3J0UDrfuCZZECxo396Y/Evr5agf9wYiDBOkIds+pCfSIIRGZclLaE4Q9k3hDIlzIWEdaiiDM2XZEx1u3BQPHQObPKbfFd39wsnBefCzpWKMEUadmAX8uDAEZTgHMrgAgMf7uABHi1q3Vr31mgaTVlfO9swA+vpE2CHjds=</latexit><latexit sha1_base64="loY2TxzbvySFTQbK9jPKOmw3ar0=">AAAB3nicdVDLSgMxFL1TX7W+qi7dBIvgashYqboruHFZxbGFtpRMmmlDMw+SO5ZSunajuFL8JH/BvzF9uPB1IHA454R7zw1SJQ1S+uHklpZXVtfy64WNza3tneLu3p1JMs2FzxOV6EbAjFAyFj5KVKKRasGiQIl6MLic+vV7oY1M4lscpaIdsV4sQ8kZWulmOOwUS55LZyD/kxIsUOsU31vdhGeRiJErZkzToym2x0yj5EpMCq3MiJTxAeuJ8Wy/CTmyUpeEibYvRjJTv+VYZMwoCmwyYtg3P72p+JfXzDA8b49lnGYoYj4fFGaKYEKmZUlXasFRjSxhXEu7IeF9phlHe5KCrU7dcuXUK1Pym3xV90/cC9e7pqVqZXGDPBzAIRyDB2dQhSuogQ8cQniEF3h1mPPgPDnP82jOWfzZh29w3j4BNM2JHg==</latexit>

wr<latexit sha1_base64="5lgCNYoEvSuUCWWv76le0GQx+h0=">AAAB3nicdVDLTgJBEOzFF+IL9ehlIjHxtNkVg3qSxItHNK6QAMHZYRYmzD4y06shhLMXDSeN3+PJX/Az/AMH0AM+KumkUlWd6Ro/kUKj47xbmbn5hcWl7HJuZXVtfSO/uXWt41Qx7rFYxqrmU82liLiHAiWvJYrT0Je86vfOxn71list4ugK+wlvhrQTiUAwika6vFOtfMG1nQnI/6Rw+vE6ugGASiv/1mjHLA15hExSreuuk2BzQBUKJvkw10g1Tyjr0Q4fTO4bkj0jtUkQKzMRkok6k6Oh1v3QN8mQYlf/9MbiX149xeC4ORBRkiKP2PShIJUEYzIuS9pCcYaybwhlSpgLCetSRRmaL8mZ6o5dLB26RYf8Jt/VvQP7xHYvnEK5BFNkYQd2YR9cOIIynEMFPGAQwAM8wbNFrXvr0RpNoxnra2cbZmC9fALyLIv6</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="oQz48/yjCuf3H6Z5cROKYh6eUCg=">AAAB3nicdVDLSgMxFL1TX7W+qi7dBIvgashYqboruHFZxbGFtpRMmmlDMw+SO0opXbtRXCl+kr/g35g+XNTHgcDhnBPuPTdIlTRI6aeTW1peWV3Lrxc2Nre2d4q7e3cmyTQXPk9UohsBM0LJWPgoUYlGqgWLAiXqweBy4tfvhTYyiW9xmIp2xHqxDCVnaKWbB90pljyXTkH+JyWYo9YpfrS6Cc8iESNXzJimR1Nsj5hGyZUYF1qZESnjA9YTo+l+Y3JkpS4JE21fjGSqLuRYZMwwCmwyYtg3P72J+JfXzDA8b49knGYoYj4bFGaKYEImZUlXasFRDS1hXEu7IeF9phlHe5KCrU7dcuXUK1Pym3xX90/cC9e7pqVqZX6DPBzAIRyDB2dQhSuogQ8cQniCV3hzmPPoPDsvs2jOmf/ZhwU4718tcIkZ</latexit>

wr<latexit sha1_base64="5lgCNYoEvSuUCWWv76le0GQx+h0=">AAAB3nicdVDLTgJBEOzFF+IL9ehlIjHxtNkVg3qSxItHNK6QAMHZYRYmzD4y06shhLMXDSeN3+PJX/Az/AMH0AM+KumkUlWd6Ro/kUKj47xbmbn5hcWl7HJuZXVtfSO/uXWt41Qx7rFYxqrmU82liLiHAiWvJYrT0Je86vfOxn71list4ugK+wlvhrQTiUAwika6vFOtfMG1nQnI/6Rw+vE6ugGASiv/1mjHLA15hExSreuuk2BzQBUKJvkw10g1Tyjr0Q4fTO4bkj0jtUkQKzMRkok6k6Oh1v3QN8mQYlf/9MbiX149xeC4ORBRkiKP2PShIJUEYzIuS9pCcYaybwhlSpgLCetSRRmaL8mZ6o5dLB26RYf8Jt/VvQP7xHYvnEK5BFNkYQd2YR9cOIIynEMFPGAQwAM8wbNFrXvr0RpNoxnra2cbZmC9fALyLIv6</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="wmU8E1cA4jstcm221QNSh70es60=">AAAB3nicdVC7TgJBFL2LL8QXamkzkZhQkV0xqJUkNpZoXCEBQmaHWZgw+8jMXQ0h1DYaKo3fo42/4GdY2DuAFvg4yU1Ozjk3c894sRQabfvNSs3NLywupZczK6tr6xvZza0rHSWKcZdFMlI1j2ouRchdFCh5LVacBp7kVa93Ovar11xpEYWX2I95M6CdUPiCUTTSxY1qZXNOwZ6A/E9yJ+/Po0b+46XSyr422hFLAh4ik1TrumPH2BxQhYJJPsw0Es1jynq0wweT+4Zkz0ht4kfKTIhkos7kaKB1P/BMMqDY1T+9sfiXV0/QP2oORBgnyEM2fchPJMGIjMuStlCcoewbQpkS5kLCulRRhuZLMqa6XSiWDpyiTX6T7+rufuG44JzbuXIJpkjDDuxCHhw4hDKcQQVcYODDHTzAo0WtW+veGk2jKetrZxtmYD19AlkqjdY=</latexit><latexit sha1_base64="oQz48/yjCuf3H6Z5cROKYh6eUCg=">AAAB3nicdVDLSgMxFL1TX7W+qi7dBIvgashYqboruHFZxbGFtpRMmmlDMw+SO0opXbtRXCl+kr/g35g+XNTHgcDhnBPuPTdIlTRI6aeTW1peWV3Lrxc2Nre2d4q7e3cmyTQXPk9UohsBM0LJWPgoUYlGqgWLAiXqweBy4tfvhTYyiW9xmIp2xHqxDCVnaKWbB90pljyXTkH+JyWYo9YpfrS6Cc8iESNXzJimR1Nsj5hGyZUYF1qZESnjA9YTo+l+Y3JkpS4JE21fjGSqLuRYZMwwCmwyYtg3P72J+JfXzDA8b49knGYoYj4bFGaKYEImZUlXasFRDS1hXEu7IeF9phlHe5KCrU7dcuXUK1Pym3xX90/cC9e7pqVqZX6DPBzAIRyDB2dQhSuogQ8cQniCV3hzmPPoPDsvs2jOmf/ZhwU4718tcIkZ</latexit>

s<latexit sha1_base64="WoQu8beNs9O+s6/rb3O/5y4h/lY=">AAAB3XicdVDLTgJBEOzFF+IL9ehlIjHxtNkVg3qSxItHSFwhAQKzQy9MmH1kZtaEEK5eNHrR+D+e/AU/wz9wAD3go5JOKlXVma7xE8GVdpx3K7OwuLS8kl3Nra1vbG7lt3euVZxKhh6LRSzrPlUoeISe5lpgPZFIQ19gzR9cTPzaDUrF4+hKDxNshbQX8YAzqo1UVe18wbWdKcj/pHD+8frYAYBKO//W7MYsDTHSTFClGq6T6NaISs2ZwHGumSpMKBvQHo6m543JgZG6JIilmUiTqTqXo6FSw9A3yZDqvvrpTcS/vEaqg9PWiEdJqjFis4eCVBAdk0lX0uUSmRZDQyiT3FxIWJ9KyrT5kZyp7tjF0rFbdMhv8l3dO7LPbLfqFMolmCELe7APh+DCCZThEirgAQOEO3iCZ6tj3Vr31sMsmrG+dnZhDtbLJx8Wi3o=</latexit><latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">AAAB3XicdVC7TgJBFL2LL8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG002mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6mmuBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCDDUTVKm668S6OaRScyZwlGkkCmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWTThzqJIDoi466kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/bbsXJlYowRRp2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbMMMrKdPhgWNVg==</latexit><latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">AAAB3XicdVC7TgJBFL2LL8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG002mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6mmuBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCDDUTVKm668S6OaRScyZwlGkkCmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWTThzqJIDoi466kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/bbsXJlYowRRp2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbMMMrKdPhgWNVg==</latexit><latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">AAAB3XicdVC7TgJBFL2LL8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG002mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6mmuBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCDDUTVKm668S6OaRScyZwlGkkCmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWTThzqJIDoi466kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/bbsXJlYowRRp2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbMMMrKdPhgWNVg==</latexit><latexit sha1_base64="p3L8L4+zcvVyUZH/FKE5E7jri7s=">AAAB3XicdVC7TgJBFL2LL8QXamkzkZhQbXbFoFaS2FhC4goJEJwdLjBh9pGZWRNCaG002mj8H238BT/Dwt4BtMDHSW5ycs65mXvGjwVX2nHerNTc/MLiUno5s7K6tr6R3dy6UFEiGXosEpGs+VSh4CF6mmuBtVgiDXyBVb9/OvarVygVj8JzPYixGdBuyDucUW2kimplc67tTED+J7mT9+f7Rv7jpdzKvjbaEUsCDDUTVKm668S6OaRScyZwlGkkCmPK+rSLw8l5I7JnpDbpRNJMqMlEncnRQKlB4JtkQHVP/fTG4l9ePdGdo+aQh3GiMWTThzqJIDoi466kzSUyLQaGUCa5uZCwHpWUafMjGVPdsQvFA7fgkN/ku7q3bx/bbsXJlYowRRp2YBfy4MIhlOAMyuABA4QbeIBH69K6tm6tu2k0ZX3tbMMMrKdPhgWNVg==</latexit><latexit sha1_base64="3HkhEnNDHb92/BXAbRnIAIrc89M=">AAAB3XicdVDLSgMxFL2pr1pfVZdugkVwNcxYqboruHHZgmMLbamZNNOGZh4kd4RSunWjuFL8JX/BvzF9uKiPA4HDOSfce26QKmnQdT9JbmV1bX0jv1nY2t7Z3SvuH9yZJNNc+DxRiW4GzAglY+GjRCWaqRYsCpRoBMPrqd94ENrIJL7FUSo6EevHMpScoZXqplsseY47A/2flGCBWrf40e4lPItEjFwxY1qem2JnzDRKrsSk0M6MSBkfsr4Yz9ab0BMr9WiYaPtipDN1KcciY0ZRYJMRw4H56U3Fv7xWhuFlZyzjNEMR8/mgMFMUEzrtSntSC45qZAnjWtoNKR8wzTjaixRsddcpV869skt/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

COMPLETE9s 2 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

COMPLETE9s 2 Se. ^ e,T (s)

�(s, sp) WT\ = ;^( )

Page 13: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

Read-Uncommitteddirty reads: one transaction may see uncommitted state of another transaction

Read-Committedno dirty reads or writes, but allows for non-repeatable reads

Repeatable Readsnon-repeatable range reads

It-That-Shall-Not-Be-Nameddirty writes - transaction modifies item previously modified by undecided transaction

Snapshot Isolationnone of the above, but write skew

PERFORMANCE VIA WEAKER ISOLATION GUARANTEES

Basically Available, Soft state, Eventually consistentBASE

Transaction GuaranteesBASE 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 of

ProgrammingPerformance

Help!

Page 14: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

Transfer

c ≥ $10?

c := c-$10

s := s+$10Transfer

c ≥ $10?

c := c-$10

s := s+$10

MORE CONCURRENCY !Transfer

Part1c ≥ $10?

c := c-$10

Part2s := s+$10

Transfer

Part1c≥$10?

c := c-$10

Part2s := s+$10

TimeMORE COMPLEXITY!

Read c

Read s

Balance

Transfer

c ≥ $10?

c := c-$10

s := s+$10

MORE COMPLEXITY!Transfer

Read c

Read s

Balance

Part1c ≥ $10?

c := c-$10

Part2s := s+$10

Finer Isolation for one transactionmay affect all transactions!

Performance vs Complexity

Better Performance

More Interleavings

Greater Complexity

Page 15: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

Vilfredo Pareto

NOT ALL TRANSACTIONS ARE CREATED EQUAL

• Many transactions are not run frequently

• Many transactions are lightweight

20% of the causesaccount for

80% of the effects

Performance vs Complexity

Better Performance

More Interleavings

Greater Complexity

Performance vs Complexity

More Interleavingsselectively

Performance vs Complexity

More Interleavingsselectively

Page 16: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

SALT

+

NOT ALL TRANSACTIONS ARE CREATED EQUAL

Use a flexible abstraction

Acid txn

alkaline txn

alkaline txn

Page 17: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

BASE transactionalkaline txn

alkaline txn

BASE TRANSACTION

Different Isolation guarantees fordifferent types of transactions

AtomicityDurability}

SALT ISOLATION

To ACID transactions:a single, monolithic ACID transaction

To BASE transactions:a sequence of small ACID transactions

BASE WITH BASE

Fine Isolation granularitybetween BASE transactions

BASE 1

BASE 2

BASEBASE

BASE WITH ACID

ACID

Coarse Isolation granularity to ACID transactions

Page 18: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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

Late

ncy

(ms)

200

150

100

5

0

250Fusion Ticket

0 1000 2000 3000 4000 5000 6000 7000 8000Throughput (transactions/sec)

ACIDSalt

6.5x

Late

ncy

(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

Thro

ughp

ut (t

rans

actio

ns/se

c) 10000

8000

6000

4000

2000

0

Number of BASE-ified transactionsACID 1 2 Raw ops

… …

3

6.5x 7.2x

TPC-C

Thro

ughp

ut (t

rans

actio

ns/se

c)

10000

8000

6000

4000

2000

0

Number of BASE-ified transactions1 2 3 4ACID BASE

12000

Page 19: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

Programming BASE transactions is still hard!

AND YET…

ACIDI

ACIDI

ACIDI

ACIDI

ACID

WHAT DO PROGRAMMERS WANT?

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI

ACIDI ACID

I

ACIDI

ACIDI

ACIDI

ACIDI

ACID

WE LOVE ACID

Use a flexible implementation

NOT ALL TRANSACTIONS ARE CREATED EQUAL

Use a flexible abstraction

Page 20: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

CALLAS

Uniform Abstraction

Ease of Programming

Uniformity

Ease of ProgrammingConservative 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

Specializedin-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

Specializedin-group CC

Page 21: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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 conflictfor transactions in the same group

Always conflictfor 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

T2Group 1

Group 2

AA

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)

Timeties depends on to completes before

C1

C2

C3

A

AB

B C

C

Page 22: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

A SUBTLE PROBLEM

Txn 1

W(A)

W(C)

Txn 2

W(A)

W(B) Txn 3

W(B)

W(C)

T1

T3

T2Group 1

Group 2

AA

B

Time

B C

C

A REFINEMENTA REFINEMENT

depends onT2 T1

T2 T1 completescannot 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

T2Time

C1

A

C

Txn 2

W(A)

W(B)A B

B

C

ISOLATION WITHIN GROUPS

Increase in-group concurrencywhile maintaining safety

Page 23: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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. ’95TRANSACTION 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

ss

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

Page 24: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

SELF CONFLICT

Txn 1

W(A)

W(B)

W(C)

Txn 1’

W(A)

W(B)

W(C)

c

c

cW(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

cW(A)

W(B)

W(C)

s

s

W(A)

W(B)

W(C)

s

sW(A)

W(B)

W(C)

W(A)

W(B)

W(C)

RUNTIME PIPELINING

c

c

cW(A)

W(B)

W(C)

s

s

W(A)

W(B)

W(C)

s

sW(A)

W(B)

W(C)

W(A)

W(B)

W(C)

Accurate Detection

Page 25: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

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 1Group 2

HOW WELL DOES IT WORK?

This talk…

End-to-endperformance

…but of course there’s more

What are therelative merits

of Callas’ variousoptimizations?

What is the overhead of nexus locks?

What is the effect of using

different groupings?

CALLAS PERFORMANCE

Thro

ughp

ut (t

rans

actio

ns/se

c) 20000

16000

12000

8000

4000

0TPC-C Fusion Ticket 3

MyS

QL

Clus

ter

TC

TC+M

CC

Calla

s

Salt

Salt

Calla

s

TC+M

CC

MyS

QL

Clus

ter

TC

Page 26: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

BENEFIT OVER ACID BASELINETh

roug

hput

(tra

nsac

tions

/sec) 20000

16000

12000

8000

4000

0TPC-C Fusion Ticket 3

MyS

QL

Clus

ter

TC

TC+M

CC

Calla

s

Salt

Salt

Calla

s

TC+M

CC

TCMyS

QL

Clus

ter

TRANSACTION CHOPPING

Thro

ughp

ut (t

rans

actio

ns/se

c) 20000

16000

12000

8000

4000

0TPC-C Fusion Ticket 3

MyS

QL

Clus

ter

TC

TC+M

CC

Calla

s

Salt

Salt

Calla

s

TC+M

CC

TCMyS

QL

Clus

ter

TRANSACTION CHOPPING + MCC

Thro

ughp

ut (t

rans

actio

ns/se

c) 20000

16000

12000

8000

4000

0TPC-C Fusion Ticket 3

MyS

QL

Clus

ter

TC

TC+M

CC

Calla

s

Salt

Salt

Calla

s

TC+M

CC

TCMyS

QL

Clus

ter

CALLAS: MCC + RUNTIME PIPELINING

Thro

ughp

ut (t

rans

actio

ns/se

c) 20000

16000

12000

8000

4000

0TPC-C Fusion Ticket 3

MyS

QL

Clus

ter

TC

TC+M

CC

Calla

s

Salt

Salt

Calla

s

TC+M

CC

TCMyS

QL

Clus

ter

Page 27: THE PIT AND THE PENDULUM - NUS Computer Science Research … · 2019. 1. 15. · THE PIT AND THE PENDULUM Performance A CLASSIC HORROR STORY Database Programmer Ease of Programming

WITHIN 5% OF SALTTh

roug

hput

(tra

nsac

tions

/sec) 20000

16000

12000

8000

4000

0TPC-C Fusion Ticket 3

MyS

QL

Clus

ter

SC C

ycle

SC+G

roup

ing

Calla

s

Salt

Salt

Calla

s

SC+G

roup

ing

SC C

ycle

MyS

QL

Clus

ter

CONCLUSION

Cross-Group CC

Implementation

ACID Abstraction

txn

tx

tx

tx

tx

tx