distributed systems in practice, in theory (scaleconf colombia)

Post on 11-Apr-2017

198 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Aysylu GreenbergMarch 25, 2017

Distributed Systems in Practice,in Theory

* 2

Aysylu Greenberg

* 3

Aysylu Greenberg

paperswelove.org

* 4

Aysylu Greenberg

@aysylu22

paperswelove.org

How I got into reading papers as a

practitioner in industry

Computer Science ResearchInDistributed Systems Industry

Operating systems research

Operating systems research

Operating systems research

Concurrency

Operating systems research

Concurrency

Concurrency primitives: mutex & semaphore

Operating systems research

Concurrency

Concurrency primitives: mutex & semaphore

Processes execute at different speeds

Time in distributed systems

https://www.flickr.com/photos/national_archives_of_norway/62633532281970

Time in distributed systems

1970https://www.flickr.com/photos/national_archives_of_norway/6263353228

https://www.flickr.com/photos/national_archives_of_norway/6263353228

Time in distributed systems

Pipelining

1970

Distributed consensus

1980https://www.flickr.com/photos/findyoursearch/6848657291

Distributed consensus

1980https://www.flickr.com/photos/findyoursearch/6848657291

Distributed consensus

1980https://www.flickr.com/photos/findyoursearch/6848657291

Distributed consensus

1980 Paxoshttps://www.flickr.com/photos/findyoursearch/6848657291

Reconsider large systems

Reconsider large systems

Shared infrastructure

...

CS Research is Timeless

Inform decisions

Mitigate technical risk

Today

● Staged Event-Driven Architecture

Today

● Staged Event-Driven Architecture● Leases

Today

● Staged Event-Driven Architecture● Leases● Inaccurate Computations

Today

● Staged Event-Driven Architecture● Leases● Inaccurate Computations

Staged Event Driven

Architecture&

Deep Pipelines

2001

Hardware to Data Pipelines

Hardware to Data Pipelines

https://en.wikipedia.org/wiki/Graphics_pipeline

Staged Event Driven Architecture

Staged Event Driven Architecture

+ -

Single-machine pipeline

generalizes to distributed pipelines

Staged Event Driven Architecture

Search Indexing Pipelines

Search Indexing Pipelines

Search Indexing Pipelines

Search Indexing Pipelines

Search Indexing Pipelines

Search Indexing Pipelines

Search Indexing Pipelines

Search Indexing Pipelines

+ -

Today

● Staged Event-Driven Architecture● Leases● Inaccurate Computations

Leasesas Heart Beat in

Distributed Systems

1989

Leases

● Distributed locking

Leases

● Distributed locking● Lease term tradeoffs

○ short

Leases

● Distributed locking● Lease term tradeoffs

○ short vs long

Leases

● Distributed locking● Lease term tradeoffs

○ short vs long● Use of leases in modern applications

○ Leader election

Leases

● Distributed locking● Lease term tradeoffs

○ short vs long● Use of leases in modern applications

○ Leader election○ Liveness detection

Build my sculpture

BoteroBuild

System

Build my sculpture

BoteroBuild

System

OK

Build my sculpture

BoteroBuild

System

OK

Waiting for the results

Build my sculpture

BoteroBuild

System

OK

Waiting for the results

Build is in progress

Build my sculpture

BoteroBuild

System

OK

Waiting for the results

Build is in progress

Waiting for the results

Build my sculpture

BoteroBuild

System

OK

Waiting for the results

Build is in progress

Waiting for the results

Build is finished

Leases in Build System

Leases in Build System

Leases in Build System

Leases in Build System

Leases in Build System

Leases in Build System

Leases for heartbeat:How long should the lease term be?

Today

● Staged Event-Driven Architecture● Leases● Inaccurate Computations

Inaccurate Computations&Serving Search Results

From Accurate to "Good Enough"

[Trade off] Inaccuracy for Performance

[In production]Inaccuracy for Performance & Resilience

Jeff Dean "Building Software Systems at Google and Lessons Learned", Stanford, 2010

[Designing with]Inaccuracy for Performance & Resilience

[Designing with]Inaccuracy for Performance & Resilience

simplified implementation

focus on observabilityapplicable to some problem domains

[Designing with]Inaccuracy for Performance & Resilience

fuzz testing

generative testing

simplified implementation

fault injection testing

focus on observabilityapplicable to some problem domains

References● F. Corbato, M. Daggett, R. Daley "An Experimental

Time-Sharing System"● E. Dijkstra "Cooperating Sequential Processes"● L. Lamport "Time, Clocks, and the Ordering of Events in a

Distributed System"● B. Oki, B. Liskov "Viewstamped Replication: A New Primary

Copy Method to Support Highly-Available Distributed Systems"● L. Lamport "The Part-Time Parliament"

References● M. Welsh, D. Culler, E. Brewer "SEDA: An Architecture for

Well-Conditioned, Scalable Internet Services"● C. Gray, D. Cheriton "Leases: An Efficient Fault-Tolerant

Mechanism for Distributed File Cache Consistency"● S. Agarwal, B. Mozafari et al. "BlinkDB: Queries with Bounded

Errors and Bounded Response Times on Very Large Data"

Robust & scalable pipelines

Robust & scalable pipelinesLeases for sharing &

heartbeat

Robust & scalable pipelinesLeases for sharing &

heartbeatInaccuracy for resilience &

performance

Robust & scalable pipelinesLeases for sharing &

heartbeatInaccuracy for resilience &

performance

CS research is timeless:use it to mitigate risk

Aysylu GreenbergMarch 25, 2017@aysylu22

Distributed Systems in Practice,in Theory

top related