http://www.infoq.com/cn/news/2009/06/Twitter-Architecture
作者 Abel Avram 译者 黄璜 发布于 2009年6月30日 上午11时10分
Evan Weaver是Twitter服务团队的总工程师,他的主要工作是优化与伸缩性。在QCon London 2009上,他谈到了Twitter的架构,特别是在过去一年当中为提升Web站点性能所执行的优化。
Twitter使用的大部分工具都是开源的。其结构是用Rails作前端,C,Scala和Java组成中间的业务层,使用MySQL存储数据。所有的东西都保存在RAM里,而数据库只是用作备份。Rails前端处理展现,缓存组织,DB查询以及同步插入。这一前端主要由几部分客户服务粘合而成,大部分是C写的:MySQL客户端,Memcached客户端,一个JSON端,以及其它。
中间件使用了Memcached,Varnish用于页面缓存,一个用Scala写成的MQ,Kestrel和一个Comet服务器也正在规划之中,该服务器也是用Scala写成,当客户端想要跟踪大量的tweet时它就能派上用场。
Twitter是作为一个“内容管理平台而非消息管理平台”开始的,因此从一开始基于聚合读取的模型改变到现在的所有用户都需要更新最新tweet的消息模型,需要许许多多的优化。这一改动主要在于三个方面:缓存,MQ以及Memcached客户端。
..........
http://blog.csdn.net/lanphaday/archive/2007/02/15/1510688.aspx
从实际应用的角度看Rsync是如何工作的
前言
对于理解Rsync的算法理论和机制, 最初的RsyncTechnicalReport和AndrewTridgell的博士论文都是非常优秀的文档. 不幸的是, 他们都太过于理论, 而缺乏Rsync实践应用.
在这份文档中我希望能够描述
-这个算法在Rsync程序中是如何实现的
-Rsync使用的协议
-Rsync各个进程的一个可定义的角色
这份文档对于需要更多信息的编程者可以作为一份指导手册, 但是最主要的作用是从读者能够理解的角度给他们一个以下几方面的基础知识,
-Rsync的限制
-为什么有些功能请求对于目前的程序是不合适的.