Staircar:Tumblr的Redis集群控制层

标签: Redis reids sorted sets Staircar Tumblr | 发表时间:2011-07-26 19:14 | 作者:nosqlfan 悟怡
出处:http://blog.nosqlfan.com

Tumblr是世界上最流行的轻博客服务,其用户量在最近的一次统计中已经达到2090万,超过了全球最大的博客服务WordPress。而我们今天要介绍的是Tumblr通知系统的架构,其通知系统由一个叫Staircar的轻量级HTTP服务器和其下层的大规模Redis集群组成。

应用分析

在Tumblr初期,其通知系统是由MySQL+Memcached的传统架构组成,但是由于通知系统庞大的添加操作,导致MySQL负担非常大,经常搞得InnoDB global transaction max(1024)都超出了。于是他们打算重新构建消息系统。首先他们分析了消息系统的应用特点:

  • 按时间排序
  • 唯一性,每一条消息都是唯一的
  • 读写比大概是 60%/30%
  • 每个用户的消息条数一定
  • 数据按用户划分,每个用户只能读自己的消息

架构

基于上面应用特点的考虑,Tumblr选择了Redis的sorted sets作为其数据存储。

他们的存储方式是:

  • 给每个用户分配一个sorted sets,其中每一项保存一条通知
  • 每条通知以时间戳为score在sorted sets中进行排序
  • 超出100条通知后进行trim操作

Tumblr的数据量:2300万个BLOG,每个BLOG 100条消息,每条消息体大概160bytes。

响应速度:大概每秒提供7,500次请求,每次请求的响应时间小于5ms。

考虑到容灾性及可能快速增长的数据量,Tumblr打算采用preshard的方式来架构他们的Redis集群,于是他们开发了Staircar(一个提供HTTP服务的Redis集群调度管理组件)。下面是他们的通知系统架构图:

实际上在开发Staircar前,他们考查了一些其它的类似功能的产品,但都不能满足他们所有需求(或者说闲杂功能过多)。

性能

Staircar由C语言写成,以libevent为网络驱动层,提供JSON格式的RESTFul接口,其性能超出了Tumblr工程师们的想象,其在最高峰时的响应时间也在5ms以下,其性能测试结果是大概能处理每秒30,000次左右的请求。下面是其性能测试图,从图上可以看到,其绝大部分请求(红色区域)的响应时间在3-4ms之间:

来源:engineering.tumblr.com

技术传播,需要你我共同努力!    

相关 [staircar tumblr redis] 推荐:

妄谈tumblr

- Version - 忘·记·时间
好吧这篇分析是4月底写的,现在的tumblr和点点都大变样啦~甚至性浪也来搅局(去屎吧),不过即使tumblr在首页强化了回复、点点引入了editor制度,这篇分析的观点我觉得还是没问题的. tumblr是microblog一种. 如果说iPad是介于传统电脑和手机之间的产品,那么tumblr则是介于blog和twitter之间的服务.

tumblr最近的数据

- Charles - 所有文章 - UCD大社区
关于tumblr最近的几个数据:. 日均PV超过2.6亿,UV超过1000万. 超过1800万个blogs搭建在tumblr的平台上,搭建在wordpress的blogs为2000万,但同期tumblr的增长速度是wordpress的两倍. 根据google analysis的数据,用户平均在tumblr上的停留时间是14分钟.

Tumblr博客数超WordPress.com

- jason - 36氪
著名的轻博客Tumblr成立只有四年时间,今天该网站托管的博客数超过了已有八年历史的WordPress.com. 一月份时Tumblr上有700万个独立博客,到目前为止,该网站上的博客计数器显示已有20873182个博客,比WordPress.com上的博客数「20820425」大约多出了8.5万个.

Tumblr 的真正起源

- - 爱范儿 · Beats of Bits
最近,轻博客 Tumblr 被 Yahoo 高价收购. 毫无疑问,Tumblr 能够获得成功,创始人 David Karp 的努力不可或缺. 正如参与创办 Tumblr 的 Marco Arment 所说,Karp 的远见和对产品的专注,造就了硅谷的一个传奇故事. 不过,历史经常告诉我们,最终成功的常常不是原创者,而是能够将产品推向大众的人.

解析社交网络Tumblr

- - Solidot
网络科学家都在分析Twitter和Facebook的数据,而遗忘了另一个社交网站:雅虎的轻博客Tumblr. 雅虎实验室的Yi Chang和同事弥补上这一空缺. Tumblr有1.6亿用户,发表了700亿帖子,它的帖子没有字符限制,支持图片、视频和音频. Chang和同事分析了去年8到9月之间发表的6亿帖子(预印本),发现90%以上的帖子由图像或文字构成.

轻博客:Zapd 比 Tumblr 好在哪里?

- Jarod - 爱范儿 · Beats of Bits
确切地说,Zapd 作为一个新兴的轻博客挑战者,拿它跟 Tumblr 相比真是太抬举 Zapd 了. Tumblr 在 2007 年上线,现在已经累计了 1817 万个博客页面,每天新增内容 2552 万条. 而 Zapd 上线不足两个月,在 App Store 上的总下载量不过 25 万(截止四月底),凭什么在轻博客领域分一杯羹.

Tumblr、点点、新浪Qing的比较

- 老李 - 月光博客
  轻博客是一种介于博客和微博之间的一种网络服务. 在国外,2007年4月推出的Tumblr一直在轻博客市场中居于领先地位,很多知名人士和大型媒体公司都使用Tumblr网站.   因为种种原因,Tumblr并不支持中文,也没有在中国运营,期间还长时间无法从中国访问,因此,从今年开始,国内也出现了很多类Tumblr的轻博客产品,比较知名的国内轻博客有点点、新浪轻博、宽途、推他等服务,但目前仅有点点开放注册,其他均内测不开放注册,其中点点将轻博客的概念在中国放大,日前最新注册用户数已经突破百万.

Tumblr 如何改变新闻行业

- Nanqi - 36氪
轻博客 Tumblr 几天前刚刚宣布达到了一个新的里程碑:博文数超过 100 亿,每月页面浏览量 120 亿. 根据 Richard MacManus,用户大多把 Tumblr 当作一个内容倒卖工具:人们可以很容易的转发文章、图片和视频. 但是, Tumblr 同样也可以当作驱动新闻网站的平台,ShortFormBlog 就是一个例子.