《淘宝十年》笔记
由于TDBM、TBstore的数据接口和用途都很相似,开发团
队把二者合并,推出了淘宝自创的Key-Value缓存系统——Tair
(TaoBao Pair的意思,Pair即Key-Value数据对)。Tair包括缓
存和持久化两种存储功能。Tair作为一个分布式系统,由一个中
心控制节点和一系列的服务节点组成,我们称中心控制节点为
Config Server,服务节点是Data Server。Config Server 负责管理所
有的Data Server,维护Data Server的状态信息。Data Server 对外
提供各种数据服务,并以心跳的形式将自身的状况汇报给Config
Server。Config Server是控制点,而且是单点,目前采用一主一备
的形式来保证其可靠性。所有的Data Server 地位都是等价的。Tair
的架构图如下图所示。
目前,Tair支撑了淘宝几乎所有系统的缓存信息。Tair已开
源,地址为code.taobao.org。
属性是类
似Tag(标签)的一个概念,与类目相比更加离散、灵活,这样
也缩减了类目的深度。这个思想的提出一举解决了分类的难题!
从系统的角度来看,我们建立了“属性”这样一个数据结构,由
于除了类目的子节点有属性外,父节点也可能有属性,于是类目
属性合起来也是一个结构化的数据对象。这个做出来之后,我们
把它独立出来作为一个服务,叫做Catserver(Category Server)。
跟类目属性密切关联的商品搜索功能独立出来,叫做Hesper(金
星)。Catserver和Hesper供淘宝的前后台系统调用。
一切要
以稳定为中心,所有影响系统稳定的因素都要解决掉。例如,每
做一个日常修改,都必须对整个系统回归测试一遍;多个日常修
改如果放在一个版本中,要是一个功能没有测试通过,整个系统
都不能发布。我们把这个叫做“火车模型”,即任何一个乘客没
有上车,都不许发车。这样做最直接的后果就是火车一直晚点,
新功能上线更慢了,我们能明显感觉到业务方的不满,空闻的压
力肯定非常大。