由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - FB设计题求教。
相关主题
老年马工赶快去 fb再来继续比较,芒果和redis各什么时候用比较好?
f design question 求讨论请问最热的nosql是哪个?
dropbox一道题内推苹果itunes部门
G家店面design题目问个snapchat的设计题
求牛人 解答 一个Amazon 设计问题12306 妙杀
这两个设计题如何答?pre-IPO 公司招聘3
秒杀设计题系统设计题怎么准备
大家不是说要多准备设计么,来一道google设计面试题目Pinterest陶涛:三个教训和三个发展选择 (转载)
相关话题的讨论汇总
话题: counter话题: photo话题: redis话题: fb话题: aggregator
进入JobHunting版参与讨论
1 (共1页)
t*****a
发帖数: 106
1
原题
design photo reference counting system at fb scale
感觉这题主要是要解决high volume concurrent writing. 我想的是如果要scaling up
, 在每个Appserver 上对每个photo加一个counter,然后每隔T时间传到一个aggregator
把所有与目标相关的counter相加,然后update DB和Memcached. 一些细节还没想清楚
,求讨论。
p*****2
发帖数: 21240
2
redis就可以了

up
aggregator

【在 t*****a 的大作中提到】
: 原题
: design photo reference counting system at fb scale
: 感觉这题主要是要解决high volume concurrent writing. 我想的是如果要scaling up
: , 在每个Appserver 上对每个photo加一个counter,然后每隔T时间传到一个aggregator
: 把所有与目标相关的counter相加,然后update DB和Memcached. 一些细节还没想清楚
: ,求讨论。

t*****a
发帖数: 106
3
大牛能详细说一下吗,谢了

【在 p*****2 的大作中提到】
: redis就可以了
:
: up
: aggregator

c**i
发帖数: 306
4
关注
g*****g
发帖数: 34805
5
fb这样的系统,photo数量很大,但是每个photo的count不高。有很多方法都可以。
MySQL sharding, Cassandra distributed counter. 二爷说的Redis cluster
optimistic locking 也行。

up
aggregator

【在 t*****a 的大作中提到】
: 原题
: design photo reference counting system at fb scale
: 感觉这题主要是要解决high volume concurrent writing. 我想的是如果要scaling up
: , 在每个Appserver 上对每个photo加一个counter,然后每隔T时间传到一个aggregator
: 把所有与目标相关的counter相加,然后update DB和Memcached. 一些细节还没想清楚
: ,求讨论。

t*****a
发帖数: 106
6
看了一下Cassandra distributed counter的实现算法,这现场弄一个出来略难啊,设
计完整的read/write protocol, vector clock, ack机制。最多说说想法。

【在 g*****g 的大作中提到】
: fb这样的系统,photo数量很大,但是每个photo的count不高。有很多方法都可以。
: MySQL sharding, Cassandra distributed counter. 二爷说的Redis cluster
: optimistic locking 也行。
:
: up
: aggregator

w****k
发帖数: 755
7
google的技术讲座,讲到了并发counter的设计,应该是类似的。
http://highscalability.com/numbers-everyone-should-know
前面有人说redis,许多面试恐怕不会允许用这样,或者要求你说明redis怎么运作的。
g*****g
发帖数: 34805
8
我的意思就是单counter上的并发量不大,哪怕RDBMS都够了。所谓scale在图片数量上
,这个除了sharding别无他法。

【在 t*****a 的大作中提到】
: 看了一下Cassandra distributed counter的实现算法,这现场弄一个出来略难啊,设
: 计完整的read/write protocol, vector clock, ack机制。最多说说想法。

h****t
发帖数: 69
9
F家设计题如果只提到用什么tech/framework来实现是行不通的,面试官接着会更详细
的问具体是如何实现的。而重心通常都围绕着scalability, partitioning,
replication,fault tolerance, availability, concurrency, caching, consistency
之类的问题。
g*****g
发帖数: 34805
10
这道题单counter并发量又不大,最简单的transaction即可。

consistency

【在 h****t 的大作中提到】
: F家设计题如果只提到用什么tech/framework来实现是行不通的,面试官接着会更详细
: 的问具体是如何实现的。而重心通常都围绕着scalability, partitioning,
: replication,fault tolerance, availability, concurrency, caching, consistency
: 之类的问题。

相关主题
这两个设计题如何答?再来继续比较,芒果和redis各什么时候用比较好?
秒杀设计题请问最热的nosql是哪个?
大家不是说要多准备设计么,来一道google设计面试题目内推苹果itunes部门
进入JobHunting版参与讨论
t*****a
发帖数: 106
11
看了一下,和我说的是一个意思,就是多建几个counter并行处理,然后再sum.
cassandra distributed counter也是一个方法。只不过cassandra加了vector clock,
ack机制。availability 和 fault tolerance更好了。我开始没想明白的是如果自己设
计加counter, counter放在哪一层好。最早想的是放在APP server, 现在看来应该放
在DB server,离data近一点。

