Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2789123
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: C/C++

2012-08-14 21:14:44

系统设计题(35分) 
在一个有1000万用户的系统中,设计一个推送(feed)系统。以下是一些预定义概念
1、用户:在这个系统中,每个用户用一个递增的unsigned int来表示user id
    (简写为uid);则uid的范围是从1到1000万的正整数。
2、好友:用户之间可以形成好友关系,好友是双向的;比如说uid为3和uid为4的
    两个用户可以互为好友。每个用户好友的上限是500个;
    用户之间的好友关系可以被解除。
3、活动:每个用户只能发文章;文章可以被作者删除,其他人不能删除非自己发
     表的文章;每篇文章通过一个blogid表示。
4、feed:我们希望,每个用户可以看到他所有好友的活动列表,在这个简化的系
     统中就是所有好友的文章更新列表。
5、访问量要求:所有feed访问量每天在1亿量级;所有的blogid增加量每天在百万量级。 

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

要求: 
1、能够尽快的返回每个用户的好友feed列表,每个用户可以最多保留1000条feed;
     feed的展现按照时间倒排序,最新的在最前面
2、用户删除某篇文章后,被推出去的feed需要及时消失。即每个用户看到的好友
     feed都是未被删除的
3、尽可能高效。 
阅读(577) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~