feed模式讨论

我看了一下业界(人人,新浪,facebook,Twitter)关于“动态”timeline的设计,主要有pull和push两种,我个人觉得pull比push要简单。 push这种模式比较麻烦:1.要考虑明星这种拥有巨量粉丝的情况,比如一个拥有100W粉丝的用户,push的数量非常大,而且还存在浪费(有些用户根本不会登录看到,push给他也没有用)

pull这种模式就比较简单,用户登录的时候再去pull其关注产生的内容,虽然必须很快返回数据,但关注人数有限,比如之前豆瓣的关注人数上限是200个,这个数量甚至用sql也能搞定。 

单用一个不行,要两者结合的
其实哦
完全用一种模式做所有的问题会有限制
不过呢,如果其中一些暂时如果不成大患,可以简单点搞

蒋云鹏 18:44:34
恩,我也喜欢简单,大道至简。

老轮子 18:44:52
恩,目前我们的inbox我是只基于pull的
不过由于我们关注上限是1000
而且历史数据有些极端情况
所以pull的算法需要稍稍优化下的

蒋云鹏 18:51:19
有些点我可能还没考虑到,比如我现在还不能理解你为什么要用到“25匹赛马,5个跑道算法”问题,你不用告诉我答案,我再想想看。

老轮子 18:51:27
哈哈

恩,我的意思是说,如果你跑个全量比的话
两两对比

那是很大量的
因为如果类比一下的话
25匹马,类似于所有的blog feeds
5个跑道意味着有限次的对比


老轮子 18:53:56
相对于所有的blog
老轮子 18:54:16
默认按时间取,就是一次性的问题
老轮子 18:54:36
但是25个blog可能会分散在各个跑道上
老轮子 18:54:44
就是不同的关注维度
老轮子 18:55:57
再换个维度想
老轮子 18:56:29
如果一开始所有的blog都是按时间排在那边的,我们一一往下找,根据是否我关注的人来决定要不要这个blog
老轮子 18:56:36
那么这是一个很大的遍历
蒋云鹏 18:56:54
恩,是的。
老轮子 18:57:03
比如走了1000个,其中只有4个是我关注的人发的
老轮子 18:57:23
要尽可能少的遍历
老轮子 18:57:49
所以即使我们关注的blog最终给出的结果是按timeline排序的
老轮子 18:58:02
可是取这些结果的时候,一定不是按这个维度去取的
老轮子 18:58:22
只是取出来之后,比如取出了24个之后,再按时间排序的

猜你喜欢

转载自san-yun.iteye.com/blog/1669845