Architecting for Latency

25
Slide 1 © Copyright 2007, eBay, Inc. Dan Pritchett — Architecting for Latency Colorado Software Summit: October 21 – 26, 2007 Architecting for Latency Dan Pritchett eBay, Inc.

description

 

Transcript of Architecting for Latency

Page 1: Architecting for Latency

Slide 1

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency

Colorado Software Summit: October 21 – 26, 2007

Architecting for Latency

Dan Pritchett

eBay, Inc.

Page 2: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 2

Colorado Software Summit: October 21 – 26, 2007

Agenda

What causes latency?

Why consider it during architecture?

What are the challenges with latency?

What are the solutions?

Page 3: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 3

Colorado Software Summit: October 21 – 26, 2007

Geographic Realities

Business Continuity (i.e. DisasterRecovery)

Best practices dictate diversity of

• Geographies

• Networks

• Power

Continuity models

• Active/Passive

• Active/Active

Page 4: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 4

Colorado Software Summit: October 21 – 26, 2007

Global Markets

Internet has created a global economy

Global trade overtaking domestic trade

Corresponding infrastructures alsoadapting (shipping, tariffs, etc.)

Network latency from customers toservices is a reality

Demand for distributed services growing

• Shifts latency to architectures away fromcustomers.

Page 5: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 5

Colorado Software Summit: October 21 – 26, 2007

US Latencies

ATL BOS MCI NYC SFO

ATL 3 36 33 24 76

BOS 33 2 43 9 74

MCI 35 52 2 39 49

NYC 26 9 40 3 77

SFO 78 74 48 78 2

Keynote Data, August 8, 2007

Page 6: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 6

Colorado Software Summit: October 21 – 26, 2007

Service Latency

Component A depends uponcomponent B

Client A invokes Service B

• A’s response time is

B’s processing time +

Latency of path between A and B

Availability

• System availability, product of

Availability of A

Availability of B

Page 7: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 7

Colorado Software Summit: October 21 – 26, 2007

Impact of Latency

Performance

Slower response times

Resources

Synchronous designs

• Increased thread and memory usage

Asynchronous designs

• Storage for queues

• Added processing

Page 8: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 8

Colorado Software Summit: October 21 – 26, 2007

Irrational Thoughts

Latency is the dark secret ofarchitecture

Often not well understood or evenconsidered

Which leads to the following irrationalthoughts…

Page 9: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 9

Colorado Software Summit: October 21 – 26, 2007

Irrational Thought #1

Latency can be ignored

Corollary to Distributed ComputingFallacies #2 (Latency is zero)

Reality

• Latency slows synchronous interactions

Worse case, latency exceeds processing

• Latency consumes critical resources

Longer response times = more threads, morememory

Difficult to tune typical request/responsearchitectures to cope with latency

Page 10: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 10

Colorado Software Summit: October 21 – 26, 2007

Irrational Thought #2

Predictability is necessary

Latency introduces variability

Variability is the antithesis of predictability

Reality

• Impossible to achieve predictability resultsfrom unpredictable inputs

• Complexity unavoidable when ignoring axioms.

Page 11: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 11

Colorado Software Summit: October 21 – 26, 2007

Irrational Thought #3

Persistent state is always consistent

Globally consistent state is impractical andunnecessary

Reality

• Multi-phase commits intolerant of latency

• Forcing consistency limits alternatives

Page 12: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 12

Colorado Software Summit: October 21 – 26, 2007

Architectural Tools

Loose deployment coupling

Focus on deployment, as well as interfaces

BASE

An alternative to ACID that scales acrosslatent paths.

Page 13: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 13

Colorado Software Summit: October 21 – 26, 2007

Coupling

What is coupling?

Causing A to depend upon B in such amatter that changes to B forces changesto A

Interface vs. Deployment

Interface defines functional couplings

Deployment defines the “ilities”

• Performance, availability, latency

Page 14: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 14

Colorado Software Summit: October 21 – 26, 2007

