1、Tair简介现状与应用案例Tair特性内部架构Tair未来分布式Key/Value存储非持久化持久化Tair是什么支持 Java、C/C+的客户端支撑着淘宝绝大部分系统300+台服务器,每台能提供22GB(内存)的空间70亿+的记录每秒百万级别的请求数1GB/s的数据流使用现状应用案例loginbuydetailNamespace支持不同的数据使用相同的key而内容不冲突Version有效的保护并发更新Expirekey的失效时间控制Counter服务器端的原子计数器集合数据格式支持将value视为一个集合,提供对集合中部分数据的读写接口特性get/put/deleteincr/decrmge
2、t/mdeleteget_items/add_items/remove_itemsAPIClientABCDEMasterSlaveconfigserverdataserversheartbeat系统架构HA数据分布按负载分布按机架分布轻量级非传统的中心节点configserver不可用,不会影响集群的服务便于用户使用ConfigServer传统的数据分布方法:将 key 的hash 值对机器数取模实现简单在服务器数量发生变化时对原有分布冲击很大对照表:将 key 的hash 值对一个固定数取模固定数范围内的每个值都与一个节点相对应一台物理机器可以和多个值对应consistent hash的一
3、种变型数据分布两个节点Bucket numberdatanode1192.168.100.12192.168.100.23192.168.100.14192.168.100.25192.168.100.16192.168.100.2新增一个节点Bucket numberdatanode1192.168.100.12192.168.100.23192.168.100.14192.168.100.25192.168.100.36192.168.100.3对照表客户端在启动的时候从configserver获取对照表,并缓存在本地客户端根据对照表完成路由请求对照表变化后?路由ConfigServerD
4、ataServerClientversionrequestrequesttableRequest Plug-insMdbKdbRequestResponseTairServerStorage EngineResponse Plug-insMigrateDuplicatorFdbRdbBdbDataServermdbrdbfdbkdbKyoto cabinetbdbBerkeley DB存储引擎支持使用share memoryNamespace级别的容量配额Slab的动态平衡数据过期清理LRU的淘汰机制mdb特点HashmapSlab Listmdb内存结构ConfigServer HA宕机对服
5、务基本无影响可以配置的备份数数据在写入主节点后,会异步同步到辅节点如果主节点不可用,则辅节点自动接管成为主节点安全的数据分布方式不同机架/机房自动复制当有节点不可用时,能自动复制数据,保证数据的备份数Tair的容灾商品中心Cache单备份双机房登录session全内存双备份双机房交易快照持久化双备份双机房容灾案例mdb22G内存单台QPS 25Wkdb6*300G SAS单台QPS 800Tair的性能服务器端统计与监控负载/容量/总条目数/访问次数/命中率/驱逐次数客户端统计与监控访问延时统计与监控Tair已经在code.taobao.org上开源优化现有存储引擎适应不同场景的存储引擎分级存储内存-SSD-SAS/SATATair的未来Q&A