2010-01-06 102 views
1

理想情况下,像Facebook这样的应用程序会将其“好友”数据存储在哪里? 在数据库表中?在一个XML文件?社交网络后台架构

+3

很确定Facebook的规模不会使用单个数据库,更不用说一张表来存储更少的xml文件。 – 2010-01-06 16:37:21

+0

这非常接近http://stackoverflow.com/questions/1009025/facebook-database-design – NotMe 2010-01-06 16:42:38

回答

5

Facebooks engineering page

“我们已经是全球第二大流量PHP站点(雅虎是排名第一),并且是任何地方最大的MySQL安装之一,运行着数千个数据库。”

“我们已经建立了一个轻量级的,但强大的多语言RPC框架,使我们能够无缝,轻松地绑在一起,用任何语言编写的子系统,在任何平台上运行。Facebook正在建于PHP,C++ ,Perl,Python,Erlang,Java甚至是一点点的ML,并且它们一起工作 *我们是memcached世界上最大的用户,一个开源的缓存系统,最初由LiveJournal开发,我们已经做出了如此多的可伸缩性改进和性能升级,我们将成为下一个主要版本的主要贡献者。 *我们创建了一个定制的搜索引擎,每天提供数百万次查询,完全分布式和全面的y内存,实时更新。“

0

当然不在XML文件中。

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

1

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

2

“朋友”的数据是在图形数据库很好的描述。 Neo4j就是一个例子,但我知道这不是Facebook存储这些信息的方式。

的Facebook使用了大量的数据库技术可能涉及: