Twitter时间线算法如何工作?

时间:2012-09-18 19:56:56

标签: algorithm twitter pseudocode

我正在尝试设计一个类似于Twitter时间轴的系统,但我无法理解如何在保持高效的同时从众多粉丝那里获得更新。假设我在推特上关注了1000人。当我转到我的Feed时,它如何知道哪些推文给我看?这就是我的想法,但它似乎非常低效且不太可能:

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条推文,如果那个人拥有数百万的粉丝,那么就有一百万个X 20,000个相同的副本一组推文。所以这似乎也不太可能。

任何人都有任何想法如何做到这一点?

2 个答案:

答案 0 :(得分:3)

我建议你查看twissandra project 他们使用cassandra(一个nosql数据库)实现了twitter的所有基本功能。据说twitter是no longer using it for tweets

可以查阅旧的实施here

答案 1 :(得分:1)

我制作了一个关于这个主题的视频,它解释了twitter的完整系统设计 https://www.youtube.com/watch?v=KmAyPUv9gOY