Scaling Uber's Real-time Market Platform

Preview:

Citation preview

SCALING UBER’S REALTIME MARKET PLATFORMQCON LONDON 2015

partners riders

dispatch

post trip processing

money

maps / ETA services

databases

partners riders

dispatch

post trip processing

money

maps / ETA services

databases

partners riders

dispatch

post trip processing

money

maps / ETA services

databases

partners riders

dispatch

post trip processing

money

maps / ETA services

databases

partners riders

dispatch

post trip processing

money

maps / ETA services

databases

MICROSERVICES

partners riders

dispatch

post trip processing

money

maps / ETA services

databases

partners riders

dispatch

post trip processing

money

maps / ETA services

databases

partners riders

dispatch

post trip processing

money

maps / ETA services

databases

partners riders

dispatch

post trip processing

money

maps / ETA services

databases

dispatch

post trip processing

money

maps / ETA services

databases

•1 rider, 1 vehicle

•Moving people

•Sharding by city

•MPOF

PROBLEMS

dispatch

post trip processing

money

maps / ETA services

databases

supply humans

demand humans

demandsupply

Dispatch

supply humans

demand humans

demandsupply

Dispatch

supply humans

demand humans

demandsupply

Dispatch

supply humans

demand humans

demandsupply

Dispatch

DISCO

supply humans

demand humans

demandsupply

Dispatch

DISCO

geo by supply geo by demandrouting / ETA

supply humans

demand humans

demandsupply

Dispatch

DISCO

geo by supply geo by demandrouting / ETA

demandsupply

Dispatch

DISCO

geo by supply geo by demandrouting / ETA

Source: Geometry on the Sphere: Google's S2 Library

Source: Geometry on the Sphere: Google's S2 Library

•reduce waiting

•reduce extra driving

•lowest overall ETAs

GOALS

D1 Pickup request S1 best ETA +8 mins

time

S1 pickup after 8 mins

time

S2 drop off +2 mins S2 ETA from drop off +1 min

D1 Pickup request S1 best ETA +8 mins

S1 pickup after 8 mins

time

D1 Pickup request S2 best ETA +3 mins

S2 pickup after 3 mins

time

S2 pickup D2

D1 Pickup request S2 best ETA +3 mins

D2 Pickup request S2 best ETA +1 mins

S2 pickup D1

S2 drop off D1

S2 drop off D2

demandsupply

Dispatch

DISCO

geo by supply geo by demandrouting / ETA

•performance

•forwarding

•language support

•proper pipelining

•checksums / tracing

•encapsulation

GOALS

AVAILABILITY

•everything retryable

•everything killable

•crash only

•small pieces

CULTURAL CHANGES

•no pairs

•kill everything

•even databases

load balancerservice A service B

load balancer

service A

service B

•overall latency ≥ latency of slowest component

•1ms avg, 1000ms p99

•use 1: 1% at least 1000ms

•use 100: 63% at least 1000ms

•1.0 - 0.99^100 = 0.634 = 63.4%

LATENCY

service A service B (1)

service B (2)

req 1, also B (2)

+5ms req 1, also B (1)

cancel req 1

DATACENTER FAILURE

partner app dispatch DC1Location Updates

State Digest

dispatch DC2

Location UpdatesState Request

THANKS

Recommended