一种表格副本的扩展方法、系统、装置及电子设备与流程

文档序号:30309453发布日期:2022-06-05 10:01阅读:87来源:国知局
一种表格副本的扩展方法、系统、装置及电子设备与流程

1.本发明涉及云存储技术领域,特别是涉及一种表格副本的扩展方法、系统、装置及电子设备。


背景技术:

2.所谓分布式表格系统,是以表格形式存储用户数据的存储系统。在分布式表格系统中,为了容忍坏盘和服务器宕机以保证数据安全,通常会采用多副本来存储表格,例如:采用3副本、5副本或7副本等来存储表格。具体而言,在采用多副本存储表格时,一份数据副本作为主,其它数据副本作为从,主从副本通过raft协议(分布式一致性复制协议)保持数据一致性。并且,分布式表格系统中的表格通常被分割为多个分片,每个分片均存在多个副本。
3.然而,随着集群规模的增加,存在坏盘或宕机的概率增加。由于对于raft协议来说,只要一个分片的多数副本可用,则服务可用,因此,分布式表格系统中,表格副本配置越多,则数据安全性、服务可用性越高。
4.但是,如果表格副本扩展时占用过多的系统资源,则会影响到分布式表格系统提供正常的线上服务。因此,如何在保证分布式表格系统提供正常线上服务的前提下,实现分布式表格系统中的表格的副本扩展,是一个亟待解决的问题。


技术实现要素:

