【问题标题】:Pulling wall/dashboard data like facebook, twitter, tumblr, etc提取墙/仪表板数据,如 facebook、twitter、tumblr 等
【发布时间】:2013-12-28 21:28:53
【问题描述】:

我觉得这必须在其他地方问,但我无法找出正确的搜索词来找到答案。如果这是重复的,请在其他地方指出正确的响应。

Facebook、Twitter、Tumblr 等服务,我相信还有很多其他服务允许您关注其他用户。然后他们的帖子会出现在墙上或仪表板上。我想知道,拥有如此庞大的数据集,这些服务如何能够如此快速地拉出帖子。我假设他们没有使用 SQL 服务器,也没有做类似的事情:

SELECT * FROM `posts` WHERE `poster_id` IN ( super long list of users being followed ) ORDER BY `date` LIMIT 10;

因为上面可能有一个非常大的用户 ID 列表,它同样不能很好地与所有这些大型服务都使用的分片一起工作。

那么,谁能描述一下这些服务使用什么样的查询、算法或数据库来显示关注的帖子?

编辑:感谢大家的回复。似乎最有可能做到这一点的方法是通过 GraphDB、Neo4j 或 FlockDb 等图形数据库,后者是 Twitter 的图形数据库。使用 Neo4j,它的完成类似于 http://docs.neo4j.org/chunked/milestone/cypher-cookbook-newsfeed.html 中记录的内容。

当然,Google、Facebook 等都有自己的、内部构建或内部修改的数据库,用于其独特的用例。

【问题讨论】:

  • 不是 100% 确定你在问什么,但这里有一篇关于 Tumblr 架构的有趣文章:highscalability.com/blog/2012/2/13/… 实际上,这与@rav 下面发布的文章非常相似
  • 首先,他们可能不再使用 MySQL,例如 twitter uses FlockDB
  • 是的,我发现他们不太可能使用 MySQL 进行这样的操作。我不认为它不是为这样的东西而建的。感谢您提供有关 FlockDB 的信息,它让我指明了正确的方向。

标签: mysql facebook twitter tumblr sharding


【解决方案1】:

我可以列举一些关于如何更快地处理/获取数据的技术,但我不确定这些技术是否与 facebook、twitter..etc.. 实现的技术相同,因为它们中的每一个都构建在不同的平台上,并且架构。

  1. 从缓存的内存中获取数据 - 意味着用户将在不接触数据库的情况下获取数据,而不是从内存中获取数据
  2. 将进程拆分到不同的服务器 - 意味着资源由多个服务器处理以防止瓶颈..

如果您想具体了解 Facebook 使用的堆栈,您可以阅读链接。 http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/

【讨论】:

    【解决方案2】:

    查看 Open Graph——Twitter 和 Facebook 都使用这种架构来检索用户发布的“故事”。这是语义网想法的一个版本。 https://developers.facebook.com/docs/opengraph/ SQL 调用的日子结束了(感谢上帝)。 FQL - Facebook 查询语言仍然有效,但在很大程度上已被弃用。它不是 SQL,而是针对图的查询语言版本(是数据库)。

    【讨论】:

      【解决方案3】:

      基本上所有真正大的网站都以某种形式从 SQL 服务器转向 NoSQL(有几个真正的大网站已经编写了自己的!)。 NoSQL 数据库放宽了 ACID 约束,但因此更能够扩展和处理潜在的大量请求。

      如果你用谷歌搜索 NoSQL,你会发现很多关于它的信息。

      http://blog.3pillarglobal.com/exploring-different-types-nosql-databases

      http://www.mongodb.com/learn/nosql

      SQL 仍然占有一席之地,但在很多事情上,NoSQL 是前进的方向。

      【讨论】:

        【解决方案4】:

        感谢大家的回复。似乎最有可能做到这一点的方法是通过 GraphDB、Neo4j 或 FlockDb 等图形数据库,后者是 Twitter 的图形数据库。使用 Neo4j,它的完成类似于 http://docs.neo4j.org/chunked/milestone/cypher-cookbook-newsfeed.html 中记录的内容。

        当然,Google、Facebook 等都有自己的、内部构建或内部修改的数据库,用于其独特的用例。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-07-18
          • 2012-02-11
          • 1970-01-01
          • 1970-01-01
          • 2015-02-22
          • 1970-01-01
          • 2017-01-01
          相关资源
          最近更新 更多