10: Design Uber/Lyft | Systems Design Interview Questions With Ex-Google SWE

10: Design Uber/Lyft | Systems Design Interview Questions With Ex-Google SWE

Jordan has no life

5 месяцев назад

10,424 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@TheTacoReview
@TheTacoReview - 04.02.2024 21:40

The capacity is off. Uber only did about 500M trips globally lasts year. If you’re using localization to load balance you can optimize for a population. Like NYC which only does about 600k trips a day.

You don’t need location checkins with the db on time scale, offload that to the client and only put it to the db on significant change in position.

Most modern dbs can process Haversian requests natively. If you really wanted to build your own you could work with arc seconds to find plane intersections and plot from there.

Ubers REST API code was dumped a few years back and it’s actually pretty simple. They have a lot of complexity around rate and surge 😮calculations.

They do have some proprietary routing and gps accuracy systems that I’m not aware of.

Good work.

Ответить
@bengillman1123
@bengillman1123 - 04.02.2024 00:16

Could anyone comment if they have been asked to compute the driver's exact route in an interview? Another great video Jordan, thanks! Looking forward to the Google Maps one

Ответить
@beyondlimits8159
@beyondlimits8159 - 01.02.2024 04:29

what do i do if i dont understand alotta this

Ответить
@prashlovessamosa
@prashlovessamosa - 29.01.2024 19:53

Great Explanation as always.

Ответить
@ingenieroriquelmecagardomo4067
@ingenieroriquelmecagardomo4067 - 29.01.2024 01:08

Clear and insightful video. However, i think it's inappropriate that you doxxed my wife's house ( Kate Upton ).

Ответить
@kaneezsk4405
@kaneezsk4405 - 29.01.2024 00:03

For using viterbi algorithm's as well, can we avoid the cross partition computation, by having all the location pings go to the same db partition? we will be tracking path only when ride is in progress right? i.e only after trip id is created, driver and rider are matched. so we want persistant data from that point. so we start writing the location pings to db instead of just redis. and all those pings could be to the trips db, which can be partitioned by trip id (or rider id) but not geohash id.. So there is no scenario where state is stored across partition?

Ответить
@kaneezsk4405
@kaneezsk4405 - 28.01.2024 23:58

I did not understand why you have to jump the websocket from 1 server to another server as the driver moves. we can have driver connect always to the same websocket server and the location is pinged through this websocket server onto redis. during redis writes we make sure driver id in old geohash partition is erased(could also have ttl for handling race conditions of not getting deleted) and new location in new partition is written

Ответить
@varshard0
@varshard0 - 28.01.2024 07:05

Regarding the trip distribution. When the service wait 5 seconds before sending the trip to the 2nd driver.
It's gonna have to sort drivers again every 5 second and exclude the 1st driver. How does this work?

I guess it's some kind of scoring system that will push the 1st driver down the rank.

Ответить
@varshard0
@varshard0 - 28.01.2024 06:43

Why is the ClaimedTrips table is needed?

I think that just the Trips table with a driver_id column should do the job.

Ответить