CN115145893B - 集群在线扩容方法、系统、设备及存储介质 - Google Patents
集群在线扩容方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115145893B CN115145893B CN202210737622.7A CN202210737622A CN115145893B CN 115145893 B CN115145893 B CN 115145893B CN 202210737622 A CN202210737622 A CN 202210737622A CN 115145893 B CN115145893 B CN 115145893B
- Authority
- CN
- China
- Prior art keywords
- cluster
- data
- capacity expansion
- clusters
- original
- 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 47
- 238000013508 migration Methods 0.000 claims abstract description 15
- 230000005012 migration Effects 0.000 claims abstract description 15
- 238000012546 transfer Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 2
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种集群在线扩容方法、系统、设备及存储介质,包括:确定各个数据的原始集群的集群编号;若当前扩容迭代次数小于扩容记录长度,则确定新增集群的数量,并基于各个数据的数据主键值、新增集群以及原始集群的数量,计算各个数据的第一哈希值;若第一哈希值小于原始集群的数量,则确定数据对应的原始集群的集群编号;若第一哈希值不小于原始集群的数量,则计算数据对应的新增集群的集群编号;直至当前扩容迭代次数不小于扩容记录长度,得到各个数据对应的最终集群编号,以将各个数据迁移至最终集群编号对应的集群中。本申请解决目前集群离线扩容过程中无法正常进行数据处理,并且数据在迁移过程中难以均衡存储在各个集群中的技术问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种集群在线扩容方法、系统、设备及存储介质。
背景技术
数据库集群就是利用至少两个或者多个数据库节点,构成一个虚拟单一数据库逻辑映像,像单数据库系统那样,向客户端提供透明的数据服务。目前,当当前集群满足不了用户的业务需求时,需要对集群进行扩容,集群扩容主要技术为在给定的时间进行数据的迁移,具体地,在系统处于停机状态下,将原有集群节点上的部分数据重分布到新加入的节点来完成扩容,导致在扩容过程中集群无法正常进行数据处理,影响系统的正常运行,并且在扩容过程中由于数据量迁移巨大,难以确保数据能够均衡存储在各个集群中。
发明内容
本申请的主要目的在于提供一种集群在线扩容方法、系统、设备及存储介质,旨在解决现有技术中的集群离线扩容过程中无法正常进行数据处理,并且数据在迁移过程中难以均衡存储在各个集群中的技术问题。
为实现上述目的,本申请提供一种集群在线扩容方法,所述集群在线扩容方法包括:
确定各个数据在扩容迭代之前对应的原始集群的集群编号;
若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,并基于各个数据的数据主键值、新增集群的数量和原始集群的数量,计算各个数据的第一哈希值;
若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则确定所述数据在当前扩容迭代次数对应的原始集群的集群编号;
若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则基于所述数据的数据主键值、所述新增集群的数量和所述原始集群的数量,计算所述数据在当前扩容迭代次数对应的新增集群的集群编号;
返回执行步骤:若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,直至当前扩容迭代次数不小于所述扩容记录长度,得到各个数据对应的最终集群编号,以将各个数据在线迁移至所述最终集群编号对应的集群中。
本申请还提供一种集群在线扩容系统,所述集群在线扩容系统为虚拟系统,所述集群在线扩容系统包括:
第一确定模块,用于确定各个数据在扩容迭代之前对应的原始集群的集群编号;
第一计算模块,用于若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,并基于各个数据的数据主键值、新增集群的数量和原始集群的数量,计算各个数据的第一哈希值;
第二确定模块,用于若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则确定所述数据在当前扩容迭代次数对应的原始集群的集群编号;
第二计算模块,用于若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则基于所述数据的数据主键值、所述新增集群的数量和所述原始集群的数量,计算所述数据在当前扩容迭代次数对应的新增集群的集群编号;
迁移模块,用于返回执行步骤:若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,直至当前扩容迭代次数不小于所述扩容记录长度,得到各个数据对应的最终集群编号,以将各个数据在线迁移至所述最终集群编号对应的集群中。
本申请还提供一种集群在线扩容设备,所述集群在线扩容设备为实体设备,所述集群在线扩容设备包括:存储器、处理器以及存储在所述存储器上的集群在线扩容程序,所述集群在线扩容程序被所述处理器执行实现如上述的集群在线扩容方法的步骤。
本申请还提供一种存储介质,所述存储介质为计算机可读存储介质,所述计算机可读存储介质上存储集群在线扩容程序,所述集群在线扩容程序被处理器执行实现如上述的集群在线扩容方法的步骤。
本申请提供了一种集群在线扩容方法、系统、设备及存储介质,相比于现有技术采用的在系统处于离线状态进行集群扩容的技术手段,本申请首先确定各个数据在扩容迭代之前对应的原始集群的集群编号,进而若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,并基于各个数据的数据主键值、新增集群的数量和原始集群的数量,计算各个数据的第一哈希值,进一步地,若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则确定所述数据在当前扩容迭代次数对应的原始集群的集群编号;若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则基于所述数据的数据主键值、所述新增集群的数量和所述原始集群的数量,计算所述数据在当前扩容迭代次数对应的新增集群的集群编号,并返回执行步骤:若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,直至当前扩容迭代次数不小于所述扩容记录长度,得到各个数据对应的最终集群编号,以将各个数据在线迁移至所述最终集群编号对应的集群中,实现了在线进行集群扩容,从而不会影响系统的正常运行,并且扩容过程中在线进行数据迁移,确保数据均衡分布在扩容后的多个集群上,稳定集群数据的负载量。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域默认技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请集群在线扩容方法第一实施例的流程示意图;
图2为本申请集群在线扩容方法第二实施例的流程示意图;
图3为本申请集群在线扩容方法第三实施例的流程示意图;
图4为本申请中集群在线扩容的流程示意图;
图5为本申请实施例方案涉及的硬件运行环境的集群在线扩容设备结构示意图;
图6为本申请集群在线扩容装置的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例提供一种集群在线扩容方法,在本申请集群在线扩容方法的第一实施例中,参照图1,所述集群在线扩容方法包括:
步骤S10,确定各个数据在扩容迭代之前对应的原始集群的集群编号;
在本实施例中,需要说明的是,所述原始集群设置有对应的集群编号,各个原始集群的集群编号为单调递增的关系,例如,原始集群的数量有3个,进而将各个原始集群的集群编号设置为1、2和3,也可设置为0、1和2。
进一步需要说明的是,各个数据设置有其对应的数据主键值,所述数据主键值为数据的识别标识,例如,数据的数量为15条,15条数据的数据主键值依次为0至14。
具体地,在扩容迭代之前,分别将各所述数据的数据主键值与所述原始集群的数量进行取模运算,得到取模运算后对应的余数,并将各个数据对应的余数作为各个数据的哈希值,进一步地,基于各所述数据的哈希值,确定每一所述数据对应的原始集群的集群编号,例如,原始集群的数量有3个,数据的数据主键值为0,将该数据存储在集群编号排在第一对应的集群中,数据的数据主键值为10,10mod3对应的余数为1,进而将该数据存储在集群编号排在第二对应的集群中。
步骤S20,若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,并基于各个数据的数据主键值、新增集群的数量和原始集群的数量,计算各个数据的第一哈希值;
在本实施例中,需要说明的是,所述扩容记录长度为预先设置的,表征需要进行集群扩容的次数。具体地,在迭代进行集群扩容过程中,若当前扩容迭代次数小于预先设置的扩容记录长度,确定当前扩容迭代次数的新增集群的数量,其中,新增集群设置有对应的集群编号,且新增集群的集群编号是在各个原始集群的集群编号的基础上进行单调递增,例如,各个原始集群的集群编号为0、1和2,新增集群的数量为2,因此,可设置新增集群对应的集群编号为3和4。进一步地,分别将各个所述的数据主键值与新增集群和原始集群的总集群数量进行取模运行,从而得到各个数据的第一哈希值。
步骤S30,若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则确定所述数据在当前扩容迭代次数对应的原始集群的集群编号;
步骤S40,若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则基于所述数据的数据主键值、所述新增集群的数量和所述原始集群的数量,计算所述数据在当前扩容迭代次数对应的新增集群的集群编号;
在本实施例中,需要说明的是,针对每一个数据均执行以下步骤:
将所述数据的第一哈希值和当前扩容迭代次数的原始集群的数量进行比较,若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则证明在当前扩容迭代中所述数据对应的集群为新增集群,进而将所述数据的数据主键值和所述新增集群的数量进行取模运算,得到与所述新增集群取模运算对应的哈希值,进而将所述哈希值与当前扩容迭代之前的原始数据的数量进行相加,得到所述数据对应的新增集群的集群编号。
进一步地,若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则证明在当前扩容迭代中所述数据对应的集群为原始集群,进而将所述数据在当前扩容迭代次数之前对应的原始集群的集群编号作为所述数据在当前扩容迭代次数对应的集群编号。
例如,在第一次扩容迭代时,原始集群的数量为3,新增集群的数量为2,当前总集群的集群编号为0、1、2、3和4,若数据的数据主键值为4,该数据在扩容迭代之前对应的原始集群的集群编号为1,4mod(3+2)=4大于原始集群的数量,进而计算所述数据对应的新增集群的集群编号:4mod2+3=3,也即,该数据在当前扩容迭代次数对应的集群编号为3。
若数据的数据主键值为2,该数据在扩容迭代之前对应的原始集群的集群编号为2,2mod(3+2)=2,小于原始集群的数量,进而确定数据的原始集群的集群编号为2。
步骤S50,返回执行步骤:若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,直至当前扩容迭代次数不小于所述扩容记录长度,得到各个数据对应的最终集群编号,以将各个数据在线迁移至所述最终集群编号对应的集群中。
在本实施例中,具体地,在确定各个数据在当前扩容迭代次数对应的集群编号后,返回执行步骤:若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,并且将上一扩容迭代次数对应的新增集群和原始集群作为当前扩容迭代次数的原始集群,直至当前扩容迭代次数不小于所述扩容记录长度,证明集群扩容完成,从而得到各个数据对应的最终集群编号,以将各个数据在线迁移至所述最终集群编号对应的集群中。另外地,集群扩容完成后,还可得到各个数据在每一次扩容迭代次数对应的集群编号。
其中,在所述将各个数据在线迁移至所述最终集群编号对应的集群中的步骤之后,所述集群在线扩容方法还包括:
步骤a1,基于各所述数据的最终集群编号,计算各个集群的存储负载量;
步骤a2,基于各个集群的存储负载量,确定是否需要进行集群扩容。
在本实施例中,具体地,基于各所述数据的最终集群编号,确定在数据迁移后各个集群对应的存储负载量,从而根据各个集群的存储负载量,判断需要进一步进行集群扩容,作为一种可实施方式,当集群的存储负载量小于预先设定的阈值时,则证明需要进一步进行集群扩容。
本申请实施例通过上述方案,也即,确定各个数据在扩容迭代之前对应的原始集群的集群编号,进而若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,并基于各个数据的数据主键值、新增集群的数量和原始集群的数量,计算各个数据的第一哈希值,进一步地,若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则确定所述数据在当前扩容迭代次数对应的原始集群的集群编号;若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则基于所述数据的数据主键值、所述新增集群的数量和所述原始集群的数量,计算所述数据在当前扩容迭代次数对应的新增集群的集群编号,并返回执行步骤:若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,直至当前扩容迭代次数不小于所述扩容记录长度,得到各个数据对应的最终集群编号,以将各个数据在线迁移至所述最终集群编号对应的集群中,实现了在线进行集群扩容,不会影响系统的正常运行,并且扩容过程中在线进行数据迁移,确保数据均衡分布在扩容后的多个集群上,稳定集群数据的负载量。
进一步地,参照图2,基于本申请中第一实施例,在本申请的第二实施例中,所述若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则基于所述数据的数据主键值、所述新增集群的数量和所述原始集群的数量,计算所述数据在当前扩容迭代次数对应的新增集群的集群编号的步骤包括:
步骤A10,若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则将所述数据主键值与所述新增集群的数量进行取模运算,得到所述数据的第三哈希值;
步骤A20,将所述第三哈希值与当前扩容迭代次数的原始集群的数量进行相加,得到所述数据对应的新增集群的集群编号。
在本实施例中,具体地,若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则证明所述数据在当前扩容迭代次数对应的集群为新增集群,进而将所述数据主键值与所述新增集群的数量进行取模运算,并将取模运算得到的余数作为所述数据的第三哈希值,进一步地,将所述第三哈希值和当前扩容迭代次数对应的原始集群的数量进行相加,并将相加得到的结果作为所述数据对应的新增集群的集群编号。
进一步地,基于本申请中第一实施例,在本申请的第三实施例中,所述若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则确定所述数据在当前扩容迭代次数对应的原始集群的集群编号的步骤包括:
步骤B10,若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则将所述数据在当前扩容迭代次数之前对应的原始集群的集群编号作为所述数据在当前扩容迭代次数对应的集群编号。
在本实施例中,具体地,若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则证明所述数据对应的集群编号不变,进而直接将所述数据在当前扩容迭代次数之前对应的原始集群的集群编号作为所述数据在当前扩容迭代次数对应的集群编号,也即,若当前扩容迭代次数为第一次,则直接将数据在扩容迭代之前对应的原始集群的集群编号作为当前扩容迭代次数对应的集群编号,若当前扩容迭代次数不是第一次,则将数据在上一个扩容迭代次数对应的原始集群的集群编号作为当前扩容迭代次数对应的集群编号,例如,参照表1,表1为在扩容迭代前各个数据对应的集群编号,其中,扩容前有三个集群,15条数据,15数据的数据主键值为0-14,各个数据对应的集群编号如下:
集群编号0 | 数据0 | 数据3 | 数据6 | 数据9 | 数据12 |
集群编号1 | 数据1 | 数据4 | 数据7 | 数据10 | 数据13 |
集群编号2 | 数据2 | 数据5 | 数据8 | 数据11 | 数据15 |
表1
参照表2,表2为在扩容迭代后各个数据对应的集群编号,其中,两个新增集群,数据的数量不变,扩容后各个数据对应的集群编号如下:
集群编号0 | 数据0 | 数据6 | 数据12 |
集群编号1 | 数据1 | 数据7 | 数据10 |
集群编号2 | 数据2 | 数据5 | 数据11 |
集群编号3 | 数据4 | 数据8 | 数据14 |
集群编号4 | 数据3 | 数据9 | 数据13 |
表2
本申请实施例通过上述方案,实现了在线进行集群扩容,从而不会影响系统的正常运行,并且扩容过程中基于所述数据的第一哈希值和当前扩容迭代次数的原始集群的数量,在线进行数据迁移,从而确保数据均衡分布在扩容后的多个集群上。
进一步地,参照图3,基于本申请中第一实施例,在本申请的第二实施例中,所述将各个数据在线迁移至所述最终集群编号对应的集群中的步骤包括:
步骤C10,分别判断各个数据对应的最终集群编号是否属于所述扩容迭代之前的原始集群的集群编号;
步骤C20,若是,则无需将所述数据进行迁移;
步骤C30,若否,则将所述数据从扩容迭代之前的原始集群迁移至所述最终集群编号对应的新增集群。
在本实施例中,具体地,若当前扩容迭代次数不小于所述扩容记录长度,得到各个数据对应的最终集群编号之后,分别判断各个数据对应的最终集群编号是否属于所述扩容迭代之前的原始集群的集群编号,若是,则无需将所述数据进行迁移,若否,则证明需要将数据进行数据迁移,进而将所述数据从扩容迭代之前的原始集群迁移至所述最终集群编号对应的新增集群中,例如,参照上述表1和表2,其中,数据主键值为0的数据在扩容前对应的集群编号为0,在扩容后该数据对应的集群编号仍为0,则无需将该数据进行迁移,进一步地,数据主键值为3的数据在扩容前对应的集群编号为0,在扩容后该数据对应的集群编号为4,进而将该数据从集群编号为0的集群中迁移至集群编号为4的新增集群中。
另外地,在数据迁移完成之前,若接收到用户的数据查询请求,则基于所述数据查询请求,在所述原始集群以及所述最终集群编号的新增集群中进行查询,得到查询结果,并将查询结果返回给用户,例如,参照上述表1和表2,数据主键值为3的数据在扩容前对应的集群编号为0,在扩容后该数据对应的集群编号为4,进而将该数据从集群编号为0的集群中迁移至集群编号为4的新增集群中,在数据迁移完成之前,接收到查询数据主键值为3的数据查询请求,进而在集群编号为0的集群以及在集群编号为4的集群中查询数据。
本申请实施例通过上述方案,实现了扩容过程中在线进行数据迁移,确保数据均衡分布在扩容后的多个集群上。
进一步地,参照图4,图4为本申请中集群在线扩容的流程示意图,其中,当扩容迭代次数等于0时,数据的集群编号=数据主键值与原始集群数取模,表示在进行扩容迭代之前,分别将各所述数据的数据主键值与所述原始集群的数量进行取模运算,得到各个数据的第二哈希值,进而基于各所述数据的第二哈希值,确定每一所述数据对应的原始集群的集群编号,当扩容迭代次数不等于0时,也即开始进行集群扩容,进而判断各个数据主键值与当前扩容迭代次数对应的集群的总数量进行取模,得到对应的第一哈希值,其中,集群的总数量为当前扩容迭代次数的新增集群的数量与原始集群的数量之和,进而将数据的第一哈希值和当前扩容迭代次数的原始集群的数量进行比较,若数据的第一哈希值大于或等于原始集群的数量,则基于所述数据的数据主键值与所述新增集群的数量进行取模,得到第三哈希值,并将所述第三哈希值加上当前扩容迭代次数的原始集群的数量,得到数据的集群编号,若数据的第一哈希值小于原始集群的数量,则将该数据在当前扩容迭代次数之前的集群编号作为该数据在当前扩容迭代次数的集群编号,直到扩容迭代次数不小于扩容记录长度,得到数据在每一次扩容迭代对应的集群编号。
参照图5,图5是本申请实施例方案涉及的硬件运行环境的集群在线扩容设备结构示意图。
如图5所示,该集群在线扩容设备可以包括:处理器1001,例如CPU,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
可选地,该集群在线扩容设备还可以包括矩形用户接口、网络接口、相机、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。矩形用户接口可以包括显示屏(Display)、输入子模块比如键盘(Keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可包括标准的有线接口、无线接口(如WIFI接口)。
本领域技术人员可以理解,图5中示出的集群在线扩容设备结构并不构成对集群在线扩容设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图5所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及集群在线扩容程序。操作系统是管理和控制集群在线扩容设备硬件和软件资源的程序,支持集群在线扩容程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与集群在线扩容系统中其它硬件和软件之间通信。
在图5所示的集群在线扩容设备中,处理器1001用于执行存储器1005中存储的集群在线扩容程序,实现上述任一项所述的集群在线扩容方法的步骤。
本申请集群在线扩容设备具体实施方式与上述集群在线扩容方法各实施例基本相同,在此不再赘述。
此外,请参照图6,图6是本申请集群在线扩容装置的功能模块示意图,本申请还提供一种集群在线扩容系统,所述集群在线扩容系统包括:
第一确定模块,用于确定各个数据在扩容迭代之前对应的原始集群的集群编号;
第一计算模块,用于若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,并基于各个数据的数据主键值、新增集群的数量和原始集群的数量,计算各个数据的第一哈希值;
第二确定模块,用于若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则确定所述数据在当前扩容迭代次数对应的原始集群的集群编号;
第二计算模块,用于若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则基于所述数据的数据主键值、所述新增集群的数量和所述原始集群的数量,计算所述数据在当前扩容迭代次数对应的新增集群的集群编号;
迁移模块,用于返回执行步骤:若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,直至当前扩容迭代次数不小于所述扩容记录长度,得到各个数据对应的最终集群编号,以将各个数据在线迁移至所述最终集群编号对应的集群中。
可选地,所述第一确定模块还用于:
分别将各所述数据的数据主键值与所述原始集群的数量进行取模运算,得到各个数据的第二哈希值;
基于各所述数据的第二哈希值,确定每一所述数据对应的原始集群的集群编号。
可选地,所述第一计算模块还用于:
若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则将所述数据主键值与所述新增集群的数量进行取模运算,得到所述数据的第三哈希值;
将所述第三哈希值与当前扩容迭代次数的原始集群的数量进行相加,得到所述数据对应的新增集群的集群编号。
可选地,所述第二确定模块还用于:
若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则将所述数据在当前扩容迭代次数之前对应的原始集群的集群编号作为所述数据在当前扩容迭代次数对应的集群编号。
可选地,所述迁移模块还用于:
分别判断各个数据对应的最终集群编号是否属于所述扩容迭代之前的原始集群的集群编号;
若是,则无需将所述数据进行迁移;
若否,则将所述数据从扩容迭代之前的原始集群迁移至所述最终集群编号对应的新增集群。
可选地,所述集群在线扩容系统还用于:
若在数据迁移完成之前,接收到用户的数据查询请求,则基于所述数据查询请求,在所述原始集群以及所述最终集群编号对应的新增集群中进行查询,得到查询结果,以将查询结果返回给用户。
可选地,所述集群在线扩容系统还用于:
基于各所述数据的最终集群编号,计算各个集群的存储负载量,以基于各个集群的存储负载量,确定是否需要进行集群扩容。
本申请集群在线扩容系统的具体实施方式与上述集群在线扩容方法各实施例基本相同,在此不再赘述。
本申请实施例提供了一种存储介质,所述存储介质为计算机可读存储介质,且所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的集群在线扩容方法的步骤。
本申请计算机可读存储介质具体实施方式与上述集群在线扩容方法各实施例基本相同,在此不再赘述。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。
Claims (10)
1.一种集群在线扩容方法,其特征在于,所述集群在线扩容方法包括:
确定各个数据在扩容迭代之前对应的原始集群的集群编号;
若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,并基于各个数据的数据主键值、新增集群的数量和原始集群的数量,计算各个数据的第一哈希值;
若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则确定所述数据在当前扩容迭代次数对应的原始集群的集群编号;
若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则基于所述数据的数据主键值、所述新增集群的数量和所述原始集群的数量,计算所述数据在当前扩容迭代次数对应的新增集群的集群编号;
返回执行步骤:若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,直至当前扩容迭代次数不小于所述扩容记录长度,得到各个数据对应的最终集群编号,以将各个数据在线迁移至所述最终集群编号对应的集群中。
2.如权利要求1所述的集群在线扩容方法,其特征在于,所述确定各个数据在扩容迭代之前对应的原始集群的集群编号的步骤包括:
分别将各所述数据的数据主键值与所述原始集群的数量进行取模运算,得到各个数据的第二哈希值;
基于各所述数据的第二哈希值,确定每一所述数据对应的原始集群的集群编号。
3.如权利要求1所述的集群在线扩容方法,其特征在于,所述若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则基于所述数据的数据主键值、所述新增集群的数量和所述原始集群的数量,计算所述数据在当前扩容迭代次数对应的新增集群的集群编号的步骤包括:
若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则将所述数据主键值与所述新增集群的数量进行取模运算,得到所述数据的第三哈希值;
将所述第三哈希值与当前扩容迭代次数的原始集群的数量进行相加,得到所述数据对应的新增集群的集群编号。
4.如权利要求1所述的集群在线扩容方法,其特征在于,所述若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则确定所述数据在当前扩容迭代次数对应的原始集群的集群编号的步骤包括:
若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则将所述数据在当前扩容迭代次数之前对应的原始集群的集群编号作为所述数据在当前扩容迭代次数对应的集群编号。
5.如权利要求1所述的集群在线扩容方法,其特征在于,所述将各个数据在线迁移至所述最终集群编号对应的集群中的步骤包括:
分别判断各个数据对应的最终集群编号是否属于所述扩容迭代之前的原始集群的集群编号;
若是,则无需将所述数据进行迁移;
若否,则将所述数据从扩容迭代之前的原始集群迁移至所述最终集群编号对应的新增集群。
6.如权利要求5所述的集群在线扩容方法,其特征在于,在所述将所述数据从扩容迭代之前的原始集群迁移至所述最终集群编号对应的新增集群的步骤之后,所述集群在线扩容方法包括:
若在数据迁移完成之前,接收到用户的数据查询请求,则基于所述数据查询请求,在所述原始集群以及所述最终集群编号对应的新增集群中进行查询,得到查询结果,以将查询结果返回给用户。
7.如权利要求1所述的集群在线扩容方法,其特征在于,在所述将各个数据在线迁移至所述最终集群编号对应的集群中的步骤之后,所述集群在线扩容方法还包括:
基于各所述数据的最终集群编号,计算各个集群的存储负载量,以基于各个集群的存储负载量,确定是否需要进行集群扩容。
8.一种集群在线扩容系统,其特征在于,所述集群在线扩容系统包括:
第一确定模块,用于确定各个数据在扩容迭代之前对应的原始集群的集群编号;
第一计算模块,用于若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,并基于各个数据的数据主键值、新增集群的数量和原始集群的数量,计算各个数据的第一哈希值;
第二确定模块,用于若所述数据的第一哈希值小于当前扩容迭代次数的原始集群的数量,则确定所述数据在当前扩容迭代次数对应的原始集群的集群编号;
第二计算模块,用于若所述数据的第一哈希值不小于当前扩容迭代次数的原始集群的数量,则基于所述数据的数据主键值、所述新增集群的数量和所述原始集群的数量,计算所述数据在当前扩容迭代次数对应的新增集群的集群编号;
迁移模块,用于返回执行步骤:若当前扩容迭代次数小于预先设置的扩容记录长度,则确定当前扩容迭代次数的新增集群的数量,直至当前扩容迭代次数不小于所述扩容记录长度,得到各个数据对应的最终集群编号,以将各个数据在线迁移至所述最终集群编号对应的集群中。
9.一种集群在线扩容设备,其特征在于,所述集群在线扩容设备包括:存储器、处理器以及存储在存储器上的集群在线扩容程序,
所述集群在线扩容程序被所述处理器执行实现如权利要求1至7中任一项所述集群在线扩容方法的步骤。
10.一种存储介质,所述存储介质为计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有集群在线扩容程序,所述集群在线扩容程序被处理器执行实现如权利要求1至7中任一项所述集群在线扩容方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210737622.7A CN115145893B (zh) | 2022-06-27 | 2022-06-27 | 集群在线扩容方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210737622.7A CN115145893B (zh) | 2022-06-27 | 2022-06-27 | 集群在线扩容方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115145893A CN115145893A (zh) | 2022-10-04 |
CN115145893B true CN115145893B (zh) | 2024-04-02 |
Family
ID=83408937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210737622.7A Active CN115145893B (zh) | 2022-06-27 | 2022-06-27 | 集群在线扩容方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115145893B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113507390A (zh) * | 2021-07-08 | 2021-10-15 | 中国工商银行股份有限公司 | 分布式系统集群在线分片扩容方法及装置 |
CN113505176A (zh) * | 2021-07-08 | 2021-10-15 | 中国工商银行股份有限公司 | 分布式系统集群在线分片扩容方法及装置 |
WO2021207923A1 (zh) * | 2020-04-14 | 2021-10-21 | 深圳市欢太科技有限公司 | 集群扩容方法、装置、存储介质及电子设备 |
-
2022
- 2022-06-27 CN CN202210737622.7A patent/CN115145893B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021207923A1 (zh) * | 2020-04-14 | 2021-10-21 | 深圳市欢太科技有限公司 | 集群扩容方法、装置、存储介质及电子设备 |
CN113507390A (zh) * | 2021-07-08 | 2021-10-15 | 中国工商银行股份有限公司 | 分布式系统集群在线分片扩容方法及装置 |
CN113505176A (zh) * | 2021-07-08 | 2021-10-15 | 中国工商银行股份有限公司 | 分布式系统集群在线分片扩容方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于二次映射的哈希负载均衡方法;王永亮;;信息记录材料;20181201(12);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115145893A (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11249969B2 (en) | Data storage method and apparatus, and storage medium | |
US8417991B2 (en) | Mitigating reduction in availability level during maintenance of nodes in a cluster | |
US8051422B2 (en) | Resource assignment method for query partioning based on processing cost of each partition | |
EP3432157A1 (en) | Data table joining mode processing method and apparatus | |
US10592531B2 (en) | Efficient partitioning of relational data | |
WO2016134580A1 (zh) | 一种数据查询方法及装置 | |
US10191947B2 (en) | Partitioning advisor for online transaction processing workloads | |
CN113177225B (zh) | 基于区块链的数据存储证明方法、装置、设备和存储介质 | |
CA3128540C (en) | Cache system hotspot data access method, apparatus, computer device and storage medium | |
CN111512283B (zh) | 数据库中的基数估算 | |
CN111966631A (zh) | 一种可快速分发的镜像文件生成方法、系统、设备和介质 | |
US7788201B2 (en) | Method, system, and program product for dispatching an event to a rule using key-value pair | |
CN111885184A (zh) | 高并发场景下热点访问关键字处理方法和装置 | |
CN111522811A (zh) | 数据库的处理方法及装置、存储介质、终端 | |
CN115145893B (zh) | 集群在线扩容方法、系统、设备及存储介质 | |
CN107391541B (zh) | 一种实时数据合并方法和装置 | |
CN110460987B (zh) | 一种写卡方法、装置、服务器和存储介质 | |
CN110083438B (zh) | 事务分发方法、装置、设备和存储介质 | |
CN110837499A (zh) | 数据访问处理方法、装置、电子设备和存储介质 | |
CN116955271A (zh) | 一种数据副本存储的方法、装置、电子设备及存储介质 | |
CN112487111A (zh) | 基于kv数据库的数据表关联方法及装置 | |
CN115794806A (zh) | 金融数据的网格化处理系统及方法、装置、计算设备 | |
CN113609168A (zh) | 数据导出方法、装置、终端以及可读存储介质 | |
CN111813761A (zh) | 一种数据库管理方法、装置以及计算机存储介质 | |
CN113076197A (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 |