Top Banner
Eris: Coordination-Free Consistent Transactions Using In-Network Concurrency Control Jialin Li, Ellis Michael, Dan R. K. Ports
110

Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Jul 04, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Eris: Coordination-Free Consistent Transactions Using

In-Network Concurrency ControlJialin Li, Ellis Michael, Dan R. K. Ports

Page 2: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Web services and applications rely on distributed storage systems

Page 3: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Web services and applications rely on distributed storage systems

Page 4: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Web services and applications rely on distributed storage systems

Page 5: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Web services and applications rely on distributed storage systems

Page 6: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Web services and applications rely on distributed storage systems

Page 7: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Partitioned for Scalability, Replicated for Availability

Page 8: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Partitioned for Scalability, Replicated for Availability

Page 9: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Partitioned for Scalability, Replicated for Availability

Page 10: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Shard 3

Client

Shard 1

Shard 2

Existing transactional systems: extensive coordination

Page 11: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Shard 3

Client

Shard 1

Shard 2

req prepare ok commit

Existing transactional systems: extensive coordination

Page 12: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Shard 3

Client

Shard 1

Shard 2

req prepare ok commit

Existing transactional systems: extensive coordination

Page 13: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Shard 3

Client

Shard 1

Shard 2

req prepare ok commit

Existing transactional systems: extensive coordination

Page 14: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

• Processes independent transactions without coordination in the normal case

• Performance within 3% of a nontransactional, unreplicated system on TPC-C

• Strongly consistent, fault tolerant transactions with minimal performance penalties

In this talk … Eris

Page 15: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Key Contributions

A new architecture that divides the responsibility for transactional guarantees in a new way

…leveraging the datacenter network to order messages within and across shards

…and a co-designed transaction protocol with minimal coordination.

Page 16: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Traditional Layered Approach

Atomic Commitment (2PC)

Concurrency Control (2PL)

Concurrency Control (2PL)

Replication (Paxos)

Replica Replica

Replica

Replication (Paxos)

Replica Replica

Replica

Page 17: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Traditional Layered Approach

Atomic Commitment (2PC)

Concurrency Control (2PL)

Concurrency Control (2PL)

Replication (Paxos)

Replica Replica

Replica

Replication (Paxos)

Replica Replica

Replica

Ordering (within shard)

Reliability (within shard)

Page 18: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Isolation

Traditional Layered Approach

Atomic Commitment (2PC)

Concurrency Control (2PL)

Concurrency Control (2PL)

Replication (Paxos)

Replica Replica

Replica

Replication (Paxos)

Replica Replica

Replica

Ordering (within shard)

Reliability (within shard)

Page 19: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Ordering (across shard)

Isolation

Traditional Layered Approach

Atomic Commitment (2PC)

Concurrency Control (2PL)

Concurrency Control (2PL)

Replication (Paxos)

Replica Replica

Replica

Replication (Paxos)

Replica Replica

Replica

Ordering (within shard)

Reliability (within shard)

Reliability (across shards)

Page 20: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Ordering (across shard)

Isolation

Traditional Layered Approach

Ordering (within shard)

Reliability (within shard)

Reliability (across shards)

Page 21: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Ordering (across shard)

Isolation

Traditional Layered Approach

Ordering (within shard)

Reliability (within shard)

Reliability (across shards)

Multi-sequencing

Independent Transaction Protocol

General Transaction Protocol

Eris

A new way to divide the responsibilities for different guarantees

Page 22: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Ordering (across shard)

Isolation

Traditional Layered Approach

Ordering (within shard)

Reliability (within shard)

Reliability (across shards)

Multi-sequencing

Independent Transaction Protocol

General Transaction Protocol

Eris

ApplicationNetwork

A new way to divide the responsibilities for different guarantees

Page 23: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Outline

1. Introduction

2. In-Network Concurrency Control

3. Transaction Model

4. Eris Protocol

5. Evaluation

Page 24: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