Deployment Decoupling

Why worry about deploymentcoupling?

Topologies become constrained

• Network topology becomes important

Hardware resources influence applications

• Small soldier vs. big soldier

In general, deployment becomes brittleand non-scalable.

Page 15: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 15

Colorado Software Summit: October 21 – 26, 2007

Synchronous Coupling

Synchronous dependencies are tightdeployment coupling

Availability

• A is down if B is down

Performance

• A is slow if B is slow

Scalability

• B must grow if A grows

Page 16: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 16

Colorado Software Summit: October 21 – 26, 2007

Asynchronous Decoupling

What if A can message B?

A’s availability is independent of B

• Caveat: Queues for B will obviously grow if B isunavailable

A’s performance is independent of B

A can scale independently of B

• Caveat: B obviously must be able to managearrival rate of A

But depending up on SLA’s, B can use off-peakcycles to catch up.

More flexibility in scaling A and B independently.

Page 17: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 17

Colorado Software Summit: October 21 – 26, 2007

Asynchronous Candidates

Prefer large to small components

Good

• Full text search integration

• Billing

• Payments

Poor

• Database access

Ideal candidates are any interfacesthat are primarily unidirectional.

Page 18: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 18

Colorado Software Summit: October 21 – 26, 2007

Asynchronous Integration

Messaging Systems

Variety of options

• Trade-off of:

Throughput

Latency

Reliability

Event architectures

Similar to messaging

Page 19: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 19

Colorado Software Summit: October 21 – 26, 2007

Messaging Features

Some features expensive, butnecessary?

Exactly once delivery• Is your application domain inherently

idempotent?

• Often less expensive in application domainthan messaging platform

Ordered delivery• Dependencies between events is generally

wrongSee Irrational Thought #2 (Predictability isnecessary)

Page 20: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 20

Colorado Software Summit: October 21 – 26, 2007

Event Architectures

Event Stream Processing (ESP)

Event streams processed by a SQL likelanguage

• Events are rows, attributes are columns

• Temporal and volume based sets

• Query results can be data sets or new events

Efficient approach for managinganalysis of large data streams

And provides loose deployment coupling.

Page 21: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 21

Colorado Software Summit: October 21 – 26, 2007

BASE

A latency tolerant alternative to ACID

Basically Available

Soft state

Eventually consistent

Derived from CAP Theorem

Pick two from below:

• Consistency

• Availability

• Partitioning

Page 22: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 22

Colorado Software Summit: October 21 – 26, 2007

ACID vs. BASE

ACID

Strong consistency

Pessimistic

Focus on commit

Isolation

Difficult schemaevolution

BASE

Weak consistency

Optimistic

Focus on availability

Best effort

Flexible schemaevolution

Approximate answersokay

Faster

Simpler

Page 23: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 23

Colorado Software Summit: October 21 – 26, 2007

BASE and Latency

Why does BASE help?

Free us of the irrational thoughts

• Best effort is not predictable

• Weak consistency is permitted

Pattern for partitioning

Inherent loose deployment coupling

Page 24: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 24

Colorado Software Summit: October 21 – 26, 2007

ACID vs. BASE, IllustratedBefore

2PC commit to DB1 and 2

• Client availabilitycoupled to both

• Latency on both pathscritical

After

Single commit to DB1

• Client only dependentupon DB1

Reconcile asynchronously

• Latency tolerant

• Decoupled availability

Before

After

Client

DB 1 DB 2

Client

DB 1DB 2

Reconcile

Page 25: Architecting for Latency

© Copyright 2007, eBay, Inc.

Dan Pritchett — Architecting for Latency Slide 25

Colorado Software Summit: October 21 – 26, 2007

Summary

Latency is real

Irrational thoughts lead to brittlearchitectures

Tools for architects

Asynchronous Integrations

• Messaging

• ESP

BASE

• White paper on BASE/CAP

http://citeseer.ist.psu.edu/544596.html