43
Combining ACID and BASE in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University of Texas at Austin

Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

Combining ACID and BASE!in a distributed database

Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang,!Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan

Salt

The University of Texas at Austin

Page 2: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

Four properties in a single abstraction

• Ease of programming

• Easy to reason about

TRANSACTIONS ARE GREAT

Atomicity Consistency Isolation Durability (ACID)

Transaction

Page 3: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

TRANSACTIONS ARE GREAT

Concurrency control!limits performance

2PC protocol is costly

Txn Manager Data Nodes

Write(x)

Commit

Write(y)Phase 1

Phase 2

����

Page 4: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

THE ALTERNATIVE: BASE

Application

ACID Storage Transaction Guarantees

Storage Interface

Page 5: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

• Write custom code to get better performance

THE ALTERNATIVE: BASE

Application

BASE Storage (e.g., put, get)Storage Interface

Page 6: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

• Write custom code to get better performance

• Complexity gets out of control

THE ALTERNATIVE: BASE

Application

BASE Storage (e.g., put, get)

Application Implement Consistency

Storage Interface

Page 7: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

A STARK CHOICE

Performance

Ease of programming

Ease of programming & Performance

ACID

BASE

Page 8: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

20% of the causes!account for!

80% of the effects

Vilfredo Pareto

Page 9: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

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

Page 10: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

AN OPPORTUNITY

Txn 1 Txn 2•Identify critical transactions

•BASE-ify only critical transactions

BASE

Page 11: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

SALT

Motivation!

Base Transactions & Salt Isolation!

Achieving Salt Isolation!

Evaluation

Page 12: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

Transfer

Is c≥$10?

c=c-$10

s=s+$10

MORE CONCURRENCY !Transfer

Part1

Is c≥$10?

c=c-$10

Part2

s=s+$10

Page 13: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

Transfer

Is c≥$10?

c=c-$10

s=s+$10

Transfer

Is c≥$10?

c=c-$10

s=s+$10

MORE CONCURRENCY !Transfer

Part1

Is c≥$10?

c=c-$10

Part2

s=s+$10

Transfer

Part1

Is c≥$10?

c=c-$10

Part2

s=s+$10

Time

Page 14: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

Transfer

Is c≥$10?

c=c-$10

s=s+$10

CORRECTNESS AT RISK

Read c

Read s

Balance

Page 15: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

Part2

s=s+$10

Part1

Is c≥$10?

c=c-$10

CORRECTNESS AT RISKTransfer

Read c

Read s

BalanceExposed !

state

Page 16: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

Part2

s=s+$10

Finer Isolation for one transaction!may affect all transactions!!

Part1

Is c≥$10?

c=c-$10

CORRECTNESS AT RISK

Read c

Read s

Balance

Page 17: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

Performance vs Complexity

Better Performance

More Interleavings!

More Complexity

Page 18: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

Performance vs Complexity

Better Performance

Other Transactions Unaffected

More Interleavings !(only among perf-critical txns)

Page 19: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

s=s+$10

Is c≥$10?

c=c-$10

Behaves differently when interacting with different transactions

Balance

Read c

Read s

Transfer 2

Is c≥$10?

c=c-$10

s=s+$10

Transfer 1

Page 20: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

Balance

Read c

Read s

Time

Transfer 2

Is c≥$10?

c=c-$10

s=s+$10

Transfer 1

Is c≥$10?

c=c-$10

s=s+$10

Page 21: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

BASE TRANSACTIONBASE

transaction

alkaline txn

alkaline txn

Behaves differently when interacting with different transactions

Page 22: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

BASE INTERACT WITH BASE

Fine Isolation granularity!between BASE transactions

BASE 1

BASE 2

Page 23: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

BASE INTERACT WITH BASE

Fine Isolation granularity!between BASE transactions

Page 24: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

BASE

BASE INTERACT WITH ACID

ACID

BASE transactions provide coarse Isolation!granularity to ACID transactions

Page 25: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

BASE

BASE INTERACT WITH ACIDACID