In-Network Concurrency Control Goals

• Globally consistent ordering across messages delivered to multiple destination shards

• No reliable delivery guarantee

• Recipients can detect dropped messages

Page 25: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

T1(ABC)

T1(ABC)

T1(ABC)

T2(AB)

T2(AB)

Page 26: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

T1(ABC)

T1(ABC)

T1(ABC)

T2(AB)

T2(AB)

Page 27: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

T1(ABC)

T1(ABC)

T1(ABC)

T2(AB)

T2(AB)

Page 28: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

T1(ABC)

T1(ABC)

T2(AB)

T2(AB)

Page 29: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

T1(ABC)

T1(ABC)

T2(AB)

T2(AB)

DROP

Page 30: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

T1(ABC)

T1(ABC)

T2(AB)

T2(AB)

DROPT1(ABC)

Page 31: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

T2(AB)T2

(AB)

T2(AB)T2

(AB)

T1(ABC)T1

(ABC)

T1(ABC)T1

(ABC)

T1(ABC)T1

(ABC)

A

B

C

Receivers

T1(ABC)

T1(ABC)

T2(AB)

T2(AB)

DROPT1(ABC)

Page 32: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Multi-Sequenced Groupcast

• Groupcast: message header specifies a set of destination multicast groups

• Multi-sequenced groupcast: messages are sequenced atomically across all recipient groups

• Sequencer keeps a counter for each group

• Extends OUM in NOPaxos [OSDI ’16]

Page 33: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0

Page 34: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

T1 (ABC)

Counter: A0 B0 C0

Page 35: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

T1 (ABC)

Counter: A0 B0 C0

Page 36: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

T1 (ABC)

Counter: A0 B0 C0A1 B1 C1

Page 37: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1 B1 C1

Page 38: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

Page 39: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

T2(AB)

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

Page 40: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

T2(AB)

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

Page 41: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

T2(AB)

A2 B2 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

Page 42: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

A2 B2 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T2 (AB)

A2 B2

Page 43: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

A2 B2 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T2(AB)

A2B2

T2(AB)

A2 B2

Page 44: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

A2 B2 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T2(AB)

A2 B2

Page 45: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

A2 B2 C1

T3(A)

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T2(AB)

A2 B2

Page 46: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

A2 B2 C1

T3(A)

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T2(AB)

A2 B2

Page 47: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

A2 B2 C1

T3(A)

A3 B2 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T2(AB)

A2 B2

Page 48: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

A2 B2 C1A3 B2 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T2(AB)

A2 B2

T3(A)

A3

Page 49: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

A2 B2 C1A3 B2 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T2(AB)

A2 B2

T3(A)

A3

Page 50: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

A2 B2 C1A3 B2 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T2(AB)

A2 B2

T3(A)

A3

Page 51: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

A

B

C

Receivers

Sequencer

Counter: A0 B0 C0A1 B1 C1

T1 (ABC)

A1B1 C1

A2 B2 C1A3 B2 C1

DROP

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T2(AB)

A2 B2

T3(A)

A3

Page 52: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Network Implementation

• Groupcast routing using OpenFlow

• Sequencer implementations:

✤ Programmable switches, written in P4

✤ Middlebox prototype using network processors

• Global epoch number for sequencer failures

Page 53: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

What have we accomplished so far?

• Consistently ordered groupcast primitive with drop detection

• How do we go from multi-sequenced groupcast to transactions?

Page 54: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Outline

1. Introduction

2. In-Network Concurrency Control

3. Transaction Model

4. Eris Protocol

5. Evaluation

Page 55: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Transaction ModelEris supports two types of transactions

• Independent transactions:

✤ One-shot (stored procedures)

✤ No cross-shard dependencies

✤ Proposed by H-Store [VLDB ’07] and Granola [ATC ’12]

• Fully general transactions

Page 56: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Independent Transaction

Name SalaryAlice 600

Name SalaryBob 350

Name SalaryCharlie 400

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

