首页 > 试题广场 >

在一个有1000万用户的系统中,设计一个推送(feed)系统

[问答题]

在一个有1000万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概念:

1、用户:在这个系统中,每个用户用一个递增的unsigned int来表示user id(简写为uid);则uid的范围是从11000万的正整数。

2、好友:用户之间可以形成好友关系,好友是双向的;比如说uid3uid4的两个用户可以互为好友。每个用户好友的上限是500个;用户之间的好友关系可以被解除

3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发表的文章;每篇文章通过一个blogid表示。

4、feed:我们希望,每个用户可以看到他所有好友的活动列表,在这个简化的系统中就是所有好友的文章更新列表。

5、访问量要求:所有feed访问量每天在1亿量级;所有的blogid增加量每天在百万量级。

题目:请在以上限制条件下,设计一个高效的feed访问系统。


要求:

1、能够尽快的返回每个用户的好友feed列表,每个用户可以最多保留1000feedfeed的展现按照时间倒排序,最新的在最前面

2、用户删除某篇文章后,被推出去的feed需要及时消失。即每个用户看到的好友feed都是未被删除的

3、尽可能高效

又是海量数据。。
发表于 2014-10-10 10:45:23 回复(0)