Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy:...

106
Prophecy: Using History for HighThroughput Fault Tolerance Siddhartha Sen Joint work with Wyatt Lloyd and Mike Freedman Princeton University

Transcript of Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy:...

Page 1: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Prophecy: Using History for High‐Throughput Fault Tolerance

Siddhartha Sen

Joint work with Wyatt Lloyd and Mike Freedman

Princeton University

Page 2: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Non‐crash failures happenNon crash failures happen

Page 3: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Non‐crash failures happenNon crash failures happen

Model as Byzantine (malicious)(malicious)

Page 4: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Mask Byzantine faultsMask Byzantine faults

Clients Service

Page 5: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Mask Byzantine faultsMask Byzantine faults

ThroughputThroughput

R li t d i

Clients

Replicated service

Page 6: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Mask Byzantine faultsMask Byzantine faults

ThroughputThroughput

R li t d i

Clients

Replicated service

Page 7: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Mask Byzantine faultsMask Byzantine faults

ThroughputThroughput

R li t d i

Clients

Replicated service

Page 8: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Mask Byzantine faultsMask Byzantine faults

ThroughputThroughput

R li t d i

Clients

Replicated service

Page 9: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Mask Byzantine faultsMask Byzantine faults

ThroughputThroughput

Linearizability( t i t )(strong consistency)

R li t d i

Clients

Replicated service

Page 10: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Byzantine fault tolerance (BFT)Byzantine fault tolerance (BFT)

• Low throughputLow throughput

difi li• Modifies clients

• Long‐lived sessions

Page 11: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

ProphecyProphecy

• High throughput + good consistencyHigh throughput + good consistency

f l h• No free lunch:– Read‐mostly workloads

– Slightly weakened consistency

Page 12: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Byzantine fault tolerance (BFT)Byzantine fault tolerance (BFT)

• Low throughput D ProphecyLow throughput

difi li

D‐Prophecy

• Modifies clientsProphecy

• Long‐lived sessions

Page 13: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Traditional BFT readsTraditional BFT reads

applicationapplication

Clients

Replica Group

Page 14: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Traditional BFT readsTraditional BFT reads

applicationapplication

Agree?

Clients

Replica Group

Page 15: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

A cache solutionA cache solution

applicationcache application

Clients

Replica Group

Page 16: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

A cache solutionA cache solution

applicationcache application

Agree?

Clients

Replica Group

Page 17: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

A cache solutionA cache solution

applicationcache application

Problems:Agree?

• Huge cache• Invalidation

Clients

Invalidation

Replica Group

Page 18: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

A compact cacheA compact cache

applicationcache application

Requests Responses

req1 resp1

req2 resp2

Clients

req3 resp3

Replica Group

Page 19: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

A compact cacheA compact cache

applicationcache application

Requests Responses

sketch(req1) sketch(resp1)

sketch(req2) sketch(resp2)

Clients

sketch(req3) sketch(resp3)

Replica Group

Page 20: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

A sketcherA sketcher

applicationsketcher application

Clients

Replica Group

Page 21: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………

…………

Clients…………

Replica Group

Page 22: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………

…………

Clients…………

Replica Group

Page 23: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………

………………

Clients

……

…………

Replica Group

Page 24: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………Agree?  

………………

Clients

……

…………

Replica Group

Page 25: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………Agree?  

………………

Fast, load‐balanced reads

Clients

……

…………

Replica Group

Page 26: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………Agree?  

………………

Clients

……

…………

Replica Group

Page 27: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………

…………

Clients…………

Replica Group

Page 28: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………key‐value store

…………

replicated state machine

Clients…………

Replica Group

Page 29: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………

……………………

Clients…………

Replica Group

Page 30: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………

……………………

Clients…………

Replica Group

Page 31: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………

……………………

Clients…………

Replica Group

Page 32: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………Agree?  

………………

Clients

……

…………

Replica Group

Page 33: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………Agree?  

………………

Maintain a fresh cache

Clients

…… fresh cache

…………

Replica Group

Page 34: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Did hi li i bilit ?Did we achieve linearizability?

NO!

Page 35: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………

……………………

Clients…………

Replica Group

Page 36: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………

……………………

Clients…………

Replica Group

Page 37: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………Agree?  

…………

……

Clients

……

…………

Replica Group

Page 38: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………

……………………

Clients…………

Replica Group

Page 39: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………Agree?  

…………

……

Clients

……

…………

Replica Group

