tair(一)--入门

一.简介

1.tair是淘宝开发的一个分布式key/value存储引擎,tair分为持久化和非持久化两种使用方式,非持久化的tair可以看成是一个分布式缓存,持久化的tair将数据存放于磁盘中。为了解决磁盘损坏导致数据丢失,tair可以配置数据的备份数目,tair自动将一份数据的不同备份放到不同的主机上,当有主机发生异常,无法正常提供服务的时候,其余的备份将会继续提供服务。


二.tair的总体结构

1.tair作为一个分布式系统,是由一个中心控制节点和一系列的服务节点组成,我们称中心控制节点为config server,服务节点是data server,config server负责管理所有的data server,维护data server的状态信息,data server对外提供各种数据服务,并以心跳的形式将自身状况汇报给config server。config server 是控制点,采用一主一备的形式来保证其可靠性,所有的data server地位都是等价的;


2.架构图



3.config server功能:

1)通过维护和data server心跳来获知集群中存活节点的信息;

2)根据存活节点的信息来构建数据在集群中的分布表;

3)根据数据分布表的查询服务;

4)调度data server之间的数据迁移、复制;


4.data server功能

1)提供存储引擎;

2)接受client的put/get/remove等操作;

3)执行数据迁移,复制等;

4)插件:在接受请求的时候处理一些自定义功能;

5)访问统计;


5.client功能

1)在应用端提供访问tair集群的接口;

2)更新并缓存数据分布表和invalid server地址等;

3)local cache,避免过热数据访问影响tair集群服务;

4)流控;


三.tair的负载均衡算法

tair的分布采用的是一致性哈希算法,对于所有的key,分到Q个桶中,桶是负载均衡和数据迁移的基本单位,config server根据一定的策略把每个桶指派到不同的data server上,因为数据按照key做hash算法,保证了桶分布的均衡性,从而保证了数据分布的均衡性;


四.数据迁移

1.增加或减少data server的时候,config server会发现这个情况,config server负责重新计算一张新的桶在data server上的分布表,将原来由减少的机器服务的桶的访问重新指派到其他的data server中,这个时候就会发生数据的迁移。比如原来由data server A负责的桶,在新表中需要由B负责,而B上并没有该桶的数据,那么就将数据迁移到B上来,同时config server会发现哪些桶的备份数目减少了,然后根据负载均衡情况在负载较低的data server上增加这些桶的备份。当系统增加data server的时候,config server根据负载,协调data server将他们控制的部分桶迁移到新的data server上,迁移完成后调整路由;


2.数据迁移时data server对外提供服务的策略,假设data server A要把桶1,2,3迁移到data server B,因为迁移完成前,客户端的路由表没有变化,客户端对1,2,3的访问请求都会路由到A,现在假设1还没迁移,2正在迁移,3已经迁移完成,那么如果访问1,则还是访问data server A,如果访问3,则A会把请求转发给B,并且将B的返回结果返回给客户,如果访问2,则在A上处理,同时如果是对2的修改操作,会记录修改log,当桶2完成迁移的时候,还有把log发送给B,在B上应用这些log,最终AB数据一致才是真正完成迁移。如果A是由于宕机而引发的迁移,客户端会收到一张中间临时状态的分配表,把宕机的data server负责的桶临时指派给有其备份的data server来处理,此时服务是可用的,负载可能不均衡,当迁移完成后,又能达到一个新的负载均衡状态;


参考:http://tair.taobao.org/


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值