Tair

2,156 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,156
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
32
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Tair

  1. 1. Tair:淘宝的kv解决方案 若海 2010-07-24 1
  2. 2. 目录 • 为什么开发Tair • Tair简史 • Tair的功能 • Tair的内部结构
  3. 3. 为什么开发Tair • 数据库不是万能的 • 对数据存储需求的爆炸式增长 • 数据存储需求的多样性 – 多样化的产品产生了多样化的数据需求 – 不同的数据有不同的重要程度
  4. 4. Tair简史
  5. 5. Tair的特性 • Namespace – 支持不同的应用使用相同的key而不冲突 • Version – 有效的防止并发更新导致数据不一致 • Expire – key级别的失效时间控制 • Counter – 服务器端的原子计数器 • 集合数据格式支持 – 将value视为一个集合,提供对集合中部分数据的读写 接口
  6. 6. Tair的总体架构
  7. 7. 轻量级的configserver • 客户端在启动的时候从configserver获取对 照表,并缓存在本地 • 客户端根据对照表完成请求的路由 • 当对照表发生变化后,数据节点通过给客 户端的response顺带的对照表版本号告知 客户端,客户端主动向configserver请求新 表
  8. 8. 对照表 初始状态 有一个点结不可用 Bucket Number Data node Bucket Number Data Node 1 10.1.1.1 1 10.1.1.1 2 10.1.1.2 2 10.1.1.1 3 10.1.1.3 3 10.1.1.3 4 10.1.1.1 4 10.1.1.1 5 10.1.1.2 5 10.1.1.3 6 10.1.1.3 6 10.1.1.3
  9. 9. DataServer的内部结构
  10. 10. Mdb的一些特性 • 支持使用share memory • namespace级别的容量配额 • Slab的动态平衡
  11. 11. Tair的容灾 • 可以配置的备份数 – 数据在写入主节点后,会异步同步到辅节点 – 如果主节点不可用,则辅节点自动接管成为主节点 • 安全的数据分布方式 – 当集群的节点位于多个机架时,能自动将数据分布 到不同机架的节点上 – 当集群的节点位于多个机房时,能自动将数据分布 到不同机房的节点上 • 自动复制 – 当有节点不可用时,能自动复制数据,保证数据的 备份数
  12. 12. Tair的现状 • 支持Java、C/C++的客户端 • 支撑着淘宝网几乎所有的系统 • 一个使用Mdb的Tair集群信息 – 54个节点,每个节点22GB 的可用存储空间 – 17.8亿数据 – 每秒17.6万次请求 – 246MB/s的数据流量
  13. 13. Tair的未来 • Tair于2010-6-30在code.taobao.org上开源 • 淘宝内部不再有私有分支 • 期待你的加入
  14. 14. 参考资源 • http://code.taobao.org – Tair 的开源平台,包括Tair的代码、文档、讨 论区等 • http://memcached.org/ – 和Tair的缓存系统很相似的一个开源 Cache服 务器 • http://www.allthingsdistributed.com/2007/1 0/amazons_dynamo.html – Dynamo的论文
  15. 15. Q&A There is something in the AIR Taobao pAIR Taobao’s AIR TAI Re(太热)?

×