首页 > 数据库 > 国内数据库 > 易鲸捷数据库QianBase xTP的副本分布规则
易鲸捷QianBase xTP(简称xTP)是一款原生分布式数据库产品,其对象存储在逻辑层面由一个或者多个range组成,表的高可用性由range副本分布来保证,本文主要介绍xTP range副本的分布与启动参数Location的关系。
xTP集群部署主要分两种“普通集群”和“两地三中心集群”,两种部署集群range的副本数不同;普通集群,每个实例处于同等地位,集群中用户自定义表range为3副本,系统表range为5副本;两地三中心集群所有表range为7副本。
本文将主要介绍“普通集群”及“两地三中心集群”,表range在实例中的分布规则(只介绍副本分布规则,不涉及leaseholder分布规则)。
xTP数据库range副本分布的影响因数,是数据库部署时实例启动的参数“--location”;该参数设置是一个有序、以逗号分隔的键值对列表,用于描述实例的地理分布,也影响副本在实例之间的分布;“--location”设置例子如下:

xTP数据库启动参数“--location”,除了以上设置的键值对外,常见的其他键值对设置如下表:
1.1普通集群“--location”键值对设置规则及建议普通集群下region值每个实例相同,如region=esgyn;rid=0或者不设置rid (rid=0与rid不设置等价);如果不设置rid和region,启动时会提示警告;
其他键可以是具有地理标识的任意的字符串,值同样可以是具备地理标识的任意字符串或者数值。
尽量用最少的键来标识机器及副本位置;
如果使用多个键来标识机器及副本位置;键值对按照键值的个数,由从小到大的顺序排列;
region副本分布的基本规则是将副本均衡分布到不同键值标识的实例上,当设置多个键时,多个键值不要冲突,让副本可以满足多个键值进行均衡分布;
测试建议,除rid、region外设置一个键,每台服务器一个值;生产上建议,除rid、region外设置一个键,将服务器数量均分为3等份,分别设置3种值(能接受相同值的实例同时宕机)。
在“多角色云原生容灾”方式部署下,rid取值范围为[1-15];两地三中心部署下,主中心rid=1,region=bj_hd,同城中心rid=2,region=bj_cy,异地中心rid=3,region=tj;3个中心的range副本比例为3:3:1分布;
除rid和region以外的其他键值设置,可以将每个中心假设为一个普通集群,每个中心按照普通集群键值对设置建议进行设置。
普通集群,所有实例的rid与region设置相同(rid=0,region=esgyn),相同的rid、region键值对不会影响副本的分布。
除rid与region外,再设置一个键值对,如6实例的集群键设置为weizhi(位置),weizhi的值分别设置为jijia1,jijia2,jijia3(机架编号),集群6实例“--location”设置如下:

如上所示集群,range的3个副本会均衡分布到这三个值标记的实例上。
除rid与region外,再设置多个键值对,如6实例的集群键设置为weizhi(位置),zhuji(主机),按照设置建议,weizhi的值分别设置为jijia1,jijia2,jijia3,zhuji的值分布设置为host1,host2,host3,host4,host5,host6,集群6实例“--location”设置如下:

如上所示集群,range的3个副本会均衡分布到键weizhi三个值标记的实例上,同时也会均衡分布到键zhuji六个值标记的实例上。
两地三中心集群部署后,主中心rid=1,region=bj_hd,同城中心rid=2,region=bj_cy,异地中心rid=3,region=tj;3个中心的range副本比例为3:3:1规则分布。
每个中心副本分布规则参考普通集群的副本分布规则说明。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026636/viewspace-2961692/ ,如需转载,请注明出处,否则将追究法律责任。