CN107544848A - 集群扩展方法、装置、电子设备及存储介质 - Google Patents

集群扩展方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN107544848A
CN107544848A CN201710764058.7A CN201710764058A CN107544848A CN 107544848 A CN107544848 A CN 107544848A CN 201710764058 A CN201710764058 A CN 201710764058A CN 107544848 A CN107544848 A CN 107544848A
Authority
CN
China
Prior art keywords
burst
cluster
expanding machinery
current slice
data
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.)
Granted
Application number
CN201710764058.7A
Other languages
English (en)
Other versions
CN107544848B (zh
Inventor
李兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Priority to CN201710764058.7A priority Critical patent/CN107544848B/zh
Priority to US16/627,762 priority patent/US10896056B2/en
Priority to PCT/CN2017/119641 priority patent/WO2019041701A1/zh
Publication of CN107544848A publication Critical patent/CN107544848A/zh
Application granted granted Critical
Publication of CN107544848B publication Critical patent/CN107544848B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种集群扩展方法,所述方法包括:获取待扩展机器的数据;获取集群中的机器数量;当确定待扩展机器的数量不是所述集群中的机器数量的倍数时,获取所述集群中当前分片的数据总量及所述当前分片的分片数量;根据所述集群中当前分片的数据总量、当前分片的分片数量及待扩展机器的分片数量,将所述当前分片中每个分片的部分数据量迁移到所述待扩展器中;当确定所述待扩展机器的数量是所述集群中的机器数量的倍数时,根据待扩展机器的性能参数,将所述待扩展机器配置在所述集群中。本发明能提升集群性能,减少或避免数据迁移。同时能实现负载均衡。

Description

集群扩展方法、装置、电子设备及存储介质
技术领域
本发明涉及数据库技术领域,尤其涉及一种集群扩展方法、装置、电子设备及存储介质。
背景技术
现有技术中集群(例如搜索引擎集群)的状态不是一成不变,很难提前知道集群中所需要的分片shard个数,随着机器规模的扩大,或者意外的宕机服务,集群中会不断的有机器增加或者退出,在集群中添加机器及分片后,因为不同机器对应的地址区间(如hash区间)发生了变化,所以要进行数据迁移,带来了抖动现象,这是一个耗时且耗性能的操作。
当增加机器的分片后,现有技术中一般是将某一个或者多个分片分割成多个子分片,将一个或者多个子分片作为新增加的机器的分片,这样就会导致迁移数据的压力就会落在某一台或者多台机器上。而且这样会导致某一台或者多台机器之间的网络负载突然增大,引发常说的“热点”问题。即分割分片的机器独自承担所有的数据迁移任务,抖动明显,容易造成性能瓶颈。
当集群中一个原来的分片被分割两个子分片之后,两个子分片的地址区间(如hash区间)变小,机器数据负荷减轻,搜索可以加速,但是集群中其他分片的地址区间(如hash区间)并没有发生变化。集群的查询是先分后汇总的过程,也就是说最后每一个分片查询完毕才算完毕,所以此处查询速度是由没有被分割的分片的查询速度决定的。所以整个查询效率基本看不到明显提升。此种情况下,不成倍增加机器是看不到集群性能提升。
发明内容
鉴于以上内容,有必要提供一种集群扩展方法、装置、电子设备及存储介质,本发明能提升集群性能,减少或避免数据迁移。同时能实现负载均衡。
一种集群扩展方法,所述方法包括:
获取待扩展机器的数据,所述待扩展机器的数据包括以下一种或者多种:待扩展机器的数量、待扩展机器的性能参数、待扩展机器的分片数量;
获取集群中的机器数量;
当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,获取所述集群中当前分片的数据总量及所述当前分片的分片数量;
根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将所述当前分片中每个分片的部分数据量迁移到所述待扩展器中中;
当确定所述待扩展机器的数量是所述集群中的机器数量的倍数时根据所述待扩展机器的性能参数,将所述待扩展机器配置在所述集群中。
根据本发明优选实施例,所述根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将所述当前分片中每个分片的部分数据量迁移到所述待扩展器中包括:
根据所述当前分片中的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,确定所述当前分片中每个分片的待迁移数据量;
根据所述当前分片中每个分片的待迁移数据量,确定所述当前分片中每个分片的待迁移数据块;
根据所述当前分片中每个分片的待迁移数据块,获取所述当前分片中每个分片的待迁移数据块的地址区间;
根据所述当前分片中每个分片的待迁移数据块,及所述当前分片中每个分片的待迁移数据块的地址区间;配置所述待扩展机器的分片中每个分片。
根据本发明优选实施例,所述根据所述当前分片中每个分片的待迁移数据块,及所述当前分片中每个分片的待迁移数据块的地址区间,配置所述待扩展机器的分片中每个分片包括:
根据所述待扩展机器的分片数量,将所述当前分片中每个分片的待迁移数据块均匀分割成至少一个子数据块;
将所述当前分片中每个分片的至少一个子数据块均匀配置给所述待扩展机器的分片中每个分片,所述待扩展机器的分片中每个分片由一个或者多个子数据块组成;
将所述待扩展机器的分片中每个分片的所述一个或者多个子数据块对应的地址区间,配置给所述待扩展机器的分片中每个分片的地址区间。
根据本发明优选实施例,所述方法还包括:当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,在所述集群的调度机制的调度下,以异步进行形式将所述待扩展机器配置在所述集群中。
根据本发明优选实施例,所述根据所述待扩展机器的性能参数,将所述待扩展机器配置在所述集群中包括:
以集合collection圈在所述集群中扩展所述待扩展机器,所述集群中的每个collection圈对应一个时间参数;
获取所述集群中每个时间段的存储数据量;
根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,配置所述待扩展机器的collection圈。
根据本发明优选实施例,所述根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,配置所述待扩展机器的collection圈包括以下一种或者多种的组合:
根据所述集群中每个时间段的存储数据量,确定存储数据量增长速度最快的时间段,将所述时间段对应的时间参数确定为所述配置的collection圈的时间参数;或
根据所述集群中每个时间段的存储数据量,确定存储数据量超过预设值的时间段,将所述时间段对应的时间参数确定为所述配置的collection圈的时间参数;或
根据所述待扩展机器的性能参数及所述集群中每个虚拟节点对应的机器群组,配置每个虚拟节点在所述配置的collection圈上对应的待扩展机器。
根据本发明优选实施例,所述方法还包括:
接收输入的索引,及接收与所述索引对应的时间及所述索引中每个文档对应的文件号;
根据所述索引对应的时间,查询与所述索引对应的时间相匹配的collection圈;
根据每个文档对应的文件号,查询与每个文档对应的文件号相匹配的虚拟节点;
在所述collection圈上,确定与匹配的虚拟节点对应的机器;
在确定的机器上,获取所述机器的分片中的文档,并将获取的文档提供给用户。
一种集群扩展装置,所述装置包括:
获取单元,用于获取待扩展机器的数据,所述待扩展机器的数据包括以下一种或者多种:待扩展机器的数量、待扩展机器的性能参数、待扩展机器的分片数量;
所述获取单元还用于获取集群中的机器数量;
所述获取单元还用于当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,获取所述集群中当前分片的数据总量及所述当前分片的分片数量;
配置单元,用于根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将所述待扩展机器配置在所述集群中;
所述获取单元还用于当确定所述待扩展机器的数量是所述集群中的机器数量的倍数时,获取所述集群中每个时间段的存储数据量;
所述配置单元还用于根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,将所述待扩展机器配置在所述集群中。
一种电子设备,所述电子设备包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现任意实施例中任一项所述集群扩展方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现集群扩展方法,所述集群扩展方法包括任意实施例中所述集群扩展方法。
由以上技术方案可以看出,本发明通过获取待扩展机器的数据,所述待扩展机器的数据包括以下一种或者多种:待扩展机器的数量、待扩展机器的性能参数、待扩展机器的分片数量;获取集群中的机器数量;当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,获取所述集群中当前分片的数据总量及所述当前分片的分片数量;根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将所述待扩展机器配置在所述集群中;当确定所述待扩展机器的数量是所述集群中的机器数量的倍数时,获取所述集群中每个时间段的存储数据量;根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,将所述待扩展机器配置在所述集群中。本发明能提升集群性能,减少或避免数据迁移。同时能实现负载均衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明集群扩展方法的较佳实施例的流程图。
图2是本发明的实施例中分片数据迁移的示意图。
图3是本发明的实施例中分片数据迁移的异步进行的示意图。
图4是本发明的实施例中集群的collection圈的示意图。
图5是本发明集群扩展装置的较佳实施例的功能模块图。
图6是本发明至少一个实例中电子设备的较佳实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了更好的理解下面的实施例,先对集群中的概念做简单的介绍,所述集群包括,但不限于:搜索引擎集群。
一个集群中有一个或者多个机器组成,每个机器对应一个节点,也可以说,一个集群就是由一个或者多个节点组织在一起,并一起提供索引和搜索功能。每个机器中分布有至少一个分片,所述分片用于存储索引数据。一个索引是一个拥有相似特征的文档的集合。例如,一个客户数据的索引,一个产品目录的索引等等。一个索引由一个名字来标识。一个文档是一个可被索引的基础信息单元,一个索引可以包括多个文档,所述多个文档被分配在各个分片上。每个文档对应一个文件号,利用每个文档对应一个文件号,可以对这个索引中的文档进行索引、搜索、更新和删除。
如图1所示,是本发明集群扩展方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S10,电子设备获取待扩展机器的数据。
在本发明的实施例中,所述待扩展机器的数据包括,但不限于:以下一种或者多种:待扩展机器的数量、待扩展机器的性能参数、待扩展机器的分片数量。所述性能参数包括处理器的配置、存储器的大小等等。所述待扩展机器是要增加到集群中的机器。
S11,所述电子设备获取集群中的机器数量。
在本发明的实施例中,所述集群中的机器数量是已经配置在所述集群中的机器的数量。
在优选实施例中,需要先判断所述待扩展机器的数量是否是所述集群中的机器数量的倍数。当所述待扩展机器的数量不是所述集群中的机器数量的倍数时,执行S12,当所述待扩展机器的数量是所述集群中的机器数量的倍数时,执行S14。
S12,当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,所述电子设备获取所述集群中当前分片的数据总量及所述当前分片的分片数量。
在本发明的实施例中,所述当前分片的数量可以是一个或者多个。当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,在配置所述待扩展机器时,需要将所述当前分片的数据量迁移一部分到所述待扩展机器上,以缓解所述集群中机器的压力,将在后续的实施例中详述。
S13,所述电子设备根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将所述当前分片中每个分片的部分数据量迁移到所述待扩展机器中以将所述待扩展机器配置在所述集群中。
在本发明的优选实施例中,所述根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将当前分片中每个分片的部分数据量迁移到所述待扩展器中以将所述待扩展机器配置在所述集群中包括:
(a1)根据所述当前分片中的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,确定所述当前分片中每个分片的待迁移数据量。
其中,每个分片的待迁移数据量为每个分片的要迁移到所述待扩展器重的部分数据量。
优选地,所述当前分片中每个分片待迁移的数据量等于(所述当前分片中每个分片的数据量-所述集群中的数据总量/(当前分片的数量+待扩展机器的分片数量))。
(a2)根据所述当前分片中每个分片的待迁移数据量,确定所述当前分片中每个分片的待迁移数据块。
(a3)根据所述当前分片中每个分片的待迁移数据块,获取所述当前分片中每个分片的待迁移数据块的地址区间。
在优选实施例中,所述地址区间包括,但不限于哈希区间。
(a4)根据所述当前分片中每个分片的待迁移数据块,及所述当前分片中每个分片的待迁移数据块的地址区间,配置所述待扩展机器的分片中每个分片。
优选地,将所述当前分片中每个分片的待迁移数据量均匀的分配在所述待扩展的分片的每个分片中。因此,所述根据所述当前分片中每个分片的待迁移数据块,及所述当前分片中每个分片的待迁移数据块的地址区间,配置所述待扩展机器的分片中每个分片包括:
(a41)根据所述待扩展机器的分片数量,将所述当前分片中每个分片的待迁移数据块均匀分割成至少一个子数据块。
(a42)将所述当前分片中每个分片的至少一个子数据块均匀配置给所述待扩展机器的分片中每个分片,所述待扩展机器的分片中每个分片由一个或者多个子数据块组成。
(a43)将所述待扩展机器的分片中每个分片的所述一个或者多个子数据块对应的地址区间,配置给所述待扩展机器的分片中每个分片的地址区间。
例如,如图2所示,当前分片中有三个分片,即第一分片、第二分片、第三分片。所述第一分片、所述第二分片、及所述第三分片的数据量都是100,所述待扩展机器有2个,每个待扩展机器上有一个分片,即所述待扩展机器的分片总共有2个,第一新分片、第二新分片。则所述第一分片、所述第二分片、及所述第三分片分别需要迁移的数据量为:100-300/5=40。则所述第一分片、所述第二分片、及所述第三分片分别需要向第一新分片迁移20个单位的数据量的子数据块,所述第一分片、所述第二分片、及所述第三分片分别需要向第二新分片迁移20个单位的数据量的子数据块。所述第一新分片由子数据块一、子数据块三、子数据块五组成。所述第二新分片由子数据块二、子数据块四、子数据块六组成。所述第一新分片的哈希区间由子数据块一对应的哈希区间一、子数据块三对应的哈希区间三、子数据块五对应的哈希区间五组成。所述第二新分片的哈希区间由子数据块二对应的哈希区间二、子数据块四对应的哈希区间四、子数据块六对应的哈希区间六组成。
由于集群的查询是先分后汇总的过程,也就是说最后每一个分片查询完毕才算完毕,因此,通过上述实施例,由于所述电子设备将所述当前分片中每个分片的部分数据量迁移到所述待扩展机器中以将所述待扩展机器配置在所述集群中,即通过将配置前的集群中每一分片的部分数据量进行迁移,使得配置后的集群的每一分片的数据量均小于配置前的具有最大数据量的分片的数据量,因此,配置后的集群的查询时间减小,从而提升了集群性能。例如在集群中每增加一台机器就可以看见集群性能的明显提升,而无需成倍增加机器才能看到搜索效率的提升。而且节点划分造成的数据迁移减弱,网络性能影响不明显。
另外,在本实施例中,由于配置后的集群中每个分片中的数据量是均匀的,从而确保配置后的集群的查询时间最短,进一步提升了集群性能。
在优选实施例中,集群中每台机器的分片中的数据迁移可以不是在同一时间内进行,而是在调用机制的调度下异步进行,类似于在处理器调度下执行多线程任务。所述调用机制的调度原则就是规避查询或者创建索引等任务的时段,根据各个分片的任务状态,让空闲的分片先进行数据迁移,让任务重的分片最后进行数据迁移等等。因此,当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,在所述集群的调度机制的调度下,以异步进行形式将所述待扩展机器配置在所述集群中。这样不仅规避了抖动,而且能提高整体迁移时间。
如图3所示,需要将第一分片、第二分片、及第三分片的部分数据异步进行的迁移到第四分片中,所述第一分片在第一时间进行数据迁移、所述第二分片在第二时间进行数据迁移、所述第三分片在第三时间进行数据迁移、所述第一时间、第二时间、第三时间不同。
S14,当确定所述待扩展机器的数量是所述集群中的机器数量的倍数时,所述电子设备根据所述待扩展机器的性能参数,将所述待扩展机器配置在所述集群中。
在本发明的实施例中,可以以集合collection圈在所述集群中扩展所述待扩展机器,这样索引数据在新的索引集合中(即所述待扩展机器的分片中)进行存储与查询,就不会有数据的迁移。集合collection是一个逻辑意义上的完整索引集合。
所述集群中可以有多个不同的collection圈,每个collection圈对应一个时间参数,也就是说每个不同的collection圈位于不同的时间维度坐标上。不同的collection圈上存储着不同时间段的索引数据。例如,第一collection圈对应的是2016年的collection索引数据集合,第二collection圈对应的是2017年的collection索引数据集合。另外,不同时间段下的collection圈的数量可能不同,collection圈在时间坐标上的密集程度与该时间坐标下的所需存储数据量成正比。例如对于2017年这一年的索引数据,需要存储的数据量为100万,时间参数以月为单位,可以有12个collection圈,对于2016年这一年的需要存储的数据量为30万,时间参数以季度为单位,可以有4个collection圈。
所述多个不同的collection圈上有相同的虚拟节点,因此,不同collection圈上的分片的哈希区间都相同。但在每个collection圈上,每个虚拟节点对应不同的机器。
例如,如图4所示,有三个虚拟节点,即第一虚拟节点、第二虚拟节点、第三虚拟节点。有两个collection圈,第一collection圈及第二collection圈,所述第一collection圈对应第一时间参数,所述第二collection圈对应第二时间参数。在第一collection圈上有三个机器,第一机器,第二机器、第三机器。在第二collection圈上有六个机器,第四机器,第五机器、第六机器、第七机器,第八机器、第九机器。在第一collection圈上,第一虚拟节点对应的机器为第二机器、第二虚拟节点对应的机器为第三机器、第三虚拟节点对应的机器为第一机器、第二虚拟节点对应的机器为第三机器。在第二collection圈上,第一虚拟节点对应的机器为第四机器、第五机器、第六机器,第二虚拟节点对应的机器为第七机器,第三虚拟节点对应的机器为第八机器、第九机器。
在优选实施例中,以collection圈在所述集群中扩展所述待扩展机器,所述集群中的每个collection圈对应一个时间参数,获取所述集群中每个时间段的存储数据量,并根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,配置所述待扩展机器的collection圈。
所述根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,配置所述待扩展机器的collection圈包括以下一种或者多种的组合:
(b1)根据所述集群中每个时间段的存储数据量,确定存储数据量增长速度最快的时间段,将所述时间段对应的时间参数确定为所述配置的collection圈的时间参数。
(b2)根据所述集群中每个时间段的存储数据量,确定存储数据量超过预设值的时间段,将所述时间段对应的时间参数确定为所述配置的collection圈的时间参数。
(b3)根据所述待扩展机器的性能参数及所述集群中每个虚拟节点对应的机器群组,配置每个虚拟节点在所述配置的collection圈上对应的待扩展机器。
优选地,可以根据所述待扩展机器的性能参数(处理器、磁盘大小等等其他配置参数)及所述集群中每个虚拟节点对应的机器群组的性能参数,均衡配置在所述配置的collection圈上对应的待扩展机器,使每个虚拟节点对应的机器群组的整体性能较均衡。因此,通过该实施例,使用虚拟节点是为了数据更均匀分布的优化。由于每台机器的性能不同,以避免不能很好的实现负载均衡。
例如有两个虚拟点,第一虚拟节点对应两台机器,第二虚拟节点上没有对应的机器,当有一台待扩展机器的性能参数相当于所述第一虚拟节点对应的两台机器的性能参数之和,那么可以将所述待扩展机器配置给所述第二虚拟节点。
在优选实施例中,另外在以collection圈在所述集群中扩展所述待扩展机器时,在新建索引时,需要输入索引的时间参数,在所述集群的collection圈中查找与输入的时间参数对应的collection圈,在查找到的collection圈上,将所述索引分别存于不同的虚拟节点下的机器中,并记录所述索引中每个文档的文件号对应的虚拟节点。
在查询索引时,接收输入的索引,及接收与所述索引对应的时间及所述索引中每个文档对应的文件号;根据所述索引对应的时间,查询与所述索引对应的时间相匹配的collection圈;根据每个文档对应的文件号,查询与每个文档对应的文件号相匹配的虚拟节点;在所述匹配的collection圈上,确定与匹配的虚拟节点对应的机器;在确定的机器上,获取所述机器的分片中的文档,并将获取的文档提供给用户。
通过这种在集群中成倍扩展机器的方式,可以完全规避数据迁移,没有数据抖动。同时由于没有数据迁移,避免了网络带宽的占用,以及系统性能的损耗,节省了时间,更利于系统的升级更新。
本发明通过获取待扩展机器的数据,所述待扩展机器的数据包括以下一种或者多种:待扩展机器的数量、待扩展机器的性能参数、待扩展机器的分片数量;获取集群中的机器数量;当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,获取所述集群中当前分片的数据总量及所述当前分片的分片数量;根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将所述待扩展机器配置在所述集群中;当确定所述待扩展机器的数量是所述集群中的机器数量的倍数时,获取所述集群中每个时间段的存储数据量;根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,将所述待扩展机器配置在所述集群中。本发明能提升集群性能,减少或避免数据迁移。同时能实现负载均衡。
如图5所示,本发明集群扩展装置的较佳实施例的功能模块图。所述集群扩展装置16包括获取单元100、判断单元101、配置单元102、新建单元103及查询单元104。本发明所称的单元是指一种能够被集群扩展装置16的处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各单元的功能将在后续的实施例中详述。
所述获取单元100获取待扩展机器的数据。
在本发明的实施例中,所述待扩展机器的数据包括,但不限于:以下一种或者多种:待扩展机器的数量、待扩展机器的性能参数、待扩展机器的分片数量。所述性能参数包括处理器的配置、存储器的大小等等。
所述获取单元100获取集群中的机器数量。
在本发明的实施例中,所述集群中的机器数量是已经配置在所述集群中的机器的数量。
在优选实施例中,所述判断单元101判断所述待扩展机器的数量是否是所述集群中的机器数量的倍数。当所述待扩展机器的数量不是所述集群中的机器数量的倍数时,所述获取单元100获取所述集群中当前分片的数据总量及所述当前分片的分片数量,当所述待扩展机器的数量不是所述集群中的机器数量的倍数时,所述获取单元100获取所述集群中每个时间段的存储数据量。
当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,所述获取单元100获取所述集群中当前分片的数据总量及所述当前分片的分片数量。
在本发明的实施例中,所述当前分片的数量可以是一个或者多个。当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,在配置所述待扩展的机器时,需要将所述当前分片的数据量迁移一部分到所述待扩展的机器上,以缓解所述集群中机器的压力,将在后续的实施例中详述。
所述配置单元102根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将当前分片中每个分片的部分数据量迁移到所述待扩展器中以将所述待扩展机器配置在所述集群中中。
在本发明的优选实施例中,所述配置单元102根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将当前分片中每个分片的部分数据量迁移到所述待扩展器中以将所述待扩展机器配置在所述集群中包括:
(a1)根据所述当前分片中的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,确定所述当前分片中每个分片的待迁移数据量。
优选地,所述当前分片中每个分片待迁移的数据量等于(所述当前分片中每个分片的数据量-所述集群中的数据总量/(当前分片的数量+待扩展机器的分片数量))。
(a2)根据所述当前分片中每个分片的待迁移数据量,确定所述当前分片中每个分片的待迁移数据块。
(a3)根据所述当前分片中每个分片的待迁移数据块,获取所述当前分片中每个分片的待迁移数据块的地址区间。
在优选实施例中,所述地址区间包括,但不限于哈希区间。
(a4)根据所述当前分片中每个分片的待迁移数据块,及所述当前分片中每个分片的待迁移数据块的地址区间;配置所述待扩展机器的分片中每个分片。
优选地,将所述当前分片中每个分片的待迁移数据量均匀的分配在所述待扩展的分片的每个分片中。因此,所述配置单元102根据所述当前分片中每个分片的待迁移数据块,及所述当前分片中每个分片的待迁移数据块的地址区间;配置所述待扩展机器的分片中每个分片包括:
(a41)根据所述待扩展机器的分片数量,将所述当前分片中每个分片的待迁移数据块均匀分割成至少一个子数据块。
(a42)将所述当前分片中每个分片的至少一个子数据块均匀配置给所述待扩展机器的分片中每个分片,所述待扩展机器的分片中每个分片由一个或者多个子数据块组成。
(a43)将所述待扩展机器的分片中每个分片的所述一个或者多个子数据块对应的地址区间,配置给所述待扩展机器的分片中每个分片的地址区间。
例如,如图2所示,当前分片中有三个分片,即第一分片、第二分片、第三分片。所述第一分片、所述第二分片、及所述第三分片的数据量都是100,所述待扩展机器有2个,每个待扩展机器上有一个分片,即所述待扩展机器的分片总共有2个,第一新分片、第二新分片。则所述第一分片、所述第二分片、及所述第三分片分别需要迁移的数据量为:100-300/5=40。则所述第一分片、所述第二分片、及所述第三分片分别需要向第一新分片迁移20个单位的数据量,所述第一分片、所述第二分片、及所述第三分片分别需要向第二新分片迁移20个单位的数据量的子数据块。所述第一新分片由子数据块一、子数据块三、子数据块五组成。所述第二新分片由子数据块二、子数据块四、子数据块六组成。所述第一新分片的哈希区间由子数据块一对应的哈希区间一、子数据块三对应的哈希区间三、子数据块五对应的哈希区间五组成。所述第二新分片的哈希区间由子数据块二对应的哈希区间二、子数据块四对应的哈希区间四、子数据块六对应的哈希区间六组成。
由于集群的查询是先分后汇总的过程,也就是说最后每一个分片查询完毕才算完毕,因此,通过上述实施例,集群中每个分片中的数据量是均匀的,在集群中每增加一台机器就可以看见集群性能的明显提升,而无需成倍增加机器才能看到搜索效率的提升。而且节点划分造成的数据迁移减弱,网络性能影响不明显。
在优选实施例中,集群中每台机器的分片中的数据迁移可以不是在同一时间内进行,而是在调用机制的调度下异步进行,类似于在处理器调度下执行多线程任务。所述调用机制的调度原则就是规避查询或者创建索引等任务的时段,根据各个分片的任务状态,让空闲的分片先进行数据迁移,让任务重的分片最后进行数据迁移等等。因此,当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,在所述集群的调度机制的调度下,所述配置单元102以异步进行形式将所述待扩展机器配置在所述集群中。这样不仅规避了抖动,而且能提高整体迁移时间。
如图3所示,需要将第一分片、第二分片、及第三分片的部分数据异步进行的迁移到第四分片中,所述第一分片在第一时间进行数据迁移、所述第二分片在第二时间进行数据迁移、所述第三分片在第三时间进行数据迁移、所述第一时间、第二时间、第三时间不同。
当确定所述待扩展机器的数量是所述集群中的机器数量的倍数时,所述配置单元102根据所述待扩展机器的性能参数,将所述待扩展机器配置在所述集群中。
在本发明的实施例中,可以以collection圈在所述集群中扩展所述待扩展机器,这样索引数据在新的索引集合中(即所述待扩展机器的分片中)进行存储与查询,就不会有数据的迁移。集合collection是一个逻辑意义上的完整索引集合。
所述集群中可以有多个不同的collection圈,每个collection圈对应一个时间参数,也就是说每个不同的collection圈位于不同的时间维度坐标上。不同的collection圈上存储着不同时间段的索引数据。例如,第一collection圈对应的是2016年的collection索引数据集合,第二collection圈对应的是2017年的collection索引数据集合。另外,不同时间段下的,collection圈的数量可能不同,collection圈在时间坐标上的密集程度与该时间坐标下的所需存储数据量成正比。例如对于2017年这一年的索引数据,需要存储的数据量为100万,时间参数以月为单位,可以有12个collection圈,对于2016年这一年的需要存储的数据量为30万,可以以时间参数以季度为单位,可以有4个collection圈。
所述多个不同的collection圈上有相同的虚拟节点,因此,不同collection圈上的分片的哈希区间都相同。但在每个collection圈上,每个虚拟节点对应不同的机器。
例如,如图4所示,有三个虚拟节点,即第一虚拟节点、第二虚拟节点。有两个collection圈,第一collection圈及第二collection圈,所述第一collection圈对应第一时间参数,所述第二collection圈对应第二时间参数。在第一collection圈上有三个机器,第一机器,第二机器、第三机器。在第二collection圈上有六个机器,第四机器,第五机器、第六机器、第七机器,第八机器、第九机器。在第一collection圈上,第一虚拟节点对应的机器为第二机器、第二虚拟节点对应的机器为第三机器、第三虚拟节点对应的机器为第一机器、第二虚拟节点对应的机器为第三机器。在第二collection圈上,第一虚拟节点对应的机器为第四机器、第五机器、第六机器。第二虚拟节点对应的机器为第七机器、第三虚拟节点对应的机器为第八机器。
所述配置单元102以collection圈在所述集群中扩展所述待扩展机器,所述集群中的每个collection圈对应一个时间参数,获取所述集群中每个时间段的存储数据量,并根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,配置所述待扩展机器的collection圈。
所述配置单元102根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,配置所述待扩展机器的collection圈包括以下一种或者多种的组合:
(b1)根据所述集群中每个时间段的存储数据量,确定存储数据量增长速度最快的时间段,将所述时间段对应的时间参数确定为所述配置的collection圈的时间参数。
(b2)根据所述集群中每个时间段的存储数据量,确定存储数据量超过预设值的时间段,将所述时间段对应的时间参数确定为所述配置的collection圈的时间参数。
(b3)根据所述待扩展机器的性能参数及所述集群中每个虚拟节点对应的机器群组,配置每个虚拟节点在所述配置的collection圈上对应的待扩展机器。
优选地,所述配置单元102可以根据所述待扩展机器的性能参数(处理器、磁盘大小等等其他配置参数)及所述集群中每个虚拟节点对应的机器群组的性能参数,均衡配置在所述配置的collection圈上对应的待扩展机器,使每个虚拟节点对应的机器群组的整体性能较均衡。因此,通过该实施例,使用虚拟节点是为了数据更均匀分布的优化。由于到每台机器的性能不同,以避免不能很好的实现负载均衡。
例如有两个虚拟点,第一虚拟节点对应的两台机器,第二虚拟节点上没有对应的机器,当有一台待扩展机器的性能参数相当于所述第一虚拟节点对应的两台机器的性能参数之和,那么可以将所述待扩展机器配置给所述第二虚拟节点。
在优选实施例中,另外在以collection圈在所述集群中扩展所述待扩展机器时,所述新建单元103具体用于:
在新建索引时,需要输入索引的时间参数,在所述集群的collection圈中查找与输入的时间参数对应的collection圈,在查找到的collection圈上,将所述索引分别存于不同的虚拟节点下的机器中,并记录所述索引中每个文档的文件号对应的虚拟节点。
所述查询单元104具体用于:
在查询索引时,接收输入的索引,及接收与所述索引对应的时间及所述索引中每个文档对应的文件号;根据所述索引对应的时间,查询与所述索引对应的时间相匹配的collection圈;根据每个文档对应的文件号,查询与每个文档对应的文件号相匹配的虚拟节点;在所述匹配的collection圈上,确定与匹配的虚拟节点对应的机器;在确定的机器上,获取所述机器的分片中的文档,并将获取的文档提供给用户。
通过这种在集群中成倍扩展机器的方式,可以完全规避数据迁移,没有数据抖动。同时由于没有数据迁移,避免了网络带宽的占用,以及系统性能的损耗,节省了时间,更利于系统的升级更新。
本发明通过获取待扩展机器的数据,所述待扩展机器的数据包括以下一种或者多种:待扩展机器的数量、待扩展机器的性能参数、待扩展机器的分片数量;获取集群中的机器数量;当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,获取所述集群中当前分片的数据总量及所述当前分片的分片数量;根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将所述待扩展机器配置在所述集群中;当确定所述待扩展机器的数量是所述集群中的机器数量的倍数时,获取所述集群中每个时间段的存储数据量;根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,将所述待扩展机器配置在所述集群中。本发明能提升集群性能,减少数据迁移。同时能实现负载均衡。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明每个实施例所述方法的部分步骤。
如图6所示,所述电子设备4包括至少一个发送装置31、至少一个存储器32、至少一个处理器33、至少一个接收装置34以及至少一个通信总线。其中,所述通信总线用于实现这些组件之间的连接通信。
所述电子设备4是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述电子设备4还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
所述电子设备4可以是,但不限于任何一种可与用户通过键盘、触摸板或声控设备等方式进行人机交互的电子产品,例如,平板电脑、智能手机、个人数字助理(PersonalDigital Assistant,PDA)、智能式穿戴式设备、摄像设备、监控设备等终端。
所述电子设备4所处的网络包括,但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
其中,所述接收装置34和所述发送装置31可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他设备进行数据通信。
所述存储器32用于存储程序代码。所述存储器32可以是集成电路中没有实物形式的具有存储功能的电路,如RAM(Random-Access Memory,随机存取存储器)、FIFO(First InFirst Out,)等。或者,所述存储器32也可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)、智能媒体卡(smart media card)、安全数字卡(secure digitalcard)、快闪存储器卡(flash card)等储存设备等等。
所述处理器33可以包括一个或者多个微处理器、数字处理器。所述处理器33可调用存储器32中存储的程序代码以执行相关的功能。例如,图3中所述的各个单元是存储在所述存储器32中的程序代码,并由所述处理器33所执行,以实现一种集群扩展方法。所述处理器33又称中央处理器(CPU,Central Processing Unit),是一块超大规模的集成电路,是运算核心(Core)和控制核心(Control Unit)。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令当被包括一个或多个处理器的电子设备执行时,使电子设备执行如上文方法实施例所述的集群扩展方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明每个实施例中的各功能模块可以集成在一个处理单元中,也可以是每个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种集群扩展方法,其特征在于,所述方法包括:
获取待扩展机器的数据,所述待扩展机器的数据包括以下一种或者多种:待扩展机器的数量、待扩展机器的性能参数、待扩展机器的分片数量;
获取集群中的机器数量;
当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,获取所述集群中当前分片的数据总量及所述当前分片的分片数量;
根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将所述当前分片中每个分片的部分数据量迁移到所述待扩展器中;
当确定所述待扩展机器的数量是所述集群中的机器数量的倍数时,根据所述待扩展机器的性能参数,将所述待扩展机器配置在所述集群中。
2.如权利要求1所述的集群扩展方法,其特征在于,所述根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将当前分片中每个分片的部分数据量迁移到所述待扩展器中包括:
根据所述当前分片中的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,确定所述当前分片中每个分片的待迁移数据量;
根据所述当前分片中每个分片的待迁移数据量,确定所述当前分片中每个分片的待迁移数据块;
根据所述当前分片中每个分片的待迁移数据块,获取所述当前分片中每个分片的待迁移数据块的地址区间;
根据所述当前分片中每个分片的待迁移数据块,及所述当前分片中每个分片的待迁移数据块的地址区间,配置所述待扩展机器的分片中每个分片。
3.如权利要求2所述的集群扩展方法,其特征在于,所述根据所述当前分片中每个分片的待迁移数据块,及所述当前分片中每个分片的待迁移数据块的地址区间,配置所述待扩展机器的分片中每个分片包括:
根据所述待扩展机器的分片数量,将所述当前分片中每个分片的待迁移数据块均匀分割成至少一个子数据块;
将所述当前分片中每个分片的至少一个子数据块均匀配置给所述待扩展机器的分片中每个分片,所述待扩展机器的分片中每个分片由一个或者多个子数据块组成;
将所述待扩展机器的分片中每个分片的所述一个或者多个子数据块对应的地址区间,配置给所述待扩展机器的分片中每个分片的地址区间。
4.如权利要求1至3中任一项所述的集群扩展方法,其特征在于,所述方法还包括:当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,在所述集群的调度机制的调度下,以异步进行形式将所述待扩展机器配置在所述集群中。
5.如权利要求1所述的集群扩展方法,其特征在于,所述根据所述待扩展机器的性能参数,将所述待扩展机器配置在所述集群中包括:
以集合collection圈在所述集群中扩展所述待扩展机器,所述集群中的每个collection圈对应一个时间参数;
获取所述集群中每个时间段的存储数据量;
根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,配置所述待扩展机器的collection圈。
6.如权利要求5所述的集群扩展方法,其特征在于,所述根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,配置所述待扩展机器的collection圈包括以下一种或者多种的组合:
根据所述集群中每个时间段的存储数据量,确定存储数据量增长速度最快的时间段,将所述时间段对应的时间参数确定为所述配置的collection圈的时间参数;或
根据所述集群中每个时间段的存储数据量,确定存储数据量超过预设值的时间段,将所述时间段对应的时间参数确定为所述配置的collection圈的时间参数;或
根据所述待扩展机器的性能参数及所述集群中每个虚拟节点对应的机器群组,配置每个虚拟节点在所述配置的collection圈上对应的待扩展机器。
7.如权利要求5或6所述的集群扩展方法,其特征在于,所述方法还包括:
接收输入的索引,及接收与所述索引对应的时间及所述索引中每个文档对应的文件号;
根据所述索引对应的时间,查询与所述索引对应的时间相匹配的collection圈;
根据每个文档对应的文件号,查询与每个文档对应的文件号相匹配的虚拟节点;
在所述collection圈上,确定与匹配的虚拟节点对应的机器;
在确定的机器上,获取所述机器的分片中的文档,并将获取的文档提供给用户。
8.一种集群扩展装置,其特征在于,所述装置包括:
获取单元,用于获取待扩展机器的数据,所述待扩展机器的数据包括以下一种或者多种:待扩展机器的数量、待扩展机器的性能参数、待扩展机器的分片数量;
所述获取单元还用于获取集群中的机器数量;
所述获取单元还用于当确定所述待扩展机器的数量不是所述集群中的机器数量的倍数时,获取所述集群中当前分片的数据总量及所述当前分片的分片数量;
配置单元,用于根据所述集群中当前分片的数据总量、所述当前分片的分片数量及所述待扩展机器的分片数量,将所述当前分片中每个分片的部分数据量迁移到所述待扩展器中;
所述配置单元还用于当确定所述待扩展机器的数量是所述集群中的机器数量的倍数时,根据所述集群中每个时间段的存储数据量及所述待扩展机器的性能参数,将所述待扩展机器配置在所述集群中。
9.一种电子设备,其特征在于,所述电子设备包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现如权利要求1至7中任一项所述集群扩展方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现集群扩展方法,所述集群扩展方法包括权利要求1至7中任一项所述集群扩展方法。
CN201710764058.7A 2017-08-30 2017-08-30 集群扩展方法、装置、电子设备及存储介质 Active CN107544848B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201710764058.7A CN107544848B (zh) 2017-08-30 2017-08-30 集群扩展方法、装置、电子设备及存储介质
US16/627,762 US10896056B2 (en) 2017-08-30 2017-12-29 Cluster expansion method and apparatus, electronic device and storage medium
PCT/CN2017/119641 WO2019041701A1 (zh) 2017-08-30 2017-12-29 集群扩展方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710764058.7A CN107544848B (zh) 2017-08-30 2017-08-30 集群扩展方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN107544848A true CN107544848A (zh) 2018-01-05
CN107544848B CN107544848B (zh) 2019-10-25