Page 40: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a readsketch webpage

…………Agree?  

…………

……

Fast reads may be stale

Clients

…… may be stale

…………

Replica Group

Page 41: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Load balancingLoad balancingsketch webpage

…………

…………

Clients…………

Replica Group

Page 42: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Load balancingLoad balancingsketch webpage

…………Agree?  

…………

…………

Clients…………

Replica Group

Page 43: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Load balancingLoad balancingsketch webpage

…………Agree?  

…………

………… Pr(k stale) = gk

Clients…………

Replica Group

Page 44: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

D‐Prophecy vs. BFTD Prophecy vs. BFT

Traditional BFT:• Each replica executes readp

• Linearizability

D‐Prophecy:• One replica executes read

Clients

• “Delay‐once” linearizabilityReplica Group

Page 45: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Byzantine fault tolerance (BFT)Byzantine fault tolerance (BFT)

• Low throughput D ProphecyLow throughput

difi li

D‐Prophecy

• Modifies clientsProphecy

• Long‐lived sessions

Page 46: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Key‐exchange overheadKey exchange overhead

Page 47: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Key‐exchange overheadKey exchange overhead

11%

Page 48: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Key‐exchange overheadKey exchange overhead

11%

3%

Page 49: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Internet servicesInternet services

CliClients

Replica Group

Page 50: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

A proxy solutionA proxy solution

Sketcher

Cli

Proxy

Clients

Replica Group

Page 51: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

A proxy solutionA proxy solution

C lid tConsolidate sketchers

Sketcher

Cli

Proxy

Clients

Replica Group

Page 52: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

A proxy solutionA proxy solution

C lid tConsolidate sketchers

Sketcher

CliClients

Replica Group

Page 53: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

A proxy solutionA proxy solution

Sk t h tSketcher must be fail‐stop

Sketcher

Cli dClients Trusted

Replica Group

Page 54: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

A proxy solution

Sketcher must be fail‐stop

A proxy solution

iddl b l dSketcher must be fail stop• Trust middlebox already• Small and simple

Sketcher

Cli dClients Trusted

Replica Group

Page 55: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a read

…………

……q ……Sketcher

Cli d

q

Clients Trusted

…………

Replica Group

Page 56: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a read

…………

…………

Sketcher

Cli dClients Trusted

…………

Replica Group

Page 57: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a read

…………

…………

Sketcher

Cli d

…………

Clients Trusted

…………

Replica Group

Page 58: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a read

…………

……

Sketcher……

Cli d

…………

Req Resp

( )

Clients Trusted

…………

s(q)

⋅⋅⋅ ⋅⋅⋅ Replica Group

Page 59: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a read

…………

…………

Sketcher

Cli dClients Trusted

…………

Replica Group

Page 60: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a read

…………

…………

Sketcher

Cli dClients Trusted

…………

Replica Group

Page 61: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a read

…………

…………

Sketcher

Cli d

…………

Clients Trusted

…………

Replica Group

Page 62: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a read

…………

…………

Sketcher

Cli d

…………

Clients Trusted

…………

Req Resp

( )

Replica Groups(q)

⋅⋅⋅ ⋅⋅⋅

Page 63: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Executing a readExecuting a read

…………

…………

Sketcher

Cli d

…………

Clients Trusted

…………

Req Resp

( )

Replica Groups(q)

⋅⋅⋅ ⋅⋅⋅

Page 64: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

ProphecyProphecy

…………

…………

Sketcher

Cli d

…………

Clients Trusted

…………

Replica Group

Page 65: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

ProphecyProphecy

…………

Fast, load‐balanced reads

…………

Sketcher

Cli d

…………

Clients Trusted

…………

Replica Group

Page 66: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

ProphecyProphecy

…………

Fast reads may be stale

…………

Sketcher

Cli d

…………

Clients Trusted

…………

Req Resp

( )

Replica Groups(q)

⋅⋅⋅ ⋅⋅⋅

Page 67: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Delay‐once linearizabilityDelay once linearizability

Page 68: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Delay‐once linearizabilityDelay once linearizability

Page 69: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Delay‐once linearizabilityDelay once linearizability

⟨W, R, W, W, R, R, W, R ⟩

Page 70: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Delay‐once linearizabilityDelay once linearizability

Read‐after‐write property

⟨W, R, W, W, R, R, W, R ⟩

Page 71: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Delay‐once linearizabilityDelay once linearizability

Read‐after‐write property

