由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Facebook system design
相关主题
design uber这题到底怎么答!后端码农到底要不要会手写复杂SQL
检查graph里面是否有circle,是用BFS,还是DFS?graph 表示问题
请教一下超大图的存储问题这题怎么做的?
再问个amazon面试题真诚请教: 如何准备系统设计类的面试题
请教一个题目一般社交网站的"friend"是怎么存储的呢?
问一道FLAG经典题怎么设计分布式LRU cache?
FB设计题求教。memsql面经
关于refer问个精华区的面试题
相关话题的讨论汇总
话题: design话题: viewer话题: facebook话题: object话题: friend
进入JobHunting版参与讨论
1 (共1页)
s******x
发帖数: 417
1
设计一个系统,能够满足以下条件
boolean CanView(Viewer, Object, Owner);
返回true表示viewer可以看到owner发布的object;返回false则看不到。
Object目前有一个property,可以设置成public或者friends,即如果是public,那么
viewer可以看到object,如果是friends,则viewer必须是owner的friend才可以看到。
请大家过目。
谢谢。
z*********8
发帖数: 2070
2
This sounds more like a OO design than system design.
s******x
发帖数: 417
3
很不幸,我就是挂在了这个design上。。。
哎,印度女生出题,的确有水平。

【在 z*********8 的大作中提到】
: This sounds more like a OO design than system design.
b*******w
发帖数: 56
4

具体说说呗 水平体现在哪

【在 s******x 的大作中提到】
: 很不幸,我就是挂在了这个design上。。。
: 哎,印度女生出题,的确有水平。

n*******s
发帖数: 17267
5
这题怎么fail?
s******x
发帖数: 417
6
我哪儿不会就问哪儿,可不是水平么 =。=

【在 b*******w 的大作中提到】
:
: 具体说说呗 水平体现在哪

h***l
发帖数: 6
7
is it possible to try it below?
if(Object.property ==public)
return true;
else if(viewer == owner.friend)
return true;
else return false;

【在 s******x 的大作中提到】
: 设计一个系统,能够满足以下条件
: boolean CanView(Viewer, Object, Owner);
: 返回true表示viewer可以看到owner发布的object;返回false则看不到。
: Object目前有一个property,可以设置成public或者friends,即如果是public,那么
: viewer可以看到object,如果是friends,则viewer必须是owner的friend才可以看到。
: 请大家过目。
: 谢谢。

d****g
发帖数: 153
8
是不是得考虑scale的问题,如何在FB的规模内存储和读取friends信息和property的信息

【在 h***l 的大作中提到】
: is it possible to try it below?
: if(Object.property ==public)
: return true;
: else if(viewer == owner.friend)
: return true;
: else return false;

h***l
发帖数: 6
9
i agree with you

信息

【在 d****g 的大作中提到】
: 是不是得考虑scale的问题,如何在FB的规模内存储和读取friends信息和property的信息
h*******0
发帖数: 270
10
能否详细说说你怎么挂了? 看不出来这题难点在哪儿?
就算是facebook级别的,查一个人的friend要很费劲吗? 一个人的friend顶破天有几
千把?
相关主题
问一道FLAG经典题后端码农到底要不要会手写复杂SQL
FB设计题求教。graph 表示问题
关于refer这题怎么做的?
进入JobHunting版参与讨论
g*****g
发帖数: 34805
11
The problem can be reduced to an isFriend design.
You have 2 users, check if they are friends. There's a classic RDBMS design
and there's a NoSQL design. it's not hard either way.
a*****u
发帖数: 1712
12
普通人是几千,但fb有public page,那就很多很多了

能否详细说说你怎么挂了? 看不出来这题难点在哪儿?就算是facebook级别的,查一
个人的friend要很费劲吗? 一个人的friend顶破天有几千把?

【在 h*******0 的大作中提到】
: 能否详细说说你怎么挂了? 看不出来这题难点在哪儿?
: 就算是facebook级别的,查一个人的friend要很费劲吗? 一个人的friend顶破天有几
: 千把?

s******x
发帖数: 417
13
哪儿能看到你说的两个design?

design

【在 g*****g 的大作中提到】
: The problem can be reduced to an isFriend design.
: You have 2 users, check if they are friends. There's a classic RDBMS design
: and there's a NoSQL design. it's not hard either way.

z**m
发帖数: 3080
14
if(Object.property ==public)
return true;
else if(Object.property==friends)
if(viewer is owner's friend)
return true;
else return false;
else return false;

【在 h***l 的大作中提到】
: is it possible to try it below?
: if(Object.property ==public)
: return true;
: else if(viewer == owner.friend)
: return true;
: else return false;

T****U
发帖数: 3344
15
friend是双向的,查friend少的那一方就行了

【在 a*****u 的大作中提到】
: 普通人是几千,但fb有public page,那就很多很多了
:
: 能否详细说说你怎么挂了? 看不出来这题难点在哪儿?就算是facebook级别的,查一
: 个人的friend要很费劲吗? 一个人的friend顶破天有几千把?

j**********3
发帖数: 3211
16
mark
l********e
发帖数: 103
17
虽然给了个api
感觉还是 主要内容在系统设计
FB的设计 估计肯定要考虑scalability
k******a
发帖数: 44
18
我觉得这个设计包含两个部分,
1. Object Meta data的storage
2. Friend relationship的管理.
对于1,可以用distributed hash map + memcached解决
对于2,可以参考facebook的TAO设计。就是说维护A-FRIEND-B的GRAPH。对于两个朋友
,使用两个有向边维护。为什么用graph,而不是一般的map设计(比如,A的朋友表示
为A->[B, C, D, ....])?我觉得主要是scale问题。对于facebook这样这么大的用户
量,用户之间联系这么复杂的,使用map引起的写操作和写锁会非常难处理。对于这个
friend的有向图,主要是处理A-FRIEND-B这样的三元组的读写。那么可以使用
distributed hash map+index。并且用cache加速读操作。可以通过直接写cache,
batch写disk得方法解决写速度问题。
剩下的问题就是函数本身。先取Object,看property,如果是friends,查看owner的朋友
是否包含viewer,然后true/false。
为什么不查看viewer的friends。这就是facebook的特点。1个人发文章,100个人看。
那么owner的信息更有可能在cache中。
我现在就这点水了。大虾们请补充。
z****e
发帖数: 54598
19
这题很有水平啊
入门门槛不高,随便一个人都可以随便扯蛋出不少东西来
但是要说好比较难,也不是那么难了
看看graph db,比如neo4j之类的设计思想
大概就有谱了
1 (共1页)
进入JobHunting版参与讨论
相关主题
问个精华区的面试题请教一个题目
为啥careerCup 4里面graph就一题问一道FLAG经典题
报Google Offer并请教面试题FB设计题求教。
Word ladder 2这种题目很吃力关于refer
design uber这题到底怎么答!后端码农到底要不要会手写复杂SQL
检查graph里面是否有circle,是用BFS,还是DFS?graph 表示问题
请教一下超大图的存储问题这题怎么做的?
再问个amazon面试题真诚请教: 如何准备系统设计类的面试题
相关话题的讨论汇总
话题: design话题: viewer话题: facebook话题: object话题: friend