CN108520025B - 一种服务节点确定方法、装置、设备及介质 - Google Patents
一种服务节点确定方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN108520025B CN108520025B CN201810252372.1A CN201810252372A CN108520025B CN 108520025 B CN108520025 B CN 108520025B CN 201810252372 A CN201810252372 A CN 201810252372A CN 108520025 B CN108520025 B CN 108520025B
- Authority
- CN
- China
- Prior art keywords
- service node
- virtual service
- virtual
- newly added
- service nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000003860 storage Methods 0.000 claims abstract description 70
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 7
- 238000009826 distribution Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 25
- 238000005192 partition Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种服务节点确定方法、装置、设备及介质,应用于分布式存储技术领域,用以解决扩容时出现短时间的整体吞吐量骤降的问题。具体为:当有新增服务节点时,将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组中,当确定服务节点时,确定虚拟服务节点数组中的当前元素个数,基于当前元素个数,获得虚拟服务节点序号,并根据虚拟服务节点数组中与虚拟服务节点序号对应的虚拟服务节点,确定服务节点,这样,不仅实现了新增服务节点的逐步分流,也尽可能地避免了扩容时出现短时间的整体吞吐量骤降的问题。
Description
技术领域
本发明涉及分布式存储技术领域,尤其涉及一种分布式存储系统中的服务节点确定方法、装置、设备及介质。
背景技术
在分布式存储系统中,一般采用增加服务节点的方式实现扩容,然而,由于新增服务节点在新启动时的处理性能较低,因此,在新增服务节点初始参与分流时,很可能出现短时间的整体吞吐量骤降的问题。
可见,对于分布式存储系统技术领域来说,如何在扩容时尽可能地避免短时间的整体吞吐量骤降,是当前亟待解决的技术问题。
发明内容
本发明实施例提供了一种分布式存储系统中的服务节点确定方法、装置、设备及介质,用以解决在为分布式存储系统扩容时出现的短时间的整体吞吐量骤降的问题。
本发明实施例提供的具体技术方案如下:
第一方面,本发明实施例提供了一种分布式存储系统中的服务节点确定方法,包括:
确定虚拟服务节点数组中的当前元素个数,其中,当有新增服务节点时,将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组中;
基于当前元素个数,获得虚拟服务节点序号;
根据虚拟服务节点数组中与虚拟服务节点序号对应的虚拟服务节点,确定服务节点。
较佳的,将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组中,包括:
将新增服务节点对应的所有虚拟服务节点划分成至少两份;
分别为划分的每一份虚拟服务节点配置相应的增加时间;
每到达一个增加时间时,将对应的一份虚拟服务节点增加至虚拟服务节点数组中。
较佳的,将新增服务节点对应的所有虚拟服务节点划分为多份,包括:
按照逐份均分的划分方式,划分新增服务节点对应的所有虚拟服务节点;或者,
按照逐份递增的划分方式,划分新增服务节点对应的所有虚拟服务节点。
较佳的,分别为划分的每一份虚拟服务节点配置相应的增加时间,包括:
按照时间间隔相同的配置方式,为每一份虚拟服务节点配置增加时间;或者,
按照时间间隔递减的配置方式,为每一份虚拟服务节点配置增加时间。
较佳的,在将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组中的过程中,还包括:
当增加次数达到次数阈值时,针对每一个新增服务节点,依次更新虚拟服务节点数组;或者,依次选取至少两个新增服务节点同时更新虚拟服务节点数组。
较佳的,当新增服务节点为多个时,针对设定数目的待增加新增服务节点,同步分次更新虚拟服务节点数组。
较佳的,依次选取至少两个新增服务节点同时更新虚拟服务节点数组,包括:
每次更新虚拟服务节点数组时,同时为选取的至少两个新增服务节点增加相同个数的虚拟服务节点。
较佳的,基于当前元素个数,获得虚拟服务节点序号,包括:
获得用于访问分布式存储系统的数据键值;
将数据键值转换为整数;
根据整数和当前元素个数,并利用跳一致性哈希算法,得到虚拟服务节点序号。
第二方面,本发明实施例提供了一种分布式存储系统中的服务节点确定装置,包括:
更新单元,用于当有新增服务节点时,将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组中;
确定单元,用于确定更新单元更新的虚拟服务节点数组中的当前元素个数,基于当前元素个数,获得虚拟服务节点序号;根据虚拟服务节点数组中与虚拟服务节点序号对应的虚拟服务节点,确定服务节点。
较佳的,在将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组中时,更新单元具体用于:
将新增服务节点对应的所有虚拟服务节点划分成至少两份;
分别为划分的每一份虚拟服务节点配置相应的增加时间;
每到达一个增加时间时,将对应的一份虚拟服务节点增加至虚拟服务节点数组中。
较佳的,在将新增服务节点对应的所有虚拟服务节点划分为多份时,更新单元具体用于:
按照逐份均分的划分方式,划分新增服务节点对应的所有虚拟服务节点;或者,
按照逐份递增的划分方式,划分新增服务节点对应的所有虚拟服务节点。
较佳的,在分别为划分的每一份虚拟服务节点配置相应的增加时间时,更新单元具体用于:
按照时间间隔相同的配置方式,为每一份虚拟服务节点配置增加时间;或者,
按照时间间隔递减的配置方式,为每一份虚拟服务节点配置增加时间。
较佳的,在将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组中的过程中,更新单元还用于:
当增加次数达到次数阈值时,将新增服务节点对应的剩余虚拟服务节点全部增加至虚拟服务节点数组中。
较佳的,更新单元还用于:
当新增服务节点为多个时,针对每一个新增服务节点,依次更新虚拟服务节点数组;或者,依次选取至少两个新增服务节点同时更新虚拟服务节点数组。
较佳的,在依次选取至少两个新增服务节点同时更新虚拟服务节点数组时,更新单元具体用于:
每次更新虚拟服务节点数组时,同时为选取的至少两个新增服务节点增加相同个数的虚拟服务节点。
较佳的,在基于当前元素个数,获得虚拟服务节点序号时,确定单元具体用于:
获得用于访问分布式存储系统的数据键值;
将数据键值转换为整数;
根据整数和当前元素个数,并利用跳一致性哈希算法,得到虚拟服务节点序号。
第三方面,本发明实施例提供了一种终端设备,包括存储器、处理器和存储在该存储器上的计算机程序,处理器执行该计算机程序时实现上述分布式存储系统中的服务节点确定方法的步骤。
第四方面,本发明实施例提供了一种非易失性计算机存储介质,该非易失性计算机存储介质存储有可执行程序,该可执行程序被处理器执行实现上述分布式存储系统中的服务节点确定方法的步骤。
本发明实施例的有益效果如下:
本发明实施例中,利用虚拟服务节点数组来确定服务节点,能够节省大量的存储空间,而且,当有新增服务节点时,采用在虚拟服务节点数组中分次增加新增服务节点对应的所有虚拟服务节点的方式,不仅实现了新增服务节点的逐步分流,也尽可能地避免了扩容时出现的短时间的整体吞吐量骤降的问题。
附图说明
图1A为本发明实施例中分布式存储系统的一种系统架构图;
图1B为本发明实施例中分布式存储系统的另一种系统架构图;
图2为本发明实施例中客户端利用跳一致性哈希算法确定服务节点时的处理流程示意图;
图3为本发明实施例中转发设备利用跳一致性哈希算法确定服务节点时的处理流程示意图;
图4A为本发明实施例中为采用第一种方式更新虚拟服务节点数组时的更新状态示意图;
图4B为本发明实施例中为采用第二种方式更新虚拟服务节点数组时的更新状态示意图;
图4C为本发明实施例中为采用第三种方式更新虚拟服务节点数组时的更新状态示意图;
图4D为本发明实施例中为采用第四种方式更新虚拟服务节点数组时的更新状态示意图;
图4E为本发明实施例中为当更新次数达到预设次数时,将新增服务节点的虚拟服务节点个数一次性增加至虚拟服务节点总个数时虚拟服务节点数组的更新状态示意图;
图4F为本发明实施例中为选取设定数目的待增加新增服务节点,同步分次更新虚拟服务节点数组时虚拟服务节点数组的更新状态示意图;
图5为本发明实施例中利用跳一致性哈希算法确定服务节点的装置的功能结构示意图;
图6为本发明实施例中终端设备的硬件结构示意图。
具体实施方式
目前,在部署分布式存储系统时,通常采用客户端/服务端(Client/Server,C/S)架构,比如,将分布式存储系统部署成如图1A所示的C/S架构,在该分布式式存储系统中,若客户端需要发送CS请求,可以根据访问数据生成键-值(Key-Value)对,并在确定服务节点后,将该Key-Value对携带在CS请求中直接发送到确定出的服务节点上。当然,还可以将分布式存储系统部署成如图1B所示的C/S架构,在该分布式式存储系统中,若客户端需要发送CS请求,可以根据访问数据生成Key-Value对,并将该Key-Value对携带在CS请求中发送到转发设备上,由转发设备确定该CS请求对应的服务节点,并将该CS请求转发到确定出的服务节点上。
具体的,无论是客户端还是转发设备,一般都会采用以下两种方式中的任意一种来确定CS请求对应的服务节点:
第一种方式:建立Key值与服务节点的互联网协议地址(Internet ProtocolAddress,IP)之间的关联关系,并保存到路由表中。当确定服务节点时,从预先保存的路由表中,查找与Key-Value对中的Key值相关联的服务节点的IP,从而根据查找到的IP,确定出CS请求对应的服务节点。
第二种方式:针对分布式存储系统中的每一个服务节点,为该服务节点配置多个虚拟节点,并利用经典一致性哈希算法,对该服务节点的各个虚拟节点的IP地址/端口号/标识等进行哈希运算,得到该服务节点的各个虚拟节点的哈希值,从而确定出该服务节点对应的哈希值范围并保存。当确定服务节点时,利用经典一致性哈希算法,对Key-Value对中的Key值进行哈希运算,得到Key值的哈希值,并从保存的各个服务节点对应的哈希值范围中,查找该Key值的哈希值落入的哈希值范围,从而根据查找到的哈希值范围,确定出CS请求对应的服务节点。
在为分布式存储系统扩容时,即当新增服务节点初始参与分流时,为了尽可能地避免短时间的整体吞吐量骤降的问题,在上述第一种方法中,通常会按照设定规则,先选择少部分的关联关系保存到新增服务节点上,随着时间的推移,逐渐增加保存到新增服务节点上的关联关系,从而达到逐步分流的目的;而在上述第二种方法中,通常会先为新增服务节点配置较少的虚拟节点,随着时间的推移,逐渐增加虚拟节点的个数,从而达到逐步分流的目的。
上述两种方法虽然在一定程度上能够解决短时间的整体吞吐量骤降的问题,但是,上述第一种方法需要保存大量的关联关系,这必然会占用大量的存储空间,而上述第二种方法需要保存各个服务节点的所有虚拟节点的哈希值,即需要保存各个服务节点的哈希值范围,这也会占用大量的存储空间,而且,通过这两种方法来确定服务节点,还可能存在各个服务节点的吞吐量差异较大的问题。
基于此,本发明实施例提供了一种分布式存储系统中的服务节点确定方法、装置、设备及介质。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,对本发明实施例中涉及的部分技术用语进行说明,以便于本领域技术人员理解。
1、客户端,是为用户提供一项或多项特定服务的计算机程序,具有可视的显示界面,能与用户进行交互,例如,微信,QQ,微博等。
2、服务节点,是为客户端提供内容支持的后台运行设备,比如服务器等。
3、跳一致性哈希算法(Jump Consistent Hash),是一种一致性哈希算法,该算法可以把CS请求快速、均匀地分配到分布式存储系统中的所有服务节点上,负载均衡能力较佳,而且,当分布式存储系统中有新增服务节点时,只会把部分CS请求从原始服务节点转移到新增服务节点,不会出现CS请求在原始服务节点之间转移的情况,此外,该算法零内存消耗,且只有5行代码,具体可以如下所示:
4、服务节点的虚拟节点,是为服务节点配置的、不是实际存在的节点。
5、虚拟服务节点数组,是分布式存储系统中各个服务节点对应的所有虚拟服务节点的集合。
元素,是虚拟服务节点数组的基本组成单元,即虚拟服务节点数组中的虚拟服务节点。
例如:虚拟服务节点数组为Server_array[Server_a,Server_a,Server_a,Server_b,Server_b,Server_b,……,Server_f,Server_f,Server_f]。
虚拟服务节点数组Server_array中的Server_a、Server_b,……,Server_f等即为虚拟服务节点数组Server_array的元素。
在介绍了本发明实施例中涉及的部分技术用语之后,接下来,对本发明示例性实施方式的利用跳一致性哈希算法确定服务节点的方法进行简单说明。
本发明实施例提供了一种分布式存储系统中的服务节点确定方法,可以应用在客户端上,较佳的,客户端可以在本地维护一个由各个服务节点对应的所有虚拟服务节点组成的虚拟服务节点数组,并根据该虚拟服务节点数组,采用跳一致性哈希算法,来确定CS请求对应的服务节点,具体的,参阅图2所示,本发明实施例提供的确定服务节点的方法的流程如下:
步骤201:客户端根据访问数据,生成Key-Value对。
步骤202:客户端将Key-Value对中的Key值转换为整数。
具体的,客户端可以利用经典一致性哈希算法,对Key-Value对中的Key值进行哈希运算,从而得到Key-Value对中的Key值所对应的整数。
步骤203:客户端获取本地维护的虚拟服务节点数组中的当前元素个数。
步骤204:客户端根据该整数和该当前元素个数,并利用跳一致性哈希算法,获得虚拟服务节点序号。
步骤205:客户端根据虚拟服务节点数组中与该虚拟服务节点序号对应的虚拟服务节点,确定服务节点。
例如,假设虚拟服务节点数组为Server_array[Server_a,Server_a,Server_a,Server_b,Server_b,Server_b,……,Server_f,Server_f,Server_f],序列号为5,则在虚拟服务节点数组Server_array中,序列号5对应的虚拟服务节点为Server_b,进而确定CS请求对应的服务节点为标识为“Server_b”的服务节点。
步骤206:客户端将Key-Value对携带在CS请求中发送至确定出的服务节点。
此外,本发明实施例提供的分布式存储系统中的服务节点确定方法还可以应用在转发设备上,较佳的,转发设备可以在本地维护一个由各个服务节点对应的所有虚拟服务节点组成的虚拟服务节点数组,并根据该虚拟服务节点数组,采用跳一致性哈希算法,来确定CS请求对应的服务节点,具体的,参阅图3所示,本发明实施例提供的确定服务节点的方法的流程如下:
步骤301:客户端根据访问数据,生成Key-Value对。
步骤302:客户端发送携带有Key-Value对的CS请求。
步骤303:转发设备接收到客户端发送的CS请求时,将CS请求携带的Key-Value对中的Key值转换为整数。
具体的,转发设备可以利用经典一致性哈希算法,对Key-Value对中的Key值进行哈希运算,从而得到Key-Value对中的Key值所对应的整数。
步骤304:转发设备获取本地维护的虚拟服务节点数组中的当前元素个数。
步骤305:转发设备根据该整数和该当前元素个数,并利用跳一致性哈希算法,获得虚拟服务节点序号。
步骤306:转发设备根据虚拟服务节点数组中与该虚拟服务节点序号对应的虚拟服务节点,确定服务节点。
例如,假设虚拟服务节点数组为Server_array[0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,……a,a,a,a,a],序列号为8,则在虚拟服务节点数组Server_array中,序列号8对应的虚拟服务节点为1,进而确定CS请求对应的服务节点为标识为“1”的服务节点。
步骤307:转发设备将CS请求中转发至确定出的服务节点。
在上述两种不同应用场景下的分布式存储系统中的服务节点确定方法中,由于在对分布式存储系统进行扩容时,分布式存储系统中会有新增服务节点,为了方便查看新增服务节点,客户端或者转发设备可以针对新增服务节点维护一个新增服务节点队列,这样,就能够根据新增服务节点队列,确定新增服务节点的个数。为了让新增服务节点参与分流,客户端或者转发设备可以在虚拟服务节点数组中为新增服务节点队列中的新增服务节点增加虚拟节点,较佳的,为了将携带有相同Key值的CS请求分配到同一个服务节点,避免携带有相同Key值的CS请求在不同服务节点上跳来跳去,可以针对新增服务节点队列中的每一个新增服务节点,依次在虚拟服务节点数组中为该新增服务节点增加虚拟节点,即针对新增服务节点队列中的每一个新增服务节点,依次更新虚拟服务节点数组。下面仅以针对新增服务节点队列中的一个新增服务节点,更新虚拟服务节点数组为例进行说明。
为了尽可能地避免扩容时出现的短时间的整体吞吐量骤降的问题,本发明实施例中,客户端或者转发设备可以将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组中。具体的,客户端或者转发设备可以将新增服务节点对应的所有虚拟服务节点划分为至少两份,分别为划分的每一份虚拟服务节点配置相应的增加时间,每到达一个增加时间时,将对应的一份虚拟服务节点增加至所述虚拟服务节点数组中。较佳的,客户端或者转发设备可以按照逐份均分的划分方式,划分新增服务节点对应的所有虚拟服务节点,也可以按照逐份递增的划分方式,划分新增服务节点对应的所有虚拟服务节点,此外,客户端或者转发设备可以按照时间间隔相同的配置方式,为每一份虚拟服务节点配置增加时间,也可以按照时间间隔递减的配置方式,为每一份虚拟服务节点配置增加时间。值得说的是,上述两种划分方式和上述两种的配置方式可以任意组合,具体的,可能存在但不限于以下四种组合方式:
第一种组合方式:按照逐份均分的划分方式,划分新增服务节点对应的所有虚拟服务节点,并按照时间间隔相同的配置方式,为每一份虚拟服务节点配置增加时间。
在这种组合方式中,每份虚拟服务节点包含的虚拟服务节点个数相同,每次更新虚拟服务节点数组的时间间隔相同,即每隔相同的时间,在虚拟服务节点数组中增加相同个数的虚拟服务节点,具体的,参阅图4A所示,为采用第一种组合方式更新虚拟服务节点数组时的更新状态示意图。
第二种组合方式:按照逐份均分的划分方式,划分新增服务节点对应的所有虚拟服务节点,并按照时间间隔递减的配置方式,为每一份虚拟服务节点配置增加时间。
在这种组合方式中,每份虚拟服务节点包含的虚拟服务节点个数相同,每次更新虚拟服务节点数组的时间间隔越来越短,即每隔越来越短的时间,在虚拟服务节点数组中增加相同个数的虚拟服务节点,具体的,参阅图4B所示,为采用第二种组合方式更新虚拟服务节点数组时的更新状态示意图。
第三种组合方式:按照逐份递增的划分方式,划分新增服务节点对应的所有虚拟服务节点,并按照时间间隔相同的配置方式,为每一份虚拟服务节点配置增加时间。
在这种组合方式中,每份虚拟服务节点包含的虚拟服务节点个数越来越多,每次更新虚拟服务节点数组的时间间隔相同,即每隔相同的时间,在虚拟服务节点数组中增加越来越多的虚拟服务节点,具体的,参阅图4C所示,为采用第三种方式更新虚拟服务节点数组时的更新状态示意图。
第四种组合方式:按照逐份递增的划分方式,划分新增服务节点对应的所有虚拟服务节点,并按照时间间隔递减的配置方式,为每一份虚拟服务节点配置增加时间。
在这种组合方式中,每份虚拟服务节点包含的虚拟服务节点个数越来越多,每次更新虚拟服务节点数组的时间间隔越来越短,即每隔越来越短的时间,在虚拟服务节点数组中增加越来越多的虚拟服务节点,具体的,参阅图4D所示,为采用第四种方式更新虚拟服务节点数组时的更新状态示意图。
可选的,为了缩短分布式存储系统的扩容时间,在确保新增服务节点的吞吐量不会出现骤降的前提下,还可以在将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组的过程中,当增加次数达到次数阈值时,将新增服务节点对应的剩余虚拟服务节点全部增加至虚拟服务节点数组中,具体的,参阅图4E所示,为当增加次数达到次数阈值时,将新增服务节点对应的剩余虚拟服务节点全部增加至虚拟服务节点数组中时虚拟服务节点数组的更新状态示意图。
当然,对于对携带有相同Key值的CS请求的顺序不是太敏感的业务,客户端或者转发设备也可以针对新增服务节点队列中的新增服务节点,依次选取至少两个新增服务节点同时更新虚拟服务节点数组,具体的,每次更新虚拟服务节点数组时,可以同时为选取的至少两个新增服务节点增加相同个数的虚拟服务节点,这样,选取的至少两个新增服务节点就可以同时参与分流,从而缩短了分布式存储系统的扩容时间,具体的,参阅图4F所示,为选取至少两个新增服务节点同时更新虚拟服务节点数组时虚拟服务节点数组的更新状态示意图。
基于上述实施例,本发明实施例提供了一种分布式存储系统中的服务节点确定装置,参阅图5所示,该服务节点确定装置至少包括:
更新单元501,用于当有新增服务节点时,将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组中;
确定单元502,用于确定更新单元501更新的虚拟服务节点数组中的当前元素个数,基于当前元素个数,获得虚拟服务节点序号;根据虚拟服务节点数组中与虚拟服务节点序号对应的虚拟服务节点,确定服务节点。
较佳的,在将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组中时,更新单元501具体用于:
将新增服务节点对应的所有虚拟服务节点划分成至少两份;
分别为划分的每一份虚拟服务节点配置相应的增加时间;
每到达一个增加时间时,将对应的一份虚拟服务节点增加至虚拟服务节点数组中。
较佳的,在将新增服务节点对应的所有虚拟服务节点划分为多份时,更新单元501具体用于:
按照逐份均分的划分方式,划分新增服务节点对应的所有虚拟服务节点;或者,
按照逐份递增的划分方式,划分新增服务节点对应的所有虚拟服务节点。
较佳的,在分别为划分的每一份虚拟服务节点配置相应的增加时间时,更新单元501具体用于:
按照时间间隔相同的配置方式,为每一份虚拟服务节点配置增加时间;或者,
按照时间间隔递减的配置方式,为每一份虚拟服务节点配置增加时间。
较佳的,在将新增服务节点对应的所有虚拟服务节点分次增加至虚拟服务节点数组中的过程中,更新单元501还用于:
当增加次数达到次数阈值时,将新增服务节点对应的剩余虚拟服务节点全部增加至虚拟服务节点数组中。
较佳的,更新单元501还用于:
当新增服务节点为多个时,针对每一个新增服务节点,依次更新虚拟服务节点数组;或者,依次选取至少两个新增服务节点同时更新虚拟服务节点数组。
较佳的,在依次选取至少两个新增服务节点同时更新虚拟服务节点数组时,更新单元501具体用于:
每次更新虚拟服务节点数组时,同时为选取的至少两个新增服务节点增加相同个数的虚拟服务节点。
较佳的,在基于当前元素个数,获得虚拟服务节点序号时,确定单元具体用于:
获得用于访问分布式存储系统的数据键值;
将数据键值转换为整数;
根据整数和当前元素个数,并利用跳一致性哈希算法,得到虚拟服务节点序号。
需要说明的是,由于上述分布式存储系统中的服务节点确定装置解决技术问题的原理与上述分布式存储系统中的服务节点确定方法相似,因此,上述分布式存储系统中的服务节点确定装置的实施可以参见上述分布式存储系统中的服务节点确定方法的实施,重复之处不再赘述。
基于同一发明构思,本发明实施例还提供了一种终端设备,参阅图6所示,该终端设备至少包括:存储器601、处理器602和存储在存储器602上的计算机程序,处理器602执行该计算机程序时实现上述分布式存储系统中的服务节点确定方法的步骤。
较佳的,该终端设备还可以包括输入装置603和输出装置604等。输入装置603可以包括触控笔、键盘、鼠标、触摸屏等;输出装置604可以包括显示设备,如液晶显示器(LiquidCrystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT),触摸屏等。
本发明实施例中不限定存储器601,处理器602、输入装置603和输出装置604之间的具体连接介质。本发明实施例在图6中以存储器601,处理器602、输入装置603和输出装置604之间通过总线605连接,总线605在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。其中,总线605可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
接下来,对本发明示例性实施方式的非易失性计算机可读存储介质进行介绍。本发明实施例提供了一种非易失性计算机可读存储介质,该非易失性计算机可读存储介质存储有计算机可执行指令,该可执行程序被处理器执行实现上述分布式存储系统中的服务节点确定方法的步骤。具体地,该可执行程序可以内置在终端设备中,也可以作为客户端下载到终端设备上,这样,终端设备就可以通过执行内置或者下载的可执行程序实现上述分布式存储系统中的服务节点确定方法的步骤。
此外,本发明实施例提供的分布式存储系统中的服务节点确定方法还可以实现为一种程序产品,该程序产品包括程序代码,当该程序产品可以在数据库访问控制设备上运行时,该程序代码用于使数据库访问控制设备执行上述分布式存储系统中的服务节点确定方法的步骤。
较佳的,本发明实施例提供的程序产品可以采用一个或多个可读介质的任意组合,其中,可读介质可以是可读信号介质或者可读存储介质,而可读存储介质可以是但不限于是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合,具体地,可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
较佳的,本发明实施例提供的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,还可以在计算设备上运行。然而,本发明实施例提供的程序产品不限于此,在本发明实施例中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络连接到用户计算设备,诸如通过局域网(LAN)或广域网(WAN)连接到用户计算设备;或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种分布式存储系统中的服务节点确定方法,其特征在于,包括:
确定虚拟服务节点数组中的当前元素个数,其中,当有新增服务节点时,将所述新增服务节点对应的所有虚拟服务节点分次增加至所述虚拟服务节点数组中,所述虚拟服务节点数组中包括分布式存储系统中各个服务节点对应的所有虚拟服务节点,所述服务节点包括为客户端提供内容支持的后台运行设备;
基于所述当前元素个数,获得虚拟服务节点序号;
根据所述虚拟服务节点数组中与所述虚拟服务节点序号对应的虚拟服务节点,确定客户端服务端CS请求对应的服务节点。
2.如权利要求1所述的服务节点确定方法,其特征在于,将所述新增服务节点对应的所有虚拟服务节点分次增加至所述虚拟服务节点数组中,包括:
将所述新增服务节点对应的所有虚拟服务节点划分成至少两份;
分别为划分的每一份虚拟服务节点配置相应的增加时间;
每到达一个增加时间时,将对应的一份虚拟服务节点增加至所述虚拟服务节点数组中。
3.如权利要求2所述的服务节点确定方法,其特征在于,将所述新增服务节点对应的所有虚拟服务节点划分为多份,包括:
按照逐份均分的划分方式,划分所述新增服务节点对应的所有虚拟服务节点;或者,
按照逐份递增的划分方式,划分所述新增服务节点对应的所有虚拟服务节点。
4.如权利要求2或3所述的服务节点确定方法,其特征在于,分别为划分的每一份虚拟服务节点配置相应的增加时间,包括:
按照时间间隔相同的配置方式,为每一份虚拟服务节点配置增加时间;或者,
按照时间间隔递减的配置方式,为每一份虚拟服务节点配置增加时间。
5.如权利要求1所述的服务节点确定方法,其特征在于,在将所述新增服务节点对应的所有虚拟服务节点分次增加至所述虚拟服务节点数组中的过程中,还包括:
当增加次数达到次数阈值时,将所述新增服务节点对应的剩余虚拟服务节点全部增加至所述虚拟服务节点数组中。
6.如权利要求1所述的服务节点确定方法,其特征在于,还包括:
当所述新增服务节点为多个时,针对每一个新增服务节点,依次更新所述虚拟服务节点数组;或者,依次选取至少两个新增服务节点同时更新所述虚拟服务节点数组。
7.如权利要求6所述的服务节点确定方法,其特征在于,依次选取至少两个新增服务节点同时更新所述虚拟服务节点数组,包括:
每次更新所述虚拟服务节点数组时,同时为所述至少两个新增服务节点增加相同个数的虚拟服务节点。
8.如权利要求1所述的服务节点确定方法,其特征在于,基于所述当前元素个数,获得虚拟服务节点序号,包括:
获得用于访问所述分布式存储系统的数据键值;
将所述数据键值转换为整数;
根据所述整数和所述当前元素个数,并利用跳一致性哈希算法,得到虚拟服务节点序号。
9.一种分布式存储系统中的服务节点确定装置,其特征在于,包括:
更新单元,用于当有新增服务节点时,将所述新增服务节点对应的所有虚拟服务节点分次增加至所述虚拟服务节点数组中,所述虚拟服务节点数组中包括分布式存储系统中各个服务节点对应的所有虚拟服务节点,所述服务节点包括为客户端提供内容支持的后台运行设备;
确定单元,用于确定所述更新单元更新的所述虚拟服务节点数组中的当前元素个数,基于所述当前元素个数,获得虚拟服务节点序号;根据所述虚拟服务节点数组中与所述虚拟服务节点序号对应的虚拟服务节点,确定客户端服务端CS请求对应的服务节点。
10.如权利要求9所述的服务节点确定装置,其特征在于,在将所述新增服务节点对应的所有虚拟服务节点分次增加至所述虚拟服务节点数组中时,所述更新单元具体用于:
将所述新增服务节点对应的所有虚拟服务节点划分成至少两份;
分别为划分的每一份虚拟服务节点配置相应的增加时间;
每到达一个增加时间时,将对应的一份虚拟服务节点增加至所述虚拟服务节点数组中。
11.如权利要求10所述的服务节点确定装置,其特征在于,在将所述新增服务节点对应的所有虚拟服务节点划分为多份时,所述更新单元具体用于:
按照逐份均分的划分方式,划分所述新增服务节点对应的所有虚拟服务节点;或者,
按照逐份递增的划分方式,划分所述新增服务节点对应的所有虚拟服务节点。
12.如权利要求10或11所述的服务节点确定装置,其特征在于,在分别为划分的每一份虚拟服务节点配置相应的增加时间时,所述更新单元具体用于:
按照时间间隔相同的配置方式,为每一份虚拟服务节点配置增加时间;或者,
按照时间间隔递减的配置方式,为每一份虚拟服务节点配置增加时间。
13.如权利要求9所述的服务节点确定装置,其特征在于,在基于所述当前元素个数,获得虚拟服务节点序号时,所述确定单元具体用于:
获得用于访问所述分布式存储系统的数据键值;
将所述数据键值转换为整数;
根据所述整数和所述当前元素个数,并利用跳一致性哈希算法,得到虚拟服务节点序号。
14.一种终端设备,其特征在于,包括存储器、处理器和存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-8任一项所述的分布式存储系统中的服务节点确定方法的步骤。
15.一种非易失性计算机存储介质,其特征在于,所述非易失性计算机存储介质存储有可执行程序,所述可执行程序被处理器执行实现权利要求1-8任一项所述的分布式存储系统中的服务节点确定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810252372.1A CN108520025B (zh) | 2018-03-26 | 2018-03-26 | 一种服务节点确定方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810252372.1A CN108520025B (zh) | 2018-03-26 | 2018-03-26 | 一种服务节点确定方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108520025A CN108520025A (zh) | 2018-09-11 |
CN108520025B true CN108520025B (zh) | 2020-12-18 |
Family
ID=63434078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810252372.1A Active CN108520025B (zh) | 2018-03-26 | 2018-03-26 | 一种服务节点确定方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108520025B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918170A (zh) * | 2019-01-25 | 2019-06-21 | 西安电子科技大学 | 一种云数据中心虚拟机动态资源配置方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004036424A2 (en) * | 2002-10-16 | 2004-04-29 | Storage Matrix, Inc. | Efficient expansion of highly reliable storage arrays and clusters |
CN101997918A (zh) * | 2010-11-11 | 2011-03-30 | 清华大学 | 异构san环境中的海量存储资源按需分配的实现方法 |
CN104378447A (zh) * | 2014-12-03 | 2015-02-25 | 深圳市鼎元科技开发有限公司 | 一种基于哈希环的非迁移分布式存储方法及系统 |
CN105744001A (zh) * | 2016-04-11 | 2016-07-06 | 青岛海信传媒网络技术有限公司 | 分布式缓存系统扩容方法、数据访问方法及装置和系统 |
CN105933391A (zh) * | 2016-04-11 | 2016-09-07 | 青岛海信传媒网络技术有限公司 | 一种节点扩容方法、装置及系统 |
-
2018
- 2018-03-26 CN CN201810252372.1A patent/CN108520025B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004036424A2 (en) * | 2002-10-16 | 2004-04-29 | Storage Matrix, Inc. | Efficient expansion of highly reliable storage arrays and clusters |
CN101997918A (zh) * | 2010-11-11 | 2011-03-30 | 清华大学 | 异构san环境中的海量存储资源按需分配的实现方法 |
CN104378447A (zh) * | 2014-12-03 | 2015-02-25 | 深圳市鼎元科技开发有限公司 | 一种基于哈希环的非迁移分布式存储方法及系统 |
CN105744001A (zh) * | 2016-04-11 | 2016-07-06 | 青岛海信传媒网络技术有限公司 | 分布式缓存系统扩容方法、数据访问方法及装置和系统 |
CN105933391A (zh) * | 2016-04-11 | 2016-09-07 | 青岛海信传媒网络技术有限公司 | 一种节点扩容方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
一种新颖的RAID系统在线扩容方案;冯丹等;《计算机应用研究》;20070108;第23卷(第12期);244-246 * |
容错分布式存储系统扩容机制研究;吴思;《中国博士学位论文全文数据库(信息科技辑)》;20160930(第9期);43-55 * |
Also Published As
Publication number | Publication date |
---|---|
CN108520025A (zh) | 2018-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108475207B (zh) | 云应用的联合自动缩放 | |
CN108052615B (zh) | 访问请求的处理方法、装置、介质及电子设备 | |
KR102376713B1 (ko) | 복합 파티션 함수 제공 기법 | |
US9740534B2 (en) | System for controlling resources, control pattern generation apparatus, control apparatus, method for controlling resources and program | |
EP2753044A1 (en) | Method and device for resource matching in vpc migration | |
CN110753112A (zh) | 云服务的弹性伸缩方法和装置 | |
US10831536B2 (en) | Task scheduling using improved weighted round robin techniques | |
CN110650209B (zh) | 实现负载均衡的方法和装置 | |
CN103699443B (zh) | 任务分发方法及扫描器 | |
CN110601978B (zh) | 流量分发控制方法和装置 | |
CN108141469A (zh) | 负载均衡器中的数据平面操纵 | |
CN108875035B (zh) | 分布式文件系统的数据存储方法及相关设备 | |
US10216593B2 (en) | Distributed processing system for use in application migration | |
US20210097106A1 (en) | Generation and use of a dynamic bloom filter | |
Garg et al. | Heuristic and reinforcement learning algorithms for dynamic service placement on mobile edge cloud | |
CN108520025B (zh) | 一种服务节点确定方法、装置、设备及介质 | |
US10552188B2 (en) | Virtual private cloud services with physical machine servers and virtual machines | |
CN109788006B (zh) | 数据均衡方法、装置及计算机设备 | |
CN111951112A (zh) | 基于区块链的智能合约执行方法、终端设备和存储介质 | |
CN111104225A (zh) | 一种基于MapReduce的数据处理方法、装置、设备及介质 | |
CN109039907B (zh) | 确定网络数据流量最优路径方法、装置、设备及存储介质 | |
CN112799849A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US20240121190A1 (en) | Design device, design method, and design program | |
CN111835848B (zh) | 数据分片方法、装置、电子设备及计算机可读介质 | |
CN111314457B (zh) | 设置虚拟私有云的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |