2012-10-07 65 views
2

我一直想知道社交网站的架构,如twitter,facebook,google plus。出于好奇心,我想知道,他们如何管理所有那些长篇和短篇文章(包括图片,网页链接等),并对其进行评论。他们将它们存储在数据库中还是存储在xml文件中或混合搭配?他们如何实际管理如此大量的数据?社交网站如何管理数据?

感谢

+1

也许检查脸书工程讲座:https://www.facebook.com/Engineering/videos – inf

+0

i'hv检查fb工程会谈,但它不是我所喜欢的。我的好奇心更多地是关于他们的帖子和评论是如何存储在数据库或某个xml文件中的,以及这样做的后果是什么?或者有更好的方法? – Prabhat

回答

0

的Facebook在今年早些时候放弃在IBM硅谷实验室的技术谈话,谈了他们使用Apache HBase的,以及如何MySQL并没有很好地扩展足以让他们。他们没有深入研究数据结构,而是深入了解系统的基础设施以及他们如何专注于高速读取操作。

一般来说,规模和速度对于这些规模和规模都是巨大的交易,它们严重依赖分片数据库结构,内置自动冗余功能。它们通常不使用数据库概念,如参照完整性或甚至定义的模式,因为它们会显着影响数据库性能。对于Facebook,如果我没有记错,他们基本上存储了描述数据的JSON对象,并且可以在必要时轻松地将新字段添加到对象中以支持新的数据结构。如果你在一个巨大的桌子上进行柱式操作,并且跨越许多不同的独立机器,那么让它们同步而不是让系统完全离线是一场噩梦。

HBase at Facebook page有一些有趣的图形和信息,您可能会发现有帮助。