BASE transactions provide coarse Isolation!granularity to ACID transactions

Page 26: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

SALT ISOLATION

Performance & Ease of Programming

BASE transactions: multiple granularities of Isolation

To ACID transactions:!a single, monolithic !ACID transaction

To BASE transactions:!a sequence of small !ACID transactions

Page 27: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

SALT

Motivation!

Base Transactions & Salt Isolation!

Achieving Salt Isolation!

Evaluation

Page 28: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

ONE MECHANISM

LOCKS

ACID locks!Alkaline locks!Saline locks

Three flavors

Page 29: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

ACID LOCKS

Lock Table

ACID 1

Write xAC-R AC-W

AC-R √ XAC-W X XACID 2

Read x

Execute

Page 30: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

LOCKS?

ACID

Rx

BASE

Rx

Execute

Execute

BASE

Wx

Page 31: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

LOCKS?

ACID

Rx

BASE

Rx

Execute

Execute

alkaline lock

saline lock

BASE

Wx

Page 32: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

ALKALINE LOCKS

AC-R AC-W alk-R alk-W

AC-R √ X √ XAC-W X X X Xalk-R √ X √ Xalk-W X X X X

ACID

Rx

BASE

Rx

Lock Table

alkaline lock

Wait Wait

BASE

Wx

Conflict with ACID & alkaline locks

Page 33: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

SALINE LOCKS

ACID

Rx

Wait

saline lock

AC-R AC-W alk-R alk-W sal-R sal-W

AC-R √ X √ X √ XAC-W X X X X X Xalk-R √ X √ Xalk-W X X X Xsal-R √ Xsal-W X X

Lock Table

AC-R AC-W alk-R alk-W sal-R sal-W

AC-R √ X √ X √ XAC-W X X X X X Xalk-R √ X √ X √ √alk-W X X X X √ √sal-R √ X √ √ √ √sal-W X X √ √ √ √

Lock Table

BASE

Wx

Conflict only with ACID locks

Page 34: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

A SUBTLE PROBLEM

ACID reads uncommitted value of x!

BASE

W x BASE

R x

y=x

ACID

R y

Dirty Read!

Page 35: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

A SUBTLE PROBLEM

For the solution, please read our paper

BASE

W x BASE

R x

y=x

ACID

R y

Dirty Read!

Page 36: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

THE BOTTOM LINE

Guarantee!

Salt prevents all ACID transactions from being affected by BASE transactions either directly or indirectly.

Page 37: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

SALT

Motivation!

Base Transactions & Salt Isolation!

Achieving Salt Isolation!

Evaluation

Page 38: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

What is the performance gain of Salt compared to ACID?

Can we get most performance gain compared to the BASE approach?

QUESTIONS TO ANSWER

Page 39: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

EXPERIMENTAL SETUPConfiguration!

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

Workloads!• TPC-C!• Fusion Ticket!• Microbenchmarks

Page 40: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

PERFORMANCE GAIN

250

Late

ncy

(ms) 200

150100

500

Fusion Ticket

0 1000 2000 3000 4000 5000 6000 7000 8000

Throughput (transactions/sec)

ACID Salt

6.5X

Page 41: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

REAP MOST PERFORMANCE OF BASEFusion Ticket

Thro

ughp

ut (t

rans

actio

ns/se

c) 100008000600040002000

0

Number of BASE-ified transactions

ACID 1 2 Raw ops

… …

3

6.5X 7.2X

Page 42: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

RELATED WORK

Optimizing ACID Performance!• H-Store, Granola, F1, Sagas, Transaction Chain, Calvin …!

!

BASE with enhanced semantics (e.g., partition local transactions)!• ElasTras, G-Store, Megastore …

Page 43: Salt - USENIX...Combining ACID and BASE! in a distributed database Chao Xie, Chunzhi Su, Manos Kapritsos, Yang Wang, ! Navid Yaghmazadeh, Lorenzo Alvisi, Prince Mahajan Salt The University

SALT

Key Abstraction!Base Transaction

Pain Point Transactional systems !

do not scale

Promising!Results