5.本发明实施例的目的在于提供一种表格副本的扩展方法、系统、装置及电子设备,以实现在保证分布式表格系统提供正常线上服务的前提下,对分布式表格系统中的表格进行副本扩展的目的。具体技术方案如下:
6.第一方面,本发明实施例提供了一种表格副本的扩展方法,应用于分布式表格系统,所述方法包括:
7.确定目标表格对应的当前分片数量;其中,所述当前分片数量为在本轮扩展副本时,所述目标表格的待扩展副本的分片的数量,且所述当前分片数量为能够保证所述分布式表格系统的正常线上访问的数量;从所述目标表格的未被扩展副本的分片中,确定与所述当前分片数量相匹配的至少一个目标分片;
8.针对每一目标分片,基于目标副本数量,对该目标分片进行副本扩展;其中,所述目标副本数量为所述目标表格所需扩展到的副本数量;
9.在各个目标分片的副本扩展完毕后,循环执行所述确定目标表格对应的当前分片数量的步骤,直至所述目标表格的所有分片的副本均扩展完毕。可选地,所述确定目标表格对应的当前分片数量,包括:
10.针对除第一轮以外的任一轮副本扩展,若上一轮各个目标分片扩展完毕的时长小于预定时间阈值,则将第一数量确定为目标表格对应的当前分片数量,其中,所述第一数量为大于上一轮中目标分片的分片数量的值;
11.若上一轮各个目标分片扩展完毕的时长不小于预定时间阈值,则将第二数量确定为目标表格对应的当前分片数量,其中,所述第二数量为不大于上一轮中目标分片的分片数量的值。
12.可选地,所述确定目标表格对应的当前分片数量,包括:
13.接收目标处理装置发送的针对目标表格的副本扩展请求,其中,所述副本扩展请求中携带有所述目标表格对应的当前分片数量;
14.从所述副本扩展请求中解析所述当前分片数量。
15.可选地,所述针对每一目标分片,基于目标副本数量,对该目标分片进行副本扩展,包括:
16.针对每一目标分片,确定目标副本数量与该目标分片的当前副本数量的差值,作为待扩展数量,并生成该目标分片的所述待扩展数量个副本。
17.可选地,所述生成该目标分片的所述待扩展数量个副本,包括:
18.为该目标分片生成所述待扩展数量个副本扩展任务,并执行每一副本扩展任务;
19.其中,所述副本扩展任务用于为该目标分片生成一个副本。
20.可选地,任一副本扩展任务的执行过程,包括:
21.指示目标服务器生成针对该目标分片的一个内容为空的新副本;其中,所述目标服务器为所述分布式表格系统中的、未存储有该目标分片的副本的任一存储服务器;
22.将该目标分片的主副本的数据拷贝到所述新副本中,并将所述目标服务器添加至该目标分片的关于存储服务器的预定协议组中,其中,所述预定协议组中的组员均为存储有该目标分片的存储服务器。
23.可选地,所述方法还包括:
24.在所述目标表格的所有分片的副本均扩展完毕后,基于所述目标副本数量,调整所述目标表格的副本总数量。
25.可选地,所述基于所述目标副本数量,调整所述目标表格的副本总数量,包括:
26.向指定服务器发送针对所述目标表格的副本数量调整指令,以使得所述指定服务器基于所述副本数量调整指令,调整所述目标表格的副本总数量;
27.其中,所述调整指令中携带有所述目标副本数量,且所述指定服务器为分布式表格系统中的用于存储各表格的副本总数量的服务器。
28.第二方面,本发明实施例提供了一种表格副本的扩展系统,包括:分布式表格系统和目标处理装置;
29.所述目标处理装置,用于向分布式表格系统发送针对目标表格的副本扩展请求,其中,所述副本扩展请求中携带有目标表格对应的当前分片数量,且所述当前分片数量为在本轮扩展副本时,所述目标表格的待扩展副本的分片的数量,且所述当前分片数量为能够保证所述分布式表格系统的正常线上访问的数量;
30.所述分布式表格系统,用于接收目标处理装置发送的针对所述目标表格的副本扩展请求,从所述副本扩展请求中解析所述当前分片数量;从所述目标表格的未被扩展副本的分片中,确定与所述当前分片数量相匹配的至少一个目标分片;针对每一目标分片,基于目标副本数量,对该目标分片进行副本扩展;其中,所述目标副本数量为所述目标表格所需扩展到的副本数量;在各个目标分片的副本扩展完毕后,循环执行所述接收目标处理装置
发送的针对所述目标表格的副本扩展请求的步骤;
31.所述目标处理装置,还用于在各个目标分片的副本扩展完毕后,再次向分布式表格系统发送针对所述目标表格的副本扩展请求,直至所述目标表格的所有分片的副本均扩展完毕。
32.可选地,所述目标处理装置向分布式表格系统发送针对目标表格的副本扩展请求,包括:
33.确定目标表格对应的当前分片数量,并基于所确定的当前分片数量,向分布式表格系统发送针对所述目标表格的副本扩展请求;
34.其中,所述确定目标表格对应的当前分片数量,包括:
35.针对除第一轮以外的任一轮副本扩展,若上一轮各个目标分片扩展完毕的时长小于预定时间阈值,则将第一数量确定为目标表格对应的当前分片数量,其中,所述第一数量为大于上一轮中目标分片的分片数量的值;
36.若上一轮各个目标分片扩展完毕的时长不小于预定时间阈值,则将第二数量确定为目标表格对应的当前分片数量,其中,所述第二数量为不大于上一轮中目标分片的分片数量的值。
37.第三方面,本发明实施例提供了一种表格副本的扩展装置,应用于分布式表格系统,所述装置包括:
38.数量确定模块,用于确定目标表格对应的当前分片数量;其中,所述当前分片数量为在本轮扩展副本时,所述目标表格的待扩展副本的分片的数量,且所述当前分片数量为能够保证所述分布式表格系统的正常线上访问的数量;分片确定模块,用于从所述目标表格的未被扩展副本的分片中,确定与所述当前分片数量相匹配的至少一个目标分片;
39.副本扩展模块,用于针对每一目标分片,基于目标副本数量,对该目标分片进行副本扩展;并且,在各个目标分片的副本扩展完毕后,触发所述数量确定模块循环执行所述确定目标表格对应的当前分片数量的步骤,直至所述目标表格的所有分片的副本均扩展完毕;
40.其中,所述目标副本数量为所述目标表格所需扩展到的副本数量。
41.第四方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
42.存储器,用于存放计算机程序;
43.处理器,用于执行存储器上所存放的程序时,实现本发明第一方面所提供的方法的步骤。
44.第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明第一方面所提供的方法步骤。
45.本发明实施例有益效果:
46.本发明实施例提供的表格副本的扩展方案中,以分片作为副本扩展的最小粒度,通过至少一轮扩展过程来进行副本扩展且每轮副本扩展时目标表格对应的当前分片数量为能够保证分布式表格系统的正常线上访问的数量,这样使得在每轮副本扩展过程中,均可以保证分布式表格系统能够提供正常线上服务。可见,通过本方案可以实现在保证分布
式表格系统提供正常线上服务的前提下,对分布式表格系统中的表格进行副本扩展的目的。
47.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
48.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
49.图1为本发明实施例所提供的一种表格副本的扩展方法的流程图;
50.图2为本发明实施例所提供的一种表格副本的扩展方法的又一流程图;
51.图3为本发明实施例所提供的一种表格副本的扩展系统的结构示意图;
52.图4为本发明实施例所提供的一种表格副本的扩展装置的结构示意图;
53.图5为本发明实施例所提供的一种电子设备的结构示意图。
具体实施方式
54.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.为了实现在保证分布式表格系统提供正常线上服务的前提下,对分布式表格系统中的表格进行副本扩展的目的,本发明实施例提供了一种表格副本的扩展方法、系统、装置及电子设备。
56.需要说明的是,本发明实施例所提供的一种表格副本的扩展方法,应用于分布式表格系统。具体而言,执行本发明实施例所提供的一种表格副本的扩展方法的执行主体可以为一种表格副本扩展装置。
57.其中,分布式表格系统的系统组成可以存在多种。示例性的,在一种实现方式中,该分布式表格系统可以包括多台存储服务器、至少一台元数据服务器,以及用于存储分布式表格系统的元数据的服务器,例如zookeeper集群;在另一种实现方式中,该分布式表格系统也可以仅仅包括多台存储服务器以及至少一台元数据服务器。具体而言,存储服务器用于存储表格的分片的副本;在包括用于存储分布式表格系统的元数据的服务器的前提下,元数据服务器用于存储表格的元数据,而在未包括用于存储分布式表格系统的元数据的服务器的前提下,元数据服务器可以用于存储表格的元数据以及分布式表格系统的元数据;另外,元数据服务器可以定时或不定时地从存储服务器中检测表格的各个分片的副本信息,例如副本数量。其中,在具体应用中,为了提高系统可靠性,元数据服务器的数量可以为2台,即一台主服务器和一台从服务器;并且,表格的元数据可以包括:表格的标识、分片的标识、表格的上传者、表格的数据量等等;而分布式表格系统的元数据可以包括但不局限于:各个表格的副本总数量,以及关于分布式表格系统的其他元数据,例如:存储服务器的
数量、存储服务器中的操作系统、存储服务器的运行状态、主服务器的访问地址、从服务器的访问地址、存储服务器的访问地址等等。
58.基于上述的分布式表格系统的系统组成,该表格副本的扩展装置具体可以运行于元数据服务器中,当然并不局限于此。
59.另外,针对任一表格而言,在采用多副本存储表格时,一份副本作为主副本,其它副本作为从副本,主从副本通过raft协议(一致性协议)等协议保持数据一致性。并且,针对任一表格而言,其被分割为多个分片,同一分片的不同副本被存储在不同的存储服务器中,且任一分配的多个副本中,一份副本作为主,其它副本作为从,主从副本通过raft协议等协议保持数据一致性。需要说明的是,本发明实施例并不对如何将任一表格分割成多个分片的方式进行限定,以及主从副本通过raft协议等协议保持数据一致性的实现方式进行限定;并且,每一分片可以已具有存储在不同存储服务器中的多个副本或未存储有副本,本发明实施例的目的是针对分片的副本进行扩展,例如:从3副本扩展到5副本,或者,从5副本扩展到7副本,或者,从0副本扩展到5副本,等等。
60.其中,一种表格副本的扩展方法,应用于分布式表格系统,所述方法包括:
61.确定目标表格对应的当前分片数量;其中,所述当前分片数量为在本轮扩展副本时,所述目标表格的待扩展副本的分片的数量,且所述当前分片数量为能够保证所述分布式表格系统的正常线上访问的数量;从目标表格的未被扩展副本的分片中,确定与当前分片数量相匹配的至少一个目标分片;
62.针对每一目标分片,基于目标副本数量,对该目标分片进行副本扩展;其中,目标副本数量为目标表格所需扩展到的副本数量;
63.在各个目标分片的副本扩展完毕后,循环执行所述确定目标表格对应的当前分片数量的步骤,直至目标表格的所有分片的副本均扩展完毕。
64.本发明实施例提供的表格副本的扩展方案中,以分片作为副本扩展的最小粒度,通过至少一轮扩展过程来进行副本扩展且每轮副本扩展时目标表格对应的当前分片数量为能够保证分布式表格系统的正常线上访问的数量,这样使得在每轮副本扩展过程中,均可以保证分布式表格系统能够提供正常线上服务。可见,通过本方案可以实现在保证分布式表格系统提供正常线上服务的前提下,对分布式表格系统中的表格进行副本扩展的目的。
65.下面结合附图,对本发明实施例所提供的一种表格副本的扩展方法进行详细介绍。
66.如图1所示,本发明一实施例所提供的一种表格副本的扩展方法,应用于分布式表格系统,该方法可以包括如下步骤:
67.s101,确定目标表格对应的当前分片数量;其中,该当前分片数量为在本轮扩展副本时,该目标表格的待扩展副本的分片的数量,且所述当前分片数量为能够保证所述分布式表格系统的正常线上访问的数量;
68.当需要对目标表格进行副本扩展时,为了保证系统可用性,即分布式表格系统提供正常线上服务,可以以分片作为副本扩展的最小粒度,并且,在扩展过程中,并不是直接将所有分片一并扩展,而是通过至少一轮扩展过程来进行扩展,且每轮副本扩展时目标表格对应的当前分片数量,即待扩展分片的数量,均为能够保证该分布式表格系统的正常线
上访问的数量。这样,可以使得每轮副本扩展过程中,均能够保证分布式表格系统能够提供正常线上服务。可以理解的是,分布式表格系统中所存储的任一表格均可以作为目标表格,并且,目标表格的副本扩展过程可以由目标表格所属的用户来触发执行,也可以由分布式表格系统的管理人员来触发执行。
69.另外,目标表格对应的当前分片数量可以由表格副本的扩展装置来自行指定,或者,通过与表格副本的扩展装置相通信的目标处理装置来指定,即目标处理装置传递目标表格对应的当前分片数量给该表格副本的扩展装置,进而该扩展装置可以确定出目标表格对应的当前分片数量。其中,目标处理装置为分布式表格系统的外围工具,示例性的,该目标处理装置可以为能够访问元数据服务器的客户端,当然并不局限于此。
70.并且,为了保证系统可用性的同时,兼顾扩展速率,第一轮副本扩展时,目标表格对应的当前分片数量可以为人工指定的经验值,而针对除第一轮以外的任一轮副本扩展,可以参考上一轮扩展过程的扩展情况来进行当前分片数量的确定。示例性的,确定目标表格对应的当前分片数量,可以包括:
71.针对除第一轮以外的任一轮副本扩展,若上一轮各个目标分片扩展完毕的时长小于预定时间阈值,则将第一数量确定为目标表格对应的当前分片数量,其中,该第一数量为大于上一轮中目标分片的分片数量的值;
72.若上一轮各个目标分片扩展完毕的时长不小于预定时间阈值,则将第二数量确定为目标表格对应的当前分片数量,其中,该第二数量为不大于上一轮中目标分片的分片数量的值。
73.其中,上一轮中目标分片为上一轮中发生扩展副本的分片。
74.举例而言:若第一轮副本扩展过程中所确定出的目标表格对应的当前分片数量为n,则第二轮副本扩展过程中,若上一轮各个目标分片扩展完毕的时长小于预定时间阈值,表明系统资源充足,则可以将第一数量确定为本轮中目标表格对应的当前分片数量,其中,第一数量可以为n+s1,s1的取值可以为1,2、3等小于n的取值,或者,第一数量可以为n*s2,s2的取值可以为大于1的数值;若上一轮各个目标分片扩展完毕的时长不小于预定时间阈值,表明系统资源不足,则可以将第二数量确定为本轮中目标表格对应的当前分片数量,其中,第二数量可以为n-s3,s3的取值可以为1、2、3等小于n的取值,或者,第二数量可以为n*s4,s4的取值可以为小于1的取值。
75.另外,第一轮副本扩展过程中,目标表格对应的当前分片数量的确定方式可以存在多种。示例性的,若目标表格的分片总数量少于预定数量阈值,考虑到少量的分片扩展对于系统资源的占用较少,不会影响系统提供正常线上服务,因此,可以将目标表格的分片总数量作为目标表格对应的当前分片数量,此时,目标表格的副本扩展过程仅仅执行一轮副本扩展即可。若目标表格的分片总数量大于预定数量阈值,则可以通过特定的确定方式来确定第一轮中目标表格对应的当前分片数量,示例性的,将目标表格的分片总数量乘以指定比例,得到目标表格对应的当前分片数量;或者,结合当前分布式系统的访问量和/或资源占用情况,以及目标表格的分片总数量来确定待利用比例,从而将目标表格的分片总数量乘以待利用比例,得到目标表格对应的当前分片数量,等等。其中,管理人员可以预先建立关于当前分布式系统的访问量和/或资源占用情况、表格的分片总数量,与比例的对应关系,从而可以利用该对应关系,来确定待利用比例。
76.s102,从该目标表格的未被扩展副本的分片中,确定与该当前分片数量相匹配的至少一个目标分片;
77.在确定出本轮当前分片数量后,可以基于该当前分片数量,来选取目标分片。其中,所谓的确定与该当前分片数量相匹配的至少一个目标分片具体包括:当该目标表格的未被扩展副本的分片的数量不小于该当前分片数量时,则从该目标表格的未被扩展副本的分片中,确定与该当前分片数量的个数相同的目标分片;当该目标表格的未被扩展的分片的数量小于该当前分片数量时,则将该目标表格的未被扩展副本的所有分片均作为目标分片。
78.s103,针对每一目标分片,基于目标副本数量,对该目标分片进行副本扩展;其中,该目标副本数量为该目标表格所需扩展到的副本数量;
79.其中,目标副本数量可以直接通过该扩展装置所提供的人机交互界面来进行人工设定,从而该扩展装置可以获得该目标副本数量;或者,由目标处理装置所提供的人机交互界面来进行人工设定,从而目标处理装置可以获得目标该副本数量,并传输给该扩展装置。
80.其中,针对每一目标分片,基于目标副本数量,对该目标分片进行副本扩展,可以包括:
81.针对每一目标分片,确定目标副本数量与该目标分片的当前副本数量的差值,作为待扩展数量,并生成该目标分片的该待扩展数量个副本。
82.在生成该目标分片的该待扩展数量个副本时,可以采用任一种能够生成表格的分片的副本的方式。可选地,在一种实现方式中,生成该目标分片的所述待扩展数量个副本,可以包括:
83.为该目标分片生成该待扩展数量个副本扩展任务,并执行每一副本扩展任务;其中,该副本扩展任务用于为该目标分片生成一个副本。
84.示例性的,任一副本扩展任务的执行过程,可以包括:
85.指示目标服务器生成针对该目标分片的一个内容为空的新副本;其中,该目标服务器为该分布式表格系统中的、未存储有该目标分片的副本的任一存储服务器;
86.将该目标分片的主副本的数据拷贝到该新副本中,并将该目标服务器添加至该目标分片的关于存储服务器的预定协议组中,其中,该预定协议组中的组员均为存储有该目标分片的存储服务器。示例性的,该预定协议主可以为raft协议组,当然并不局限于此,其中,该raft协议为一致性协议。
87.可以理解的是,目标表格的每一分片均存在一个关于存储服务器的预定协议组,任一分片的预定协议组中包括有存储该分片的各个副本的多个存储服务器,各个存储服务器中所存储的该分片的副本,通过raft协议等协议来保持数据一致性。
88.s104,在各个目标分片的副本扩展完毕后,循环执行确定目标表格对应的当前分片数量的步骤,直至该目标表格的所有分片的副本均扩展完毕。
89.在各个目标分片的副本扩展完毕后,若存在该目标表格的未被扩展副本的分片,则循环执行确定目标表格对应的当前分片数量,即再进入下一轮的副本扩展过程。
90.并且,在该目标表格的所有分片的副本均扩展完毕之后或之前,可以调整该目标表格的副本总数量。需要说明的是,若在该目标表格的所有分片的副本均扩展完毕之前,调整目标表格的副本总数量,在具体应用中可能存在如下情况:假如表t的一个分片a有2个副
本,在触发副本扩展后元数据服务器生成对a生成3个副本扩展任务,然而元数据服务器在并发执行恢复任务的过程中宕机,备元数据服务器切主,切主后检查副本安全性,发现a的副本总数量的配置信息是5,而实际上a只有2个副本,误判a存在数据丢失,影响系统可用性。因此,为了保证系统可用性,在具体应用中,可以在该目标表格的所有分片的副本均扩展完毕之后调整该目标表格的副本总数量。为了布局清晰以及方案清楚,后续结合另一实施例对具体如何调整该目标表格的副本总数量来进行详细介绍。
91.本发明实施例提供的表格副本的扩展方案中,以分片作为副本扩展的最小粒度,通过至少一轮扩展过程来进行副本扩展且每轮副本扩展时目标表格对应的当前分片数量为能够保证分布式表格系统的正常线上访问的数量,这样使得在每轮副本扩展过程中,均可以保证分布式表格系统能够提供正常线上服务。可见,通过本方案可以实现在保证分布式表格系统提供正常线上服务的前提下,对分布式表格系统中的表格进行副本扩展的目的。
92.如图2所示,本发明的另一实施例中,本发明实施例所提供的一种表格副本的扩展方法,可以包括如下步骤:
93.s201,接收目标处理装置发送的针对目标表格的副本扩展请求,其中,该副本扩展请求中携带有该目标表格对应的当前分片数量;
94.其中,该当前分片数量为在本轮扩展副本时,该目标表格的待扩展副本的分片的数量,且该当前分片数量为能够保证该述分布式表格系统的正常线上访问的数量。
95.s202,从该副本扩展请求中解析该当前分片数量;其中,目标处理装置在获得针对目标表格的副本扩展指令后,可以向表格副本的扩展装置发送针对目标表格的副本扩展请求,进而,该表格副本的扩展装置可以接收到针对目标表格的副本扩展请求,并从该副本扩展请求中解析当前分片数量,执行本轮的副本扩展过程。其中,若该副本扩展请求中仅仅携带有目标表格对应的当前分片数量,此时,目标处理装置还可以向表格副本的扩展装置来发送目标副本数量,或者,表格副本的扩展装置自行根据目标表格当前副本数量来确定出目标副本数量;当然,该副本扩展请求中也可以同时携带有目标表格对应的当前分片数量和目标副本数量。
96.可以理解的是,目标处理装置可以为能够访问元数据服务器的专门的客户端,这样,当用户或管理人员希望将某一个目标表格是否进行副本扩展时,可以向目标处理装置来发出针对目标表格的副本扩展指令。并且,目标处理装置对于各轮副本扩展过程中的当前分片数量的确定方式可以与上述实施例中相应的确定方式相同,在此不作赘述。
97.s203,从该目标表格的未被扩展副本的分片中,确定与该当前分片数量相匹配的至少一个目标分片;
98.s204,针对每一目标分片,基于目标副本数量,对该目标分片进行副本扩展;其中,所述目标副本数量为所述目标表格所需扩展到的副本数量;
99.本实施例中,步骤s203-s204与上述实施例中的s102-s103相同,在此不作赘述。
100.s205,在各个目标分片的副本扩展完毕后,循环执行接收目标处理装置发送的针对该目标表格的副本扩展请求的步骤,直至所述目标表格的所有分片的副本均扩展完毕。
101.在目标处理装置检测到各个目标分片的副本扩展完毕,若存在该目标表格的未被扩展副本的分片,则可以继续向表格副本的扩展装置发送针对该目标表格的副本扩展请
求,从而使得在各个目标分片的副本扩展完毕后,循环执行接收目标处理装置发送的针对该目标表格的副本扩展请求的步骤,直至所述目标表格的所有分片的副本均扩展完毕。
102.具体而言,目标处理装置确定每一轮中目标表格对应的当前分片数量的方式,可以参见上述的扩展装置确定每一轮中目标表格对应的当前分片数量的方式相同,在此不做赘述。
103.本发明实施例提供的表格副本的扩展方案中,通过目标处理装置和分布式表格系统进行交互来实现副本扩展,具体而言:以分片作为副本扩展的最小粒度,通过至少一轮扩展过程来进行副本扩展且副本扩展时目标表格对应的当前分片数量为能够保证分布式表格系统的正常线上访问的数量,这样使得在每轮副本扩展过程中,均可以保证分布式表格系统能够提供正常线上服务。可见,通过本方案可以实现在保证分布式表格系统提供正常线上服务的前提下,对分布式表格系统中的表格进行副本扩展的目的。
104.可选地,在本发明的另一实施例中,该表格副本的扩展方法还可以包括:
105.在该目标表格的所有分片的副本均扩展完毕后,基于该目标副本数量,调整该目标表格的副本总数量。
106.示例性的,在一种实现方式中,若各表格的副本总数量存储在元数据服务器中,则表格副本的扩展装置可以直接对元数据服务器中的该目标表格的副本总数量进行调整。
107.示例性的,在一种实现方式中,若各表格的副本总数量存在在元数据服务器以外的服务器,例如:zookeeper集群,则基于该目标副本数量,调整该目标表格的副本总数量,包括:
108.向指定服务器发送针对该目标表格的副本数量调整指令,以使得该指定服务器基于所述副本数量调整指令,调整该目标表格的副本总数量;
109.其中,该调整指令中携带有该目标副本数量,且该指定服务器为分布式表格系统中的用于存储各表格的副本总数量的服务器。
110.本实施例所提供方案可以实现在保证分布式表格系统提供正常线上服务的前提下,对分布式表格系统中的表格进行副本扩展的目的。并且,在该目标表格的所有分片的副本均扩展完毕后,基于该目标副本数量,调整该目标表格的副本总数量,可以进一步保证系统可用性,避免副本扩展过程中宕机所带来的副本数量误判问题。
111.为了方便理解方案,下面结合具体实施例对本发明实施例所提供的一种表格副本的扩展方法进行说明。
112.假设目标表格t的副本总数量为3,通过本发明实施例所提供的方法,将目标表格的副本总数量扩展为5,具体过程可以包括:
113.s1、外围工具,即目标处理装置,向分布式表格系统中的元数据服务器发出针对目标表格t的第一轮的副本扩展请求,该第一轮的副本扩展请求中携带有的目标表格t对应的当前分片数量n,即第一轮副本扩展过程用于扩展目标表格t的n个分片;其中,n小于目标表格t的分片的总数量。
114.s2、元数据服务器根据该副本扩展请求,从目标表格t的未被扩展副本的分片中,选择目标表格t的n个目标分片,然后对每个目标分片生成并执行副本扩展任务;
115.其中,针对每一目标分片,该目标分片缺多少副本,该元数据服务器可以生成多少个副本扩展任务。具体而言,针对每一目标分片,可以生成2个副本扩展任务。
116.s3、外围工具在检测到上一轮n个目标分片的执行完毕的时长小于预定阈值,则向元数据服务器发出第二轮的副本扩展请求,以扩展目标表格t的n+1个分片;否则,发出第二轮的副本扩展请求,扩展目标表格t的n/2个分片;
117.s4、元数据服务器根据新一轮的扩展请求,从目标表格t的未被扩展副本的分片中,选择与该新一轮的扩展请求中的分片数量相匹配的至少一个目标分片,然后对所选取的每个目标分片生成并执行副本扩展任务,其中,缺多少副本就发起多少个任务;
118.s5、重复s3、s4,直到目标表格t的所有分片的副本扩展完成;
119.s6、元数据服务器在检测到目标表格t的所有分片的副本扩展完成后,元数据服务器与zookeeper集群通信,将目标表格t的副本总数量调整为5。
120.本实施例所提供的方案可以实现在保证分布式表格系统提供正常线上服务的前提下,对分布式表格系统中的表格进行副本扩展的目的。并且,可以保证系统可用性,避免副本扩展过程中宕机所带来的副本数量误判问题。
121.基于上述的方法实施例,本发明实施例还提供了一种表格副本的扩展系统。如图3所示,本发明实施例所提供的一种表格副本的扩展系统可以包括:分布式表格系统310和目标处理装置320;
122.该目标处理装置320,用于向分布式表格系统发送针对目标表格的副本扩展请求,其中,所述副本扩展请求中携带有目标表格对应的当前分片数量,且所述当前分片数量为在本轮扩展副本时,所述目标表格的待扩展副本的分片的数量,且所述当前分片数量为能够保证所述分布式表格系统的正常线上访问的数量;
123.该分布式表格系统310,用于接收目标处理装置发送的针对所述目标表格的副本扩展请求,从所述副本扩展请求中解析所述当前分片数量;从所述目标表格的未被扩展副本的分片中,确定与所述当前分片数量相匹配的至少一个目标分片;针对每一目标分片,基于目标副本数量,对该目标分片进行副本扩展;其中,所述目标副本数量为所述目标表格所需扩展到的副本数量;在各个目标分片的副本扩展完毕后,循环执行所述接收目标处理装置发送的针对所述目标表格的副本扩展请求的步骤;
124.该目标处理装置320,还用于在各个目标分片的副本扩展完毕后,再次向分布式表格系统发送针对所述目标表格的副本扩展请求,直至所述目标表格的所有分片的副本均扩展完毕。
125.本发明实施例提供的表格副本的扩展方案中,以分片作为副本扩展的最小粒度,通过至少一轮扩展过程来进行副本扩展且每轮副本扩展时目标表格对应的当前分片数量为能够保证分布式表格系统的正常线上访问的数量,这样使得在每轮副本扩展过程中,均可以保证分布式表格系统能够提供正常线上服务。可见,通过本方案可以实现在保证分布式表格系统提供正常线上服务的前提下,对分布式表格系统中的表格进行副本扩展的目的。
126.可选地,所述目标处理装置320向分布式表格系统发送针对目标表格的副本扩展请求,包括:
127.确定目标表格对应的当前分片数量,并基于所确定的当前分片数量,向分布式表格系统发送针对所述目标表格的副本扩展请求;
128.其中,所述确定目标表格对应的当前分片数量,包括:
129.针对除第一轮以外的任一轮副本扩展,若上一轮各个目标分片扩展完毕的时长小于预定时间阈值,则将第一数量确定为目标表格对应的当前分片数量,其中,所述第一数量为大于上一轮中目标分片的分片数量的值;
130.若上一轮各个目标分片扩展完毕的时长不小于预定时间阈值,则将第二数量确定为目标表格对应的当前分片数量,其中,所述第二数量为不大于上一轮中目标分片的分片数量的值。
131.可选地,分布式表格系统310针对每一目标分片,基于目标副本数量,对该目标分片进行副本扩展,具体包括:
132.针对每一目标分片,确定目标副本数量与该目标分片的当前副本数量的差值,作为待扩展数量,并生成该目标分片的所述待扩展数量个副本。
133.可选地,分布式表格系统310生成该目标分片的所述待扩展数量个副本,包括:
134.为该目标分片生成所述待扩展数量个副本扩展任务,并执行每一副本扩展任务;
135.其中,该副本扩展任务用于为该目标分片扩展一个副本。
136.可选地,任一副本扩展任务的执行过程,包括:
137.指示目标服务器生成针对该目标分片的一个内容为空的新副本;其中,该目标服务器为所述分布式表格系统中的、未存储有该目标分片的副本的任一存储服务器;
138.将该目标分片的主副本的数据拷贝到所述新副本中,并将所述目标服务器添加至该目标分片的关于存储服务器的预定协议组中,其中,所述预定协议组中的组员均为存储有该目标分片的存储服务器。
139.可选地,该分布式表格系统310还用于在该目标表格的所有分片的副本均扩展完毕后,基于该目标副本数量,调整该目标表格的副本总数量。
140.可选地,该分布式表格系统310基于所述目标副本数量,调整该目标表格的副本总数量,具体包括:
141.向指定服务器发送针对该目标表格的副本数量调整指令,以使得该述指定服务器基于该副本数量调整指令,调整该目标表格的副本总数量;
142.其中,该调整指令中携带有该目标副本数量,且该指定服务器为分布式表格系统中的用于存储各表格的副本总数量的服务器。
143.上述的表格分布式系统310和目标处理装置320的各个功能的具体实现可以参照上述方法实施例的相关内容,在此不作赘述。
144.相应于上述方法实施例,本发明实施例还提供了一种表格副本的扩展装置,应用于分布式表格系统,如图4所示,所述装置包括:
145.数量确定模块410,用于确定目标表格对应的当前分片数量;其中,所述当前分片数量为在本轮扩展副本时,所述目标表格的待扩展副本的分片的数量,且所述当前分片数量为能够保证所述分布式表格系统的正常线上访问的数量;分片确定模块420,用于从所述目标表格的未被扩展副本的分片中,确定与所述当前分片数量相匹配的至少一个目标分片;
146.副本扩展模块430,用于针对每一目标分片,基于目标副本数量,对该目标分片进行副本扩展;并且,在各个目标分片的副本扩展完毕后,触发所述数量确定模块410循环执行所述确定目标表格对应的当前分片数量的步骤,直至所述目标表格的所有分片的副本均
扩展完毕;
147.其中,所述目标副本数量为所述目标表格所需扩展到的副本数量。
148.本发明实施例提供的表格副本的扩展方案中,以分片作为副本扩展的最小粒度,通过至少一轮扩展过程来进行副本扩展且每轮副本扩展时目标表格对应的当前分片数量为能够保证分布式表格系统的正常线上访问的数量,这样使得在每轮副本扩展过程中,均可以保证分布式表格系统能够提供正常线上服务。可见,通过本方案可以实现在保证分布式表格系统提供正常线上服务的前提下,对分布式表格系统中的表格进行副本扩展的目的。
149.可选地,所述数量确定模块410具体用于:
150.针对除第一轮以外的任一轮副本扩展,若上一轮各个目标分片扩展完毕的时长小于预定时间阈值,则将第一数量确定为目标表格对应的当前分片数量,其中,所述第一数量为大于上一轮中目标分片的分片数量的值;
151.若上一轮各个目标分片扩展完毕的时长不小于预定时间阈值,则将第二数量确定为目标表格对应的当前分片数量,其中,所述第二数量为不大于上一轮中目标分片的分片数量的值。
152.可选地,所述数量确定模块410具体用于:
153.接收目标处理装置发送的针对目标表格的副本扩展请求,其中,所述副本扩展请求中携带有所述目标表格对应的当前分片数量;
154.从所述副本扩展请求中解析所述当前分片数量。
155.可选地,所述副本扩展模块430具体用于:
156.针对每一目标分片,确定目标副本数量与该目标分片的当前副本数量的差值,作为待扩展数量,并生成该目标分片的所述待扩展数量个副本。
157.所述副本扩展模块430生成该目标分片的所述待扩展数量个副本,包括:
158.为该目标分片生成所述待扩展数量个副本扩展任务,并执行每一副本扩展任务;
159.其中,所述副本扩展任务用于为该目标分片扩展一个副本。
160.可选地,任一副本扩展任务的执行过程,包括:
161.指示目标服务器生成针对该目标分片的一个内容为空的新副本;其中,所述目标服务器为所述分布式表格系统中的、未存储有该目标分片的副本的任一存储服务器;
162.将该目标分片的主副本的数据拷贝到所述新副本中,并将所述目标服务器添加至该目标分片的关于存储服务器的预定协议组中,其中,所述预定协议组中的组员均为存储有该目标分片的存储服务器。
163.可选地,所述装置还包括:
164.副本总量调整模块,用于在所述目标表格的所有分片的副本均扩展完毕后,基于所述目标副本数量,调整所述目标表格的副本总数量。
165.可选地,所述副本总量调整模块具体用于:
166.向指定服务器发送针对所述目标表格的副本数量调整指令,以使得所述指定服务器基于所述副本数量调整指令,调整所述目标表格的副本总数量;
167.其中,所述调整指令中携带有所述目标副本数量,且所述指定服务器为分布式表格系统中的用于存储各表格的副本总数量的服务器。
168.相应于上述方法实施例,本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
169.存储器503,用于存放计算机程序;
170.处理器501,用于执行存储器503上所存放的程序时,实现本发明实施例所提供的表格副本的扩展方法的步骤。
171.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
172.通信接口用于上述电子设备与其他设备之间的通信。
173.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
174.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
175.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的表格副本的扩展方法的步骤。
176.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本发明实施例所提供的表格副本的扩展方法的步骤。
177.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
178.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
179.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
180.以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1