由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 讨论一道狗家的设计题
相关主题
如何根据这些参数进行系统设计?问下狗家待遇
G真的比FLA技术先进吗? (转载)offer 比较:Google vs VMware vs AWS
聊天系统设计问题拿了个国内的offer 有点心动
Airbnb,Facebook, Two Sigma求建议MS的Principal相当于FLG的几级?
一个系统相关的问题请求一下我2个月之后的移民状态和工作合法性
狗家店面 被考设计在EAD卡上的开始日期之前工作可以吗?
L家马上要自主休假了FLG之前在onsite后被拒的话,再次面试可以直接请求onsite吗?
狗家 PEP简历上贴个人照片合适吗?
相关话题的讨论汇总
话题: 请求话题: request话题: server话题: 每秒话题: 机器
进入JobHunting版参与讨论
1 (共1页)
f**********3
发帖数: 295
1
设计一个系统,每次请求返回一个唯一的id,要求对大部分的请求做到后面请求的id要
比前面的大,要平均每秒能处理10000个请求,而且请求来自全球。
b*****o
发帖数: 715
2
返回server当前时间作为id。

【在 f**********3 的大作中提到】
: 设计一个系统,每次请求返回一个唯一的id,要求对大部分的请求做到后面请求的id要
: 比前面的大,要平均每秒能处理10000个请求,而且请求来自全球。

A******g
发帖数: 612
3
这是我提出的一个方案,被毛子否了,说不能scale,分布式的话,不能保证每个
request当前时间不一样。

【在 b*****o 的大作中提到】
: 返回server当前时间作为id。
g*********e
发帖数: 14401
4

尾巴上随便加个随机数?

【在 A******g 的大作中提到】
: 这是我提出的一个方案,被毛子否了,说不能scale,分布式的话,不能保证每个
: request当前时间不一样。

f**********3
发帖数: 295
5
也想过这个,然后毛子说有没不浪费数字的,比如用了1,下一个最好是2,不要就跳到
200了。感觉毛子是明黑

【在 g*********e 的大作中提到】
:
: 尾巴上随便加个随机数?

i********s
发帖数: 22
6
G家的spanner用到了相关技术。
大概说的是TrueTimeApi,基于GPS和atomic clock在不同数据中心同步时间。
细节看得不是很懂。
l*******g
发帖数: 82
7
你知道UUID这个么?如果id没有要求一定是number的话,uuid就可以达到scale。wiki
一下就行。

设计一个系统,每次请求返回一个唯一的id,要求对大部分的请求做到后面请求的id要
比前面的大,要平均每秒能处理10000个请求,而且请求来自全球。

【在 f**********3 的大作中提到】
: 设计一个系统,每次请求返回一个唯一的id,要求对大部分的请求做到后面请求的id要
: 比前面的大,要平均每秒能处理10000个请求,而且请求来自全球。

f**********3
发帖数: 295
8
spanner是全球同步,但不是瞬间同步,拿一个ID同步一次的话,用户不知道要等多久
了。

【在 i********s 的大作中提到】
: G家的spanner用到了相关技术。
: 大概说的是TrueTimeApi,基于GPS和atomic clock在不同数据中心同步时间。
: 细节看得不是很懂。

l*********b
发帖数: 1541
9
比较模糊。10000请求每秒的话,一台机器就能搞定吧。只有cpu和网络的overhead。
就你说的情况来看,用时间倒是不错的方案。估计还没搞清楚面试官想问的方向?
p****U
发帖数: 109
10
用一个master/ 队列 接受所有请求, 然后把请求分配给cluster, cluster里面每个
node里都有一个 8bit 的代号。 然后每个node 返回 这个node的8bit代号和按进来的
顺序生成的number。 例如1号机受到第1个从 master 传来的请求 那这个 id 应该是
0000000100000001. 不知道是否ok, 但是每秒10000请求这种东西肯定要放一个 无锁
message queue里吧 然后当做streaming的 派送给各个分机。
相关主题
狗家店面 被考设计问下狗家待遇
L家马上要自主休假了offer 比较:Google vs VMware vs AWS
狗家 PEP拿了个国内的offer 有点心动
进入JobHunting版参与讨论
b*****o
发帖数: 715
11
那就分2步来。
有一个ID server专门负责分发ID(它只有一个状态,就是当前最小的可用的ID),以
及N个负责处理用户请求的request server。用户只和request server联系,而request
server可以根据需求和ID server联系。
当request server没有可用ID的时候,就向ID server申请一批新的ID(比如1K个),
同时ID server更新最小的可用的ID的值(+1K)。当request server还有ID可用的时
候,就用自己local的ID段处理用户请求。
这样子的设计,从长期来讲ID基本保持是递增的。