⟨W, R, W, W, R, R, W, R ⟩

Page 72: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Example applicationExample application

• Upload embarrassing photosUpload embarrassing photos1.  Remove colleagues from ACL  

2 Upload photos2.  Upload photos

3.  (Refresh)

• Weak may reorder

• Delay‐once preserves order

Page 73: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Byzantine fault tolerance (BFT)Byzantine fault tolerance (BFT)

• Low throughput D ProphecyLow throughput

difi li

D‐Prophecy

• Modifies clientsProphecy

• Long‐lived sessions

Page 74: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

ImplementationImplementation

• Modified PBFTModified PBFT– PBFT is stable, complete

Competitive with Zyzzyva et al– Competitive with Zyzzyva et. al.

• C++, Tamer async I/O– Sketcher: ∼2000 LOC– PBFT library: ∼1140 LOC– PBFT client: ∼1000 LOC

Page 75: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

EvaluationEvaluation

• Prophecy vs proxied‐PBFTProphecy vs. proxied PBFT– Proxied systems

• D‐Prophecy vs. PBFT– Non‐proxied systems

Page 76: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

EvaluationEvaluation

• Prophecy vs proxied‐PBFTProphecy vs. proxied PBFT– Proxied systems

• We will study:– Performance on “null” workloads– Performance on  null  workloads

– Performance with real replicated service

Where system bottlenecks how to scale–Where system bottlenecks, how to scale

Page 77: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Basic setupBasic setup

Sk t hSketcher

Clients (concurrent)Clients (100)

Replica Group (PBFT)

Page 78: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with
Page 79: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Fraction of failedFraction of failed fast reads

Page 80: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Fraction of failedAlexa top sites: Fraction of failed fast reads

Alexa top sites:< 15%

Page 81: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Small benefit on null readsSmall benefit on null reads

Page 82: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Small benefit on null readsSmall benefit on null reads

Page 83: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Apache webserver setupApache webserver setup

Sk t hSketcher

ClientsClients

Replica Group

Page 84: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Large benefit on real workloadLarge benefit on real workload

Page 85: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Large benefit on real workloadLarge benefit on real workload

3.7x

Page 86: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Large benefit on real workloadLarge benefit on real workload

3.7x

2.0x

Page 87: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Large benefit on real workloadLarge benefit on real workload

3.7x

2.0x

Page 88: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Benefit grows with workBenefit grows with work

Page 89: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Benefit grows with workBenefit grows with work

Page 90: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Benefit grows with workBenefit grows with work

Page 91: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Benefit grows with workBenefit grows with work94μs (Apache)

Page 92: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Benefit grows with workBenefit grows with work94μs (Apache)

Null workloads are misleading!are misleading!

Page 93: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Benefit grows with workBenefit grows with work

Page 94: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Single sketcher bottlenecksSingle sketcher bottlenecks

Page 95: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Single sketcher bottlenecksSingle sketcher bottlenecks

Page 96: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Scaling outScaling out

Page 97: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Scales linearly with replicasScales linearly with replicas

Page 98: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

SummarySummary

• Prophecy good for Internet servicesp y g– Fast, load‐balanced reads

• D Prophecy good for traditional services• D‐Prophecy good for traditional services

• Prophecy scales linearly while PBFT stays flatProphecy scales linearly while PBFT stays flat

• Limitations:– Read‐mostly workloads (meas. study corroborates)– Delay‐once linearizability (useful for many apps)

Page 99: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Thank You

Page 100: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Additional slides

Page 101: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

TransitionsTransitions

• Prophecy good for read‐mostly workloadsProphecy good for read mostly workloads

i i i i ?• Are transitions rare in practice?

Page 102: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Measurement studyMeasurement study

• Alexa top sitesAlexa top sites

• Access main page every 20 sec for 24 hrs

Page 103: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Mostly static contentMostly static content

Page 104: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Mostly static contentMostly static content

Page 105: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Mostly static contentMostly static content15%

Page 106: Using History for High Throughput Fault Tolerancemfreed/docs/prophecy-nsdi10-slides.pdfProphecy: Using History for High‐ Throughput Fault Tolerance Siddhartha Sen Joint work with

Dynamic contentDynamic content

• Rabin fingerprinting on transitionsRabin fingerprinting on transitions

• 43% differ by single contiguous change• 43% differ by single contiguous change

• Sampled 4000 of them, over half due to:– Load balancing directives– Random IDs in links, function parameters