由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - design uber这题到底怎么答!
相关主题
google 面经ASP.NET+SQL+C#是所谓的后端吗?
这两个设计题如何答?A家onsite的system design, 求大牛们说说自己的设计想法, 相信
Facebook system design来道A设计题大家头脑风暴一下
问一个设计题问个L家的常见设计题
amazon 2 面怎么设计分布式LRU cache?
被问了好多设计题啊。。。memsql面经
多线程有什么好的复习建议么?报个Uber电面面经
F悲剧了,上面经我是uber员工,关于work/life balance
相关话题的讨论汇总
话题: 信息话题: user话题: driver话题: server话题: key
进入JobHunting版参与讨论
1 (共1页)
m******0
发帖数: 222
1
请大家讨论一下吧!
我能想到的,在real面试中我可能会这么说:
1. 首先看用户和司机在app上都需要什么功能:
1)用户:设目的地、list附近的车,
2)司机:查看顺路乘客、查看附近乘客、自动报单供选择、直接分配单子
2. 根据需求,系统分为几层:
1)load balancer
2)web server
3)数据存储(包括user/driver的meta data,位置信息,历史订单与奖励信息、聊
天信息)
4)逻辑处理(user和driver的match,driver在接user的路上信息推送、奖励分配)
3. 具体每层系统的设计:
1* load balance:
1)按app的IP地址分配地理位置最近,或者latency最小的web server
2)在人口密集地(NY、BEIJING),选负载较少的server
2* web server层
1)nothing special
3* 数据储存和设计
1)user/driver的meta data存在key-value的cache中,如memcached,后面的
permanent storage用SQL with replica。全国的信息可以centralize一份。
2)位置信息,储存结构为网格化,即按照经纬度把位置分为5km见方的grid,用key-
val结构的cache存,双向存储(user/driver为key、position为value,然后position
为key,user为value)。不需要后面permanent storage支持。cache使用replica。按
照地区设置server。
3)历史订单与奖励信息,基本同(1),不需要设置key-value cache,直接用SQL存
,因为不要求快速查询,奖励信息如优惠券等可以offline计算。
4)聊天信息,等同(3)
4* 逻辑处理层
1)user/driver match的logic在本地server做,奖励信息计算等在全国数据库中
offline做。
2)处理移动端offline的情况
我能想到的就这些,抛砖引玉,请大家讨论、指正补充。
m******0
发帖数: 222
2
怎么没人讨论一下呢
c***w
发帖数: 134
3
一上来就是这么大的框架,好像用户量一定很大似得。
先问日活跃用户是多少再设计。
少了就弄最简单的单机设计就好了吧。
R*********4
发帖数: 293
4
[在 mitu9090 (mitu) 的大作中提到:]
:请大家讨论一下吧!

:...........
呵呵 看到您以5千米为一个Grid。
做过地图信息相关的就知道您没碰过,美国其实很大的,经纬的信息本身就是分好格的
,用二分法和star这类基本算法都会比你的要快。
其实没必要一开始就弄这种,您可以先自己试着搭建实时校车都比这个有意义
g**t
发帖数: 49
5
重点是把dispatcher从其他后端分离出来。再深入一点可以看看ringpop的设计思想
网上有关于Uber架构的视频

【在 m******0 的大作中提到】
: 请大家讨论一下吧!
: 我能想到的,在real面试中我可能会这么说:
: 1. 首先看用户和司机在app上都需要什么功能:
: 1)用户:设目的地、list附近的车,
: 2)司机:查看顺路乘客、查看附近乘客、自动报单供选择、直接分配单子
: 2. 根据需求,系统分为几层:
: 1)load balancer
: 2)web server
: 3)数据存储(包括user/driver的meta data,位置信息,历史订单与奖励信息、聊
: 天信息)

m******0
发帖数: 222
6
谢谢!
这个5km我的想法是,在纽约或者北京这种density很大的地方,使用。要是在alabama
州,可以一个city一个block就够。
你说的二分法和star是搜索算法吧,怎么应用在记录和匹配user与driver的地理位置上
呢?

【在 R*********4 的大作中提到】
: [在 mitu9090 (mitu) 的大作中提到:]
: :请大家讨论一下吧!
: :
: :...........
: 呵呵 看到您以5千米为一个Grid。
: 做过地图信息相关的就知道您没碰过,美国其实很大的,经纬的信息本身就是分好格的
: ,用二分法和star这类基本算法都会比你的要快。
: 其实没必要一开始就弄这种,您可以先自己试着搭建实时校车都比这个有意义

g**t
发帖数: 49
7
为什么不用geohash?据说Uber用的是Google s2 cell

alabama

【在 m******0 的大作中提到】
: 谢谢!
: 这个5km我的想法是,在纽约或者北京这种density很大的地方,使用。要是在alabama
: 州,可以一个city一个block就够。
: 你说的二分法和star是搜索算法吧,怎么应用在记录和匹配user与driver的地理位置上
: 呢?

G******n
发帖数: 572
8
mark
s****n
发帖数: 199
9
学习了
版里就应该多一些这样的讨论
a*****u
发帖数: 1712
10
司机:查看顺路乘客、查看附近乘客、自动报单供选择、直接分配单子
功能太多了,uber也只有直接分配单子一个功能
1 (共1页)
进入JobHunting版参与讨论
相关主题
我是uber员工,关于work/life balanceamazon 2 面
累还升不了职,该跳吗被问了好多设计题啊。。。
puzzle, 娱乐一下多线程有什么好的复习建议么?
发篇面经F悲剧了,上面经
google 面经ASP.NET+SQL+C#是所谓的后端吗?
这两个设计题如何答?A家onsite的system design, 求大牛们说说自己的设计想法, 相信
Facebook system design来道A设计题大家头脑风暴一下
问一个设计题问个L家的常见设计题
相关话题的讨论汇总
话题: 信息话题: user话题: driver话题: server话题: key