社交网络后端架构

时间:2010-01-06 16:35:56

标签: database

理想情况下,像Facebook这样的应用程序会在哪里存储“朋友”数据? 在数据库表中?在xml文件中?

6 个答案:

答案 0 :(得分:5)

来自Facebooks engineering page

“我们已经是世界上第二大流量最多的PHP网站(雅虎排名第一),并且是世界上最大的MySQL安装之一,运行着数千个数据库。”

“我们构建了一个轻量级但功能强大的多语言RPC框架,它允许我们无缝轻松地将用任何语言编写的子系统连接在一起,在任何平台上运行.Facebook内置PHP,C ++,Perl,Python,Erlang ,Java,甚至一点点ML-它们都在一起工作。 *我们是memcached世界上最大的用户,这是一个开源缓存系统。最初由LiveJournal开发,我们已经进行了如此多的可扩展性改进和性能升级,我们将成为下一个主要版本中功能的主要贡献者。 *我们创建了一个定制的搜索引擎,每天提供数百万个查询,完全分发并完全在内存中,并提供实时更新。“

答案 1 :(得分:4)

答案 2 :(得分:2)

查看此博客:http://highscalability.com/许多系统架构的实际示例以供学习

答案 3 :(得分:2)

“朋友”数据在图表数据库中有详细描述。 Neo4j就是一个例子,但我知道这并不是Facebook存储这些信息的方式。

Facebook使用了许多可能涉及的数据库技术:

答案 4 :(得分:1)

最有可能它应该包含一些其他机制。例如,搜索引擎不会将其索引保留为数据库或XML文件。为了获得最大性能,他们通常保留一些树(二进制搜索树或更复杂的树)并以性能有效的方式将它们存储在磁盘上。所以我猜这种机制。

答案 5 :(得分:0)

当然不在XML文件中。

是,在数据库中,在一个或多个表中。而对于facebook的精确例子,在几台服务器上。