Page 57: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Independent Transaction

Name SalaryAlice 600

Name SalaryBob 350

Name SalaryCharlie 400

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

Page 58: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Independent Transaction

Name SalaryAlice 600

Name SalaryBob 350

Name SalaryCharlie 400

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

Name SalaryBob 450

Name SalaryCharlie 500

Page 59: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Independent Transaction

Name SalaryAlice 600

Name SalaryBob 350

Name SalaryCharlie 400

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

Name SalaryBob 450

Name SalaryCharlie 500

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE 500 < (SELECT AVG(t2.Salary) FROM tb t2) COMMIT

Page 60: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Independent Transaction

Name SalaryAlice 600

Name SalaryBob 350

Name SalaryCharlie 400

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

Name SalaryBob 450

Name SalaryCharlie 500

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE 500 < (SELECT AVG(t2.Salary) FROM tb t2) COMMIT

Not In

depend

ent!

Page 61: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Independent Transaction

Name SalaryAlice 600

Name SalaryBob 350

Name SalaryCharlie 400

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

Name SalaryBob 450

Name SalaryCharlie 500

Page 62: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Independent Transaction

Name SalaryAlice 600

Name SalaryBob 350

Name SalaryCharlie 400

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

START TRANSACTIONUPDATE tb t1 SET t1.Salary = t1.Salary + 100 WHERE t1.Salary < 500 COMMIT

Name SalaryBob 450

Name SalaryCharlie 500

Many applications consist entirely of independent transactions (e.g. TPC-C)

Page 63: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Why independent transactions?

• No coordination/communication across shards

• Executing them serially at each shard in a consistent order guarantees serializability

• Multi-sequenced groupcast establishes such an order

• How to handle message drops and sequencer/server failures?

Page 64: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Outline

1. Introduction

2. In-Network Concurrency Control

3. Transaction Model

4. Eris Protocol

5. Evaluation

Page 65: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Shard 3

Client

Shard 1

Shard 2

Sequencer

Normal Case

Learner

Learner

Learner

Replica

Replica

Replica

Replica

Replica

Replica

Page 66: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Shard 3

Client

Shard 1

Shard 2

Sequencer

Normal Case

Learner

Learner

Learner

Replica

Replica

Replica

Replica

Replica

Replica

Page 67: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Shard 3

Client

Shard 1

Shard 2

Sequencer

Normal Case

Learner

Learner

Learner

Replica

Replica

Replica

Replica

Replica

Replica

Page 68: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Shard 3

Client

Shard 1

Shard 2

Sequencer

Normal Case

Learner

Learner

Learner

Replica

Replica

Replica

Replica

Replica

Replica

Page 69: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Shard 3

Client

Shard 1

Shard 2

Sequencer

Normal Case

Learner

Learner

Learner

Replica

Replica

Replica

Replica

Replica

Replica

Page 70: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Shard 3

Client

Shard 1

Shard 2

Sequencer

1 round trip

Normal Case

Learner

Learner

Learner

Replica

Replica

Replica

Replica

Replica

Replica

Page 71: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Shard 3

Client

Shard 1

Shard 2

Sequencer

1 round trip

nocoordination

Normal Case

Learner

Learner

Learner

Replica

Replica

Replica

Replica

Replica

Replica

Page 72: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

How to handle dropped messages?A

B

C

DROP

T1 (ABC)

A1 B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1B1 C1

T3(A)

A3

Page 73: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

How to handle dropped messages?A

B

CT1

(ABC)

A1 B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1B1 C1

T3(A)

A3

Page 74: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

How to handle dropped messages?A

B

CT1

(ABC)

A1 B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1B1 C1

T2(AB)

A2 B2

T3(A)

A3

Page 75: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

How to handle dropped messages?A

B

CT1

(ABC)

A1 B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1B1 C1

T2(AB)

A2 B2

T3(A)

A3

Page 76: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

How to handle dropped messages?A

B

