scaling uber's real-time market platform
Post on 08-Aug-2015
162 Views
Preview:
TRANSCRIPT
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
top related