推特时间线算法如何工作



我正在尝试设计一个类似于Twitter时间线的系统,但我无法弄清楚如何在保持效率的同时从这么多关注者那里获得更新。假设我在Twitter上关注了1000人。当我访问我的动态时,它如何知道要向我显示哪些推文?这就是我的想法,但它似乎效率极低且不太可能:

You have 10,000 friends.
In a for loop, loop through each friend, getting their latest 
  status updates since their last update. 
但是,在

10,000个朋友中循环似乎很荒谬。我无法想象他们还能怎么做。或者会像这样:

Someone I am following posted a tweet. That tweet is inserted in 
  an array containing the tweets of all people I am following.
但是这似乎很奇怪,如果我关注了一个有20,000条推文的新人,那么

20,000条推文将入我的数组中,如果这个人有数百万粉丝,那么有100万X 20,000份相同的推文。所以这似乎也不太可能。

任何人都知道他们怎么可能做到这一点?

我建议你检查twissandra项目他们使用NoSQL数据库Cassandra实现了Twitter的所有基本功能。据说推特不再将其用于推文。

可以在此处查阅旧实现

最新更新