Family

ID=60957885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710764058.7A Active CN107544848B (zh) 2017-08-30 2017-08-30 集群扩展方法、装置、电子设备及存储介质

Country Status (3)

Country Link
US (1) US10896056B2 (zh)
CN (1) CN107544848B (zh)
WO (1) WO2019041701A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897858A (zh) * 2018-06-29 2018-11-27 北京奇虎科技有限公司 分布式集群索引分片的评估方法及装置、电子设备
CN110222030A (zh) * 2019-05-13 2019-09-10 福建天泉教育科技有限公司 数据库动态扩容的方法、存储介质
CN114237520A (zh) * 2022-02-28 2022-03-25 广东睿江云计算股份有限公司 一种ceph集群数据均衡方法以及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721044B1 (en) * 2005-10-20 2010-05-18 American Megatrends, Inc. Expanding the storage capacity of a virtualized data storage system
CN102646062A (zh) * 2012-03-20 2012-08-22 广东电子工业研究院有限公司 一种云计算平台应用集群弹性扩容方法
CN103634375A (zh) * 2013-11-07 2014-03-12 华为技术有限公司 扩容集群节点的方法、装置及设备
CN105095417A (zh) * 2015-07-13 2015-11-25 小米科技有限责任公司 存储业务数据的方法、装置及数据库节点
CN106407308A (zh) * 2016-08-31 2017-02-15 天津南大通用数据技术股份有限公司 一种分布式数据库的扩容方法及装置
CN106648897A (zh) * 2016-12-28 2017-05-10 厦门市美亚柏科信息股份有限公司 一种支持均衡资源的solr集群扩展方法及系统
CN106682199A (zh) * 2016-12-29 2017-05-17 北京奇虎科技有限公司 一种实现Mongos集群自动化扩容的方法和装置
CN106843745A (zh) * 2015-12-03 2017-06-13 南京中兴新软件有限责任公司 容量扩展方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101540631B1 (ko) * 2012-12-28 2015-07-30 삼성에스디에스 주식회사 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체
US20150229715A1 (en) * 2014-02-13 2015-08-13 Linkedin Corporation Cluster management
CN106354585B (zh) * 2016-08-31 2019-04-30 天津南大通用数据技术股份有限公司 数据库集群多数据分片备份的部署方法及装置
CN106354828A (zh) * 2016-08-31 2017-01-25 天津南大通用数据技术股份有限公司 一种分布式数据库数据的分片方法及装置
CN106844510B (zh) * 2016-12-28 2021-01-15 北京五八信息技术有限公司 一种分布式数据库集群的数据迁移方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721044B1 (en) * 2005-10-20 2010-05-18 American Megatrends, Inc. Expanding the storage capacity of a virtualized data storage system
CN102646062A (zh) * 2012-03-20 2012-08-22 广东电子工业研究院有限公司 一种云计算平台应用集群弹性扩容方法
CN103634375A (zh) * 2013-11-07 2014-03-12 华为技术有限公司 扩容集群节点的方法、装置及设备
CN105095417A (zh) * 2015-07-13 2015-11-25 小米科技有限责任公司 存储业务数据的方法、装置及数据库节点
CN106843745A (zh) * 2015-12-03 2017-06-13 南京中兴新软件有限责任公司 容量扩展方法及装置
CN106407308A (zh) * 2016-08-31 2017-02-15 天津南大通用数据技术股份有限公司 一种分布式数据库的扩容方法及装置
CN106648897A (zh) * 2016-12-28 2017-05-10 厦门市美亚柏科信息股份有限公司 一种支持均衡资源的solr集群扩展方法及系统
CN106682199A (zh) * 2016-12-29 2017-05-17 北京奇虎科技有限公司 一种实现Mongos集群自动化扩容的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHENG-SHIAN LIN 等: ""An Efficiency Enhanced Cluster Expanding Block Algorithm for Copy-Move Forgery Detection"", 《2015 INTERNATIONAL CONFERENCE ON INTELLIGENT NETWORKING AND COLLABORATIVE SYSTEMS》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897858A (zh) * 2018-06-29 2018-11-27 北京奇虎科技有限公司 分布式集群索引分片的评估方法及装置、电子设备
CN110222030A (zh) * 2019-05-13 2019-09-10 福建天泉教育科技有限公司 数据库动态扩容的方法、存储介质
CN114237520A (zh) * 2022-02-28 2022-03-25 广东睿江云计算股份有限公司 一种ceph集群数据均衡方法以及系统
CN114237520B (zh) * 2022-02-28 2022-07-08 广东睿江云计算股份有限公司 一种ceph集群数据均衡方法以及系统

