May*_*ank 7 database architecture database-design facebook social-networking
我只是想知道facebook可以发布多少个db查询来呈现用户的主页.有没有人对facebook DB的设计有所了解.我听说它运行MySql并且有数千个副本以及比DB服务器更多的内存缓存服务器.
facebook数据是否被shard-ed?
如果是,它会转到每个分片并搜索我朋友的最新更新.在最坏的情况下,如果我有100个朋友,并假设facebook有101个分片,那么我的朋友可能会使用不同的分片.facebook怎么可能处理这个?
我会非常感激,如果有人能提供我SEOM提示或指针朝着类似"如何设计社交网站一个DB".我只是好奇!
Som*_*luk 13
Facebook正在使用LAMP结构.Facebook的后端服务是用各种不同的编程语言编写的,包括C++,Java,Python和Erlang,它们根据需要使用.使用LAMP Facebook使用一些技术,以支持大量的请求,如
Memcache - 这是一个内存缓存系统,用于通过缓存RAM中的数据和对象来加速动态数据库驱动的网站(如Facebook),以减少阅读时间.Memcache是Facebook的主要缓存形式,有助于缓解数据库负载.拥有一个缓存系统可以让Facebook在调用您的数据时尽可能快.
Thrift(协议) - 它是一个轻量级的远程过程调用框架,用于可扩展的跨语言服务开发.Thrift支持C++,PHP,Python,Perl,Java,Ruby,Erlang等.
Cassandra(数据库) - 它是一个数据库管理系统,旨在处理分布在许多服务器上的大量数据.
HipHop for PHP - 它是PHP脚本代码的源代码转换器,用于节省服务器资源.HipHop将PHP源代码转换为优化的C++.执行此操作后,它使用g ++将其编译为机器代码.
如果我们进一步详细说明,那么回答这个问题会更长.我们可以通过以下帖子了解更多:
归档时间: |
|
查看次数: |
7244 次 |
最近记录: |