淘宝开源KV结构数据存储系统Tair技术分析.docx
- 文档编号:26498476
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:7
- 大小:40.35KB
淘宝开源KV结构数据存储系统Tair技术分析.docx
《淘宝开源KV结构数据存储系统Tair技术分析.docx》由会员分享,可在线阅读,更多相关《淘宝开源KV结构数据存储系统Tair技术分析.docx(7页珍藏版)》请在冰豆网上搜索。
淘宝开源KV结构数据存储系统Tair技术分析
淘宝开源KV结构数据存储系统
Tair技术分析
作者:
日期:
淘宝开源KV结构数据存储系统Tair技术分析-电子商务论文
淘宝开源KV结构数据存储系统Tair技术分析
文/刘磊
摘要:
Tair是淘宝开源的KV数据存取系统,也是成功的NoSql型数据库产品,具有咼性能、分布式、可扩展、咼可靠的特点,已在淘宝、天猫有成熟的大规模应用。
本文从Tair的系统架构、存储引擎、接口API等方面进行浅析,详细介绍了Tair的技术结构和接口API,对于选用Tair系统有一定的参考意义。
关键词:
Tair;存储引擎;接口API
1、系统架构
理论上,一个Tair系统可以由4个模块构成,包括3个必选模块:
ConfigServer(配置服务器)、DataServer(数据服务器)、Client(客户端),一个可选模块:
InvalidServer(维护服务器)。
实践中,一个典型Tair集群包含两台ConfigServer及多台DataServer。
两台ConfigServer互为主备关系,并通过维护和DataServer之间的心跳,获知集群中存活可用的存储服务器,构建数据在集群中的分布信息(对照表)。
多台DataServer则负责数据的实际存取,并按照ConfigServer的指示完成数据的复制和迁移工作。
Client在启动的时候,首先从ConfigServer获取数据分布信息,根据数据分布信息,再和相应的DataServer交互完成用户的请求。
InvalidServer主要负责对等集群的删除和隐藏操作,保证对等集群的数据一致。
一个Tair系统典型架构如图1所示:
从架构上看,ConfigServer的角色与传统应用系统的中心节点作用类似,整个集群服务依赖于ConfigServer的正常工作。
但Tair的优点是,它的
ConfigServer是非常轻量级的,当正在工作的配置服务器宕机时,另外一台会在秒级别时间内自动接管;即使出现两台配置服务器同时宕机的最恶劣情况,只
要数据服务器没有新的变化,Tair依然服务正常。
ConfigServer对于整个Tair系统的意义更多在于,使用时只需要配置ConfigServer的地址,而无需知道内
部节点的情况。
各角色功能如下:
1)ConfigServer:
维护和DataServer心跳,获知集群中存活节点的信息;根据存活节点的信息,构建数据在集群中的分布表;提供数据分布表的查询服务;调度DataServer之间的数据迁移、复制。
2)DataServer:
提供数据存取引擎;接受并执行Client发来的put/get/remove等操作API;执行DataServer之间的数据迁移,复制等;允许在接受请求的时候处理添加的自定义功能。
3)InvalidServer:
接收来自client的invalid/hide等请求后,对属于同一组的集群做delete/hide操作,保证同一组集群的一致;集群断网之后的脏数据清理;执行访问统计功能。
4)Client:
在应用端提供访问Tair集群的接口;更新并缓存数据分布表
和InvalidServer地址等;提供LocalCache,避免过热数据访问影响Tair集群
服务。
2、工作原理
Tair作为一个分布式的key/value存储系统,数据通常存储在多个数据节点(DataServer)上。
客户端(Client)首先需要决定数据存储的具体节点,然后才能完成具体的操作。
其工作原理为:
1)首先启动数据节点(DataServer),每个DataServer都是独立的数据存取服务器。
2)然后启动ConfigServer,ConfigServer会根据配置信息搜索集群内可用的DataServer,并构建一张包含数据与存储节点对应关系的对照表,这张表通过hash值与节点关联。
3)启动客户端(Client),首先与ConfigServer通信,获取到数据对照表后,客户端会根据请求的key的hash值,查找对照表中负责该数据的数据节点,然后通过和数据节点通信完成用户的请求。
3、存储引擎与应用场景
Tair经过淘宝的开发和实践,除了应用于cache缓存外,在持久化存储上支持的应用需求也越来越广泛。
现在主要支持mdb、rdb、ldb三种存储引擎,mdb和rdb用于高效缓存,ldb用于高性能持久化存储。
Tair支持的三种存储引擎如图2。
3;.「为I理貝曲二JOTJSGS口
3.1mdb的应用场景
1)在实际业务中,大部分当缓存用(后端有mysql之类的数据源)。
2)也可用做大访问少量临时数据的存储(例如session登录,防攻击统计等)。
3.2rdb的应用场景
1)适用于需要高速访问某些数据结构的应用,例如SNS中常见的的粉丝存储就可以采用set等结构;
2)存储一个商品的多个属性(hashmap);
3)高效的消息队列(list)等。
3.3ldb的应用场景
1)持续大数据量的存入读取,类似淘宝交易快照。
2)高频度的更新读取,例如计数器,库存更新等。
3)离线大批量数据导入后做查询。
4)数据量大,响应时间敏感度不高的cache需求可以采用。
例如天猫实时推荐。
4、接口API使用分析
Tair提供Java和C++两种语言的接口API。
由于两种客户端API类似,
等常用的数据增删改查
本文以Java客户端API做介绍,分析get/put/delete
接口
♦-IBTlWrLJ
■出
H;橫护■亍春珥
mmspn-•ift鸟T貢
Ca~ji€-r
7-ff-Cr.itMf.i,|I
'■J:
.山3;5讯;’1「.”:
;"L-也1威7'4屮’LI..11'
4if•疝UCOWvM訂
JhF1呼1:
hL:
0,
出uf”I-nJl]I
f!
.刃厂川用!
•*
)diui[
毎打加厉*・l
)
:
l-?
w.■"»
2D
Q1R
*A
r-Tri-tmii.rl'r■平1'k炖对冉的曲d
~£Lrri35ptif:
e
至菊电;kr.®i.i
bH-4DMEnW>^寻謝
、-="•:
■»」rfcd肝
Riintt:
呎:
lyflK&urf-ti-Ul^ 4脚1|呻Sr-tiuK^ 拽打昇幫赴爭 4-3U5整口示悯 fl»% |: .: 芷■»尢屯 ■: *4>4XR k«T打轻 '.rMJeflwTuii聲 eKimTimeAttHM 迴臣Be■典MkKSa Ki^^uliCodti-^^ull亠o『桶由也0商puHsw昭£口0£日Eey*wg石旳毎sspir&Tr-fiL rlIrissLjhi&S.jseeisC: I 金阳顽®. 「曰空ifif^i&su.1.Cod&.VEHE^fi'Dh.eqi^lf.J J5.SASS.翌行更遅代肛 fEHsal 才七«-Frfr^R^ <-*dv.u*悽U *A <1J胛帕 L曲F8! 申! M*金貫年•] 5赛1MH 电质恤-lltCl;比i ! 宝用刊瞧麼口 -^JultCi.-.lHi! t.-^ll-”丘: \>百“4艸「jnr'TifIfHSLl.iiiijCCtlil;;I 41甘跟刑 h旳t■_ /■俐¥: ■崗,沽冇艸幷J*¥ 4.SftJrlrtrifcC 1- 岭! t ■A 1: 护・片芒訂澄 Watrr" A;■: ■: ■-: ! (--1L ifftH! l! tMHrSD uh-1a-r"dM^4T.mdM*l•irtarTMIpACft, >! bb^Liil,: 3^jjoucnnlfHfttMKtA.#l仔艳虚■伟 }创刖i f曲片啊阿鼻堆 5、总结 Tair项目作为淘宝开源的NoSql型数据库产品,解决了传统关系型数据 库的功能短板,适宜于高性能存取海量KV数据,目前淘宝网和天猫有大规模应 用,共建有20多个Tair集群,400多台服务器,存储了数百亿条记录,支持每 秒百万级别的请求。 Tair项目的成功,为云计算时代的超大规模web应用提供 了很好的解决方案。 本文从多个方面浅析Tair技术结构,相信对于选用Tair有 很好的指导意义 作者简介: 刘磊,广东理工职业学院,讲师,地图学与地理信息系统硕士主要研究方向: 软件开发、项目管理、数据存储等。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 淘宝 KV 结构 数据 存储系统 Tair 技术 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)