CT1

(ABC)

A1 B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1B1 C1

T2(AB)

A2 B2

T3(A)

A3

Page 77: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

How to handle dropped messages?A

B

CT1

(ABC)

A1 B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1B1 C1

T2(AB)

A2 B2

T3(A)

A3

Global coordination problem

Page 78: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

DROP

FailureCoordinator

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T2(AB)

A2 B2

Page 79: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

DROP

FailureCoordinator

Received A2?T1

(ABC)

A1B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T2(AB)

A2 B2

Page 80: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

DROP

FailureCoordinator

Received A2?Received A2?

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T2(AB)

A2 B2

Page 81: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

DROP

FailureCoordinator

Received A2?

Received A2?

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T2(AB)

A2 B2

Page 82: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

DROP

FailureCoordinator

Not Found

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T2(AB)

A2 B2

T2(AB)

A2 B2

Page 83: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

DROP

FailureCoordinator

Not Found

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T2(AB)

A2 B2

T2(AB)

A2 B2

Page 84: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

DROP

FailureCoordinator

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T3(A)

A3T2

(AB)

A2 B2

T2(AB)

A2 B2

Page 85: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

FailureCoordinator

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1C1

T1 (ABC)

A1 B1 C1

T3(A)

A3T2(AB)

A2B2

T2(AB)

A2 B2

Page 86: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

DROP

Received A2?

Received A2?

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T1 (ABC)

A1 B1C1

FailureCoordinator

Page 87: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

DROP

Not Found

Not Found

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T1 (ABC)

A1 B1C1

FailureCoordinator

Page 88: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

DROP

Not Found

Not Found

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T1 (ABC)

A1 B1C1

FailureCoordinator

Page 89: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

DROP

Drop A2

Drop A2

Drop A2

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T1 (ABC)

A1 B1C1

FailureCoordinator

Page 90: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

Drop A2

Drop A2

Drop A2

NOOP

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T1 (ABC)

A1 B1C1

FailureCoordinator

Page 91: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

The Failure CoordinatorA

B

C

Drop A2

Drop A2

Drop A2

NOOP

Drops: A2

Drops: A2

T1 (ABC)

A1B1 C1

T1 (ABC)

A1 B1 C1

T3(A)

A3

T1 (ABC)

A1 B1C1

FailureCoordinator

Page 92: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Designated Learner and Sequencer FailuresDesignated learner (DL) failure:

• View change based protocol

• Ensures new DL learns all committed transactions from previous views

Sequencer failure:

• Higher epoch number from the new sequencer

• Epoch change ensures all replicas across all shards start the new epoch in consistent states

Page 93: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Can we process non-independent transactions efficiently?

Page 94: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Can we process non-independent transactions efficiently?

Yes, by dividing them into multiple independent transactions

(See the paper!)

Page 95: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Outline

1. Introduction

2. In-Network Concurrency Control

3. Transaction Model

4. Eris Protocol

5. Evaluation

Page 96: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Evaluation Setup• 3-level fat-tree topology testbed

• 15 shards, 3 replicas per shard

• 2.5 GHz Intel Xeon E5-2680 servers

• Middlebox sequencer implementation using Cavium Octeon CN6880

• YCSB+T and TPC-C workloads

Page 97: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Comparison Systems

• Lock-Store (2PC + 2PL + Paxos)

• TAPIR [SOSP ’15]

• Granola [ATC ‘12]

• Non-transactional, unreplicated (NT-UR)

Page 98: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Eris performs well on independent transactions

Lock-Store TAPIR Granola Eris NT-UR0K

300K

600K

900K

1,200K

Distributed independent transactions

Thro

ughp

ut (t

xns/

sec)

Page 99: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Eris performs well on independent transactions

Lock-Store TAPIR Granola Eris NT-UR0K

300K

600K

900K

1,200K

Distributed independent transactions

Thro

ughp

ut (t

xns/

sec)

Eris outperforms Lock-Store, TAPIR and