Also Published As

Publication number Publication date
US10896056B2 (en) 2021-01-19
WO2019041701A1 (zh) 2019-03-07
US20200379796A1 (en) 2020-12-03
CN107544848B (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
US11005815B2 (en) Priority allocation for distributed service rules
US10135727B2 (en) Address grouping for distributed service rules
CN104272244B (zh) 用于对处理进行调度以实现空间节省的系统、方法
CN104679778B (zh) 一种搜索结果的生成方法及装置
CN111913955A (zh) 数据的排序处理装置、方法和存储介质
CN107544848A (zh) 集群扩展方法、装置、电子设备及存储介质
CN106406987A (zh) 一种集群中的任务执行方法及装置
US10078697B2 (en) Computer-implemented method of and system for searching an inverted index having a plurality of posting lists
CN105989076A (zh) 一种数据统计方法以及装置
CN106095531B (zh) 云平台中一种基于等级和物理机负载的虚拟机调度方法
EP3002687A1 (en) Method and device for recreating index online
CN106126731A (zh) 一种获取Elasticsearch分页数据的方法及装置
CN106570097A (zh) 序列生成方法及装置
CN106844397A (zh) 基于分库分表的任务传输方法、装置及系统
CN103995863B (zh) 一种重复数据删除的方法及装置
CN110020046A (zh) 一种数据抓取方法及装置
CN107506233A (zh) 一种虚拟资源调度方法、装置及服务器
CN107085615A (zh) 文本消重系统、方法、服务器及计算机存储介质
CN104158902A (zh) 一种基于请求数的Hbase数据块分配方法及装置
CN108139938A (zh) 用于利用次级线程以辅助主线程执行应用程序任务的装置、方法及计算机程序
CN106570060A (zh) 一种信息流中数据的随机抽取方法及装置
CN103440113A (zh) 一种磁盘io资源分配方法和装置
JP5388134B2 (ja) 計算機システム、及び、移動データ決定方法
CN103442000B (zh) Web缓存置换方法及装置、http代理服务器
CN109086002A (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