【在 w****k 的大作中提到】
: google的技术讲座,讲到了并发counter的设计,应该是类似的。
: http://highscalability.com/numbers-everyone-should-know
: 前面有人说redis,许多面试恐怕不会允许用这样,或者要求你说明redis怎么运作的。

t*****a
发帖数: 106
12
嗯,明白了,多谢。不过我觉得要是真面这题的话,最后肯定还是要求实现
distributed counter

【在 g*****g 的大作中提到】
: 这道题单counter并发量又不大,最简单的transaction即可。
:
: consistency

p*****3
发帖数: 488
13
request 会打在web server上,每个web server再实时的batch processing log,再内
存keep一个简单的aggregation map。batch size 到了就把old aggregation map写到
sharded的key value store上,一般支持batch write一个shard就发一个request,key
value
store最好支持merge operation,不支持race condition的几率也很小。
解释个毛线的key value store原理,拿来会用不就得了。
t*****a
发帖数: 106
14
多谢。不过面试真没准,有的人就瞎问。我CV上没写任何data base,file system还被
人问过I-NODE, D-NODE,以及如何实现。写Dijkstra算法,让自己实现heap(这个还好)
,然后再解释A*。

key

【在 p*****3 的大作中提到】
: request 会打在web server上,每个web server再实时的batch processing log,再内
: 存keep一个简单的aggregation map。batch size 到了就把old aggregation map写到
: sharded的key value store上,一般支持batch write一个shard就发一个request,key
: value
: store最好支持merge operation,不支持race condition的几率也很小。
: 解释个毛线的key value store原理,拿来会用不就得了。

m*****k
发帖数: 731
15
redis 3.0 cluster 才出来吧,好用么?

【在 p*****2 的大作中提到】
: redis就可以了
:
: up
: aggregator

m*****k
发帖数: 731
16
actually this seems a typical storm/trident use case.

up
aggregator

【在 t*****a 的大作中提到】
: 原题
: design photo reference counting system at fb scale
: 感觉这题主要是要解决high volume concurrent writing. 我想的是如果要scaling up
: , 在每个Appserver 上对每个photo加一个counter,然后每隔T时间传到一个aggregator
: 把所有与目标相关的counter相加,然后update DB和Memcached. 一些细节还没想清楚
: ,求讨论。

m*****k
发帖数: 731
17
类似前一段时间好莱坞女星私密照被黑客放出来,转发量并发量可能不会小吧。

【在 g*****g 的大作中提到】
: 这道题单counter并发量又不大,最简单的transaction即可。
:
: consistency

g*****g
发帖数: 34805
18
转发的做法是复制,T的东西尤其典型。这种面试题主要是看你思路,如果前提跟面试
官不一致会很快提醒你,知道定量分析恐怕比分布式计数器的算法更有意义。

【在 m*****k 的大作中提到】
: 类似前一段时间好莱坞女星私密照被黑客放出来,转发量并发量可能不会小吧。
m*****k
发帖数: 731
19
对呀,转发通常不就是复制原link么?
For photo reference counting, take mitbbs logo as example,
My understanding is how many times "http://www.mitbbs.com/img/logo_us.gif" is requested.
unless photo reference counting means different?
请大牛指教。

【在 g*****g 的大作中提到】
: 转发的做法是复制,T的东西尤其典型。这种面试题主要是看你思路,如果前提跟面试
: 官不一致会很快提醒你,知道定量分析恐怕比分布式计数器的算法更有意义。

p*****2
发帖数: 21240
20
应该不好用 自己做cluster

【在 m*****k 的大作中提到】
: redis 3.0 cluster 才出来吧,好用么?
p*****2
发帖数: 21240
21
你说的这些redis都能做

consistency

【在 h****t 的大作中提到】
: F家设计题如果只提到用什么tech/framework来实现是行不通的,面试官接着会更详细
: 的问具体是如何实现的。而重心通常都围绕着scalability, partitioning,
: replication,fault tolerance, availability, concurrency, caching, consistency
: 之类的问题。

1 (共1页)
进入JobHunting版参与讨论
相关主题
Pinterest陶涛:三个教训和三个发展选择 (转载)求牛人 解答 一个Amazon 设计问题
来道A设计题大家头脑风暴一下这两个设计题如何答?
redis的硬伤是不是 无法scale,很难用在cluster上秒杀设计题
【工作机会】Sr.PHP Developer,Shanghai,China (适合想回中国发展的朋友)大家不是说要多准备设计么,来一道google设计面试题目
老年马工赶快去 fb再来继续比较,芒果和redis各什么时候用比较好?
f design question 求讨论请问最热的nosql是哪个?
dropbox一道题内推苹果itunes部门
G家店面design题目问个snapchat的设计题
相关话题的讨论汇总
话题: counter话题: photo话题: redis话题: fb话题: aggregator