【在 f**********3 的大作中提到】
: 也想过这个,然后毛子说有没不浪费数字的,比如用了1,下一个最好是2,不要就跳到
: 200了。感觉毛子是明黑

p*****3
发帖数: 488
12

抛个砖头吧。
假设一台机器精确到1msec, 每秒可处理1000个request, 那么10000/s需要10台机器。
首先需要同步10台机器的时间(GPS之类的),否则时间都不一样没法保证先后顺序啊。
既然每秒10000个request, 那么可能在同一毫秒时间内不同机器同时收到request, 那
么就这么编号:这样如果时间顺序有差不管在同
一台机器还是不同机器上id顺序都可以保证,时间相同id也不会重复,还是
decentralized,根据request rate来看,不说完全不浪费,id不会跳跃太大。 time
synchronize也不用每个request就同步一次,10分钟同步一次。再说那些request时间
差个1,2毫秒估计也没啥问题,网络延迟啥的比这玩意厉害多了,没必要那么strict

【在 f**********3 的大作中提到】
: 设计一个系统,每次请求返回一个唯一的id,要求对大部分的请求做到后面请求的id要
: 比前面的大,要平均每秒能处理10000个请求,而且请求来自全球。

g*****g
发帖数: 34805
13
这也是我提的方案,ID server维护的是一个数据库,每次到数据库里做个
transnational加法。
这样机器当了至少到哪里了还知道。

request

【在 b*****o 的大作中提到】
: 那就分2步来。
: 有一个ID server专门负责分发ID(它只有一个状态,就是当前最小的可用的ID),以
: 及N个负责处理用户请求的request server。用户只和request server联系,而request
: server可以根据需求和ID server联系。
: 当request server没有可用ID的时候,就向ID server申请一批新的ID(比如1K个),
: 同时ID server更新最小的可用的ID的值(+1K)。当request server还有ID可用的时
: 候,就用自己local的ID段处理用户请求。
: 这样子的设计,从长期来讲ID基本保持是递增的。

p*****3
发帖数: 488
14

这个只能dedup,怎么保证不同机器能根据时间先后产生出id递增的方案呢?

【在 g*****g 的大作中提到】
: 这也是我提的方案,ID server维护的是一个数据库,每次到数据库里做个
: transnational加法。
: 这样机器当了至少到哪里了还知道。
:
: request

p*****2
发帖数: 21240
15

一台machine handle 10k毫无压力

【在 p*****3 的大作中提到】
:
: 这个只能dedup,怎么保证不同机器能根据时间先后产生出id递增的方案呢?

p*****2
发帖数: 21240
16

ID server保证。

【在 p*****3 的大作中提到】
:
: 这个只能dedup,怎么保证不同机器能根据时间先后产生出id递增的方案呢?

p*****3
发帖数: 488
17

不知道怎么保证,如果给machine 1分 1-100范围的,给2分200-300的,那么就算
machine 2 收到的request比machine 1早,产生的id也会大

【在 p*****2 的大作中提到】
:
: ID server保证。

p*****2
发帖数: 21240
18

要求对大部分的请求做到后面请求的id要
比前面的大

【在 p*****3 的大作中提到】
:
: 不知道怎么保证,如果给machine 1分 1-100范围的,给2分200-300的,那么就算
: machine 2 收到的request比machine 1早,产生的id也会大

p*****3
发帖数: 488
19

So???

【在 p*****2 的大作中提到】
:
: 要求对大部分的请求做到后面请求的id要
: 比前面的大

l*********u
发帖数: 19053
20
这个应该可以。

【在 p*****3 的大作中提到】
:
: So???

1 (共1页)
进入JobHunting版参与讨论
相关主题
简历上贴个人照片合适吗?一个系统相关的问题
OPT期间老婆签F2有什么特别吗(同时我在申请H1b)? (转载)狗家店面 被考设计
如果有offer letter申请opt的话L家马上要自主休假了
想问个LCA的事情狗家 PEP
如何根据这些参数进行系统设计?问下狗家待遇
G真的比FLA技术先进吗? (转载)offer 比较:Google vs VMware vs AWS
聊天系统设计问题拿了个国内的offer 有点心动
Airbnb,Facebook, Two Sigma求建议MS的Principal相当于FLG的几级?
相关话题的讨论汇总
话题: 请求话题: request话题: server话题: 每秒话题: 机器