有什么最著名的算法/技术来更新社交网络等大型图结构上的边?

时间:2018-11-23 18:48:06

标签: algorithm data-structures graph

在诸如Twitter之类的社交网络上,有数百万人关注单个帐户,在发布新推文时立即更新所有关注者必须非常具有挑战性。同样,在Facebook上,粉丝页面上有数百万的关注者,发布在页面上时,我们会立即看到他们的更新。我想知道什么是最知名的技术和算法来实现这一目标。我知道有数十亿个帐户,它们在全球拥有庞大的数据中心,即使我们仅按照以下方式减少一台计算机的问题-100,000个节点,每个节点平均200个边缘,那么每个单节点更新将需要200个边缘更新。那么什么是最佳的技术/算法来优化如此大的更新。谢谢!

1 个答案:

答案 0 :(得分:0)

最好的方法通常是进行所有更新。您说可以“立即”看到它们,但是实际上更新可能会通过网络传播,并且可能需要花费几秒钟的时间才能显示在关注者的供稿中。

必须进行所有这些更新似乎很多,但是平均而言,追随者检查更新的频率要比被跟踪者产生更新的频率高得多,并且检查更新的速度必须更快。

选择是:

  1. 每天几秒钟内更新数百万的关注者;或

  2. 每天在1/10秒左右的时间内响应100万名追随者的支票,几百次。

有一些涉及将用户和内容聚类的中间策略,但是您在Facebook和Twitter上看到的使用模式可能偏重于选项(1),以至于这种策略不会奏效。