Granola by more than 3X

Page 100: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Eris performs well on independent transactions

Lock-Store TAPIR Granola Eris NT-UR0K

300K

600K

900K

1,200K

Distributed independent transactions

Thro

ughp

ut (t

xns/

sec)

Eris achieves throughput within

10% of NT-UR

Eris outperforms Lock-Store, TAPIR and

Granola by more than 3X

Page 101: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Eris performs well on independent transactions

Lock-Store TAPIR Granola Eris NT-UR0K

300K

600K

900K

1,200K

Distributed independent transactions

Thro

ughp

ut (t

xns/

sec)

Eris achieves throughput within

10% of NT-UR

Eris outperforms Lock-Store, TAPIR and

Granola by more than 3X

More than 70% reduction in latency compared to Lock-Store, and within 10% latency of NT-UR

Page 102: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Eris also performs well on general transactions

Lock-Store TAPIR Granola Eris NT-UR0K

300K

600K

900K

1,200K

Distributed general transactions

Thro

ughp

ut (t

xns/

sec)

Page 103: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Eris also performs well on general transactions

Lock-Store TAPIR Granola Eris NT-UR0K

300K

600K

900K

1,200K

Distributed general transactions

Thro

ughp

ut (t

xns/

sec) Eris maintains

throughput within 10% of NT-UR

Page 104: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

0K

60K

120K

180K

240K

Lock-Store TAPIR Granola Eris NT-UR

TPC-C benchmark

Thro

ughp

ut (t

xns/

sec)

Eris excels at complex transactional application.

Page 105: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

0K

60K

120K

180K

240K

Lock-Store TAPIR Granola Eris NT-UR

TPC-C benchmark

Thro

ughp

ut (t

xns/

sec)

Eris excels at complex transactional application.

7.6X and 6.4X higher throughput than

Lock-Store and Tapir

Page 106: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

0K

60K

120K

180K

240K

Lock-Store TAPIR Granola Eris NT-UR

TPC-C benchmark

Thro

ughp

ut (t

xns/

sec)

Eris excels at complex transactional application.

7.6X and 6.4X higher throughput than

Lock-Store and Tapir

within 3% throughput of NT-UR

Page 107: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Eris is resilient to network anomalies

0K

450K

900K

1,350K

1,800K

0.01% 0.1% 1% 10%

Eris Lock-Store TAPIRGranola NT-UR

Packet Drop Rate

Thro

ughp

ut (t

xns/

sec)

Page 108: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Eris is resilient to network anomalies

0K

450K

900K

1,350K

1,800K

0.01% 0.1% 1% 10%

Eris Lock-Store TAPIRGranola NT-UR

Packet Drop Rate

TAPIRLock-Store

Eris

Granola

NT-UR

Thro

ughp

ut (t

xns/

sec)

Page 109: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Related WorkCo-designing distributed systems with the network

• NOPaxos [OSDI ‘16], Speculative Paxos [NSDI ‘15], NetPaxos [SOSR ‘15]

Sequencers for transaction processing

• Hyder [CIDR ‘11], vCorfu [NSDI ‘17], Calvin [SIGMOD ‘12]

Independent and other restricted transaction models

• H-Store [VLDB ‘07], Granola [ATC ‘12], Calvin [SIGMOD ‘12]

Page 110: Eris: Coordination-Free Consistent Transactions Using In ... · B1 C1 A2 B2 C1A3 B2 C1 DROP T1 (ABC) A1 B1 C1 T1 (ABC) A1 B1 C1 T2 (AB) A2 B2 T3 (A) A3. Network Implementation

Conclusion• A new division of responsibility for transaction processing

✤ An in-network concurrency control mechanism that establishes a consistent order of transactions across shards

✤ An efficient protocol that ensures reliable delivery of independent transactions

✤ A general transaction layer atop independent transaction processing

• Result: strongly consistent, fault-tolerant transactions with minimal performance overhead