CN108932104B - 一种数据处理方法、装置及处理服务器 - Google Patents
一种数据处理方法、装置及处理服务器 Download PDFInfo
- Publication number
- CN108932104B CN108932104B CN201710378791.5A CN201710378791A CN108932104B CN 108932104 B CN108932104 B CN 108932104B CN 201710378791 A CN201710378791 A CN 201710378791A CN 108932104 B CN108932104 B CN 108932104B
- Authority
- CN
- China
- Prior art keywords
- data
- fragment
- data fragment
- target
- volume
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (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)技术,具体将数据进行分片(即将数据细分),得到多个数据分片,将该多个数据分片分散存储;例如,需要在分布式存储***中存储10000条数据,则可将该10000条数据进行分片,每100条数据作为一个数据分片,得到100个数据分片,通过将该100个数据分片分散存储在多台存储服务器上,实现分布式存储***对该10000条数据的存储。
然而本发明的发明人发现,在分布式存储***利用分片技术,实现数据存储的过程中存在如下问题:当分布式存储***的某一存储服务器存在数据分片大量写入时,将造成该存储服务器的数据分片写满,无法在后续继续写入数据分片,导致该存储服务器在后续无法继续使用,存储服务器的可用性降低,同时增加了分布式存储***的维护负担;因此如何提高分布式存储***中存储服务器的可用性,为减小分布式存储***的维护负担提供可能,成为了本领域技术人员需要考虑的问题。
发明内容
有鉴于此,本发明实施例提供一种数据处理方法、装置及处理服务器,以提高分布式存储***中存储服务器的可用性,为减小分布式存储***的维护负担提供可能。
为实现上述目的,本发明实施例提供如下技术方案:
一种数据处理方法,包括:
检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同;
根据各数据分片集合的数据量,从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合;其中,第一数据分片集合的数据量大于第二数据分片集合,且第一数据分片集合与第二数据分片集合对应的存储服务器不同;
确定第一数据分片集合中待搬迁的目标数据分片,所述目标数据分片的数据量小于所述第一数据分片集合的数据量;
将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合;其中,搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量。
本发明实施例还提供一种数据处理装置,包括:
数据量检测模块,用于检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同;
分片集合确定模块,用于根据各数据分片集合的数据量,从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合;其中,第一数据分片集合的数据量大于第二数据分片集合,且第一数据分片集合与第二数据分片集合对应的存储服务器不同;
目标分片确定模块,用于确定第一数据分片集合中待搬迁的目标数据分片,所述目标数据分片的数据量小于所述第一数据分片集合的数据量;
数据搬迁模块,用于将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合;其中,搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量。
本发明实施例还提供一种处理服务器,包括:至少一个存储器和至少一个处理器;
所述存储器存储有程序,所述处理器调用所述存储器所存储的程序;
所述程序用于:
检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同;
根据各数据分片集合的数据量,从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合;其中,第一数据分片集合的数据量大于第二数据分片集合,且第一数据分片集合与第二数据分片集合对应的存储服务器不同;
确定第一数据分片集合中待搬迁的目标数据分片,所述目标数据分片的数据量小于所述第一数据分片集合的数据量;
将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合;其中,搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量。
基于上述技术方案,本发明实施例提供的数据处理方法,可通过数据分片集合的形式存储数据分片,且一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,不同存储服务器对应的数据分片集合不同;从而通过检测各数据分片集合的数据量,可以从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合,第一数据分片集合的数据量大于第二数据分片集合,且第一数据分片集合与第二数据分片集合对应的存储服务器不同;进而从第一数据分片集合中确定待搬迁的目标数据分片,将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合,使得不同存储服务器中数据量大的数据分片集合的部分数据分片,可搬迁到数据量小的数据分片集合中,并且搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量;从而提升了分布式存储***中不同存储服务器间的数据分片的存储均衡概率,减小了出现数据分片写满的存储服务器出现的可能性,提升了分布式存储***中存储服务器的可用性,为减小分布式存储***的维护负担提供可能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为分布式存储***的结构框图;
图2为分布式存储***的另一结构框图;
图3为处理服务器的硬件结构框图;
图4为本发明实施例提供的数据处理方法的流程图;
图5为数据分片集合与存储服务器的关系示意图;
图6为数据分片集合与存储服务器的另一关系示意图;
图7为将目标数据分片搬迁到第二数据分片集合的方法流程图;
图8为本发明实施例提供的数据处理方法的另一流程图;
图9为本发明实施例提供的数据处理方法的再一流程图;
图10为第二数据分片集合的选择示意图;
图11为第二数据分片集合的另一选择示意图;
图12为本发明实施例提供的数据处理方法的又一流程图;
图13为本发明实施例提供的一应用示例的示意图;
图14为本发明实施例提供的分布式存储***的数据访问的方法流程图;
图15为本发明实施例提供的数据处理装置的结构框图;
图16为本发明实施例提供的数据处理装置的另一结构框图;
图17为本发明实施例提供的数据处理装置的再一结构框图。
具体实施方式
本发明的发明人发现,导致分布式存储***的某一存储服务器存在数据分片写满的原因之一是,数据分片在分布式存储***中存储不均;即分布式存储***中不同存储服务器所存储的数据分片的容量不均衡,有的存储服务器存储的数据分片达到容量限制,而有的存储服务器存储的数据分片容量较小;因此,本发明的发明人考虑通过提升数据分片在分布式存储***中的存储均衡概率,来提升分布式存储***中存储服务器的可用性,降低分布式存储***中存在数据分片写满的存储服务器的可能性,以为减小分布式存储***的维护负担提供可能。
基于此,下面将从如何提升数据分片在分布式存储***中的存储均衡概率的角度,对本发明实施例提供的方案进行介绍。以下将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的数据处理方法,能够提升数据分片在分布式存储***中的存储均衡概率,该数据处理方法可应用于处理服务器;
可选的,该处理服务器可以是分布式存储***中总控存储服务器的服务器,如图1所示分布式存储***的一种可选结构,处理服务器可以是分布式存储***的总控节点,能够支持多个存储服务器的集群;
可选的,该处理服务器也可以是分布式存储***的多个存储服务器中的主存储服务器,该主存储服务器可与其他存储服务器进行交互,如图2所示分布式存储***的一种可选结构,处理服务器可以是主存储服务器,并与分布式存储***中的其他存储服务器能够相交互;
可选的,该处理服务器也可以是分布式存储***中专门设置的,用于实现本发明实施例提供的数据处理方法的服务设备,通过约定使得处理服务器能与分布式存储***中的存储服务器进行交互;
显然,上述描述的实施本发明实施例提供的数据处理方法的处理服务器的形式是可选的,处理服务器的具体形式可以根据实际需要设置,一般设置处理服务器为分布式存储***中的一个部分,并能与分布式存储***中的存储服务器进行交互;
进一步,该处理服务器还可以具有数据访问(如数据在分布式存储***的读、写)的代理能力。
处理服务器可以装载相应的程序,实现本发明实施例提供的数据处理方法,该程序可以由处理服务器的存储器存储,并由处理服务器的处理器调用实施。图3示出了处理服务器的可选硬件结构,参照图3,该处理服务器可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本发明实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;显然,图3所示的处理器1、通信接口2、存储器3和通信总线4的通信连接示意仅是可选的;
可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,存储器3存储有程序,处理器1调用存储器3所存储的程序实现本发明实施例提供的数据处理方法。
以处理服务器的角度,图4示出了本发明实施例提供的数据处理方法的流程图,该方法可应用于处理服务器,由处理服务器调用相应程序实施,参照图4,该数据处理方法可以包括:
步骤S100、检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同。
可选的,数据分片集合为本发明实施例定义的多个数据分片的集合,一个数据分片集合对应有多个数据分片;分布式存储***中的一存储服务器对应至少一个数据分片集合,且不同存储服务器所对应的数据分片集合不同;在本发明实施例中,数据分片集合可以定义为set;
可选的,存储服务器与数据分片集合对应的一种方式可以是分布式存储***中的一存储服务器对应一个数据分片集合(如将一存储服务器的磁盘等存储空间,作为一个数据分片集合的存储空间),不同的存储服务器所对应的数据分片集合不同;如图5所示,一存储服务器对应一数据分片集合,不同的数据分片集合存储有对应的数据分片;
可选的,另一种方式可以是将一存储服务器的硬盘等存储空间,划分成多个存储区域,一存储服务器的一个存储区域对应一个数据分片集合,且不同的存储服务器所对应的数据分片集合不同;如图6所示,可分别将各存储服务器的存储空间划分成多个存储区域,一存储服务器的一个存储区域对应一个数据分片集合,使得一个存储服务器可以对应多个数据分片集合,不同的数据分片集合存储有对应的数据分片;
可选的,本发明实施例也不排除一存储服务器对应一个数据分片集合,结合使用,一存储服务器对应多个数据分片集合的情况;如分布式存储***中可以存在一存储服务器对应一个数据分片集合,和一个存储服务器对应多个数据分片集合的情况;
相应的,数据通过分片技术在分布式存储***中进行存储时,数据分片被分配到存储服务器后,可在存储服务器对应的数据分片集合中进行存储;可选的,在存储服务器对应多个数据分片集合的情况下,分配到存储服务器中进行存储的数据分片,可随机存储在所分配的存储服务器对应的多个数据分片集合中,数据分片也可以是选择所分配的存储服务器中数据量最小的数据分片集合进行存储;
可选的,一数据分片集合对应的数据分片数量为可变的,如随着数据存储的增多,存储服务器存储的数据分片数量也将增多,相应的,该存储服务器相应的数据分片集合所对应的数据分片数量,也将随着数据分片存储的增多而增多。
在通过数据分片集合的方式存储数据分片后,本发明实施例可定时或实时检测各数据分片集合的数据量;可选的,一种方式可以是,定时查询各数据分片集合所对应的存储服务器的磁盘使用量,以一数据分片集合所对应的存储服务器的磁盘使用量,作为该数据分片集合的数据量;
例如,在一个存储服务器对应一个数据分片集合的情况下,本发明实施例可定时查询各存储服务器的磁盘使用量,确定出各数据分片集合的数据量;又如在一个存储服务器对应多个数据分片集合的情况下,本发明实施例可定时查询各数据分片集合所对应的存储服务器的存储区域的磁盘使用量,实现各数据分片集合的数据量的检测。
步骤S110、根据各数据分片集合的数据量,从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合;其中,第一数据分片集合的数据量大于第二数据分片集合,且第一数据分片集合与第二数据分片集合对应的存储服务器不同。
本发明实施例提供的数据处理方法,提升数据分片在分布式存储***中的存储均衡概率的方式主要是,在通过数据分片集合的形式存储数据分片后,将数据量大的数据分片集合中的部分数据分片,搬迁到数据量小的数据分片集合中,且需搬迁数据分片的数据分片集合对应的存储服务器,与搬迁入数据分片的数据分片集合对应的存储服务器不同,使得各存储服务器的数据分片集合的数据量趋于均衡;
在此思路下,本发明实施例所指的第一数据分片集合可以是需搬迁数据分片的数据分片集合,第一数据分片集合的数量可以是至少一个;本发明实施例所指的第二数据分片集合可以是搬迁入数据分片的数据分片集合,第二数据分片集合的数量可以是至少一个;且第一数据分片集合与第二数据分片集合对应的存储服务器不同,避免同一存储服务器中的数据分片集合相互搬迁数据分片的情况,即搬迁数据分片应建立在跨存储服务器的情况下。
可选的,本发明实施例可设置数据量阈值,第一数据分片集合可以是从数据量大于数据量阈值的数据分片集合中确定的,第二数据分片集合是从数据量小于数量阈值的数据分片集合中确定的;可选的,数据量阈值可以是预先设置的数值,具体可根据实际情况调整;
可选的,较为简单的一种方式可以是,本发明实施例可将数据量大于数据量阈值的数据分片集合中,数据量最大的数据分片集合确定为第一数据分片集合;可以将数据量小于数据量阈值的数据分片集合中,数据量最小的数据分片集合确定为第二数据分片集合;从而实现将数据量最大的数据分片集合的部分数据分片,搬迁至数据量最小的数据分片集合,提升数据分片在分布式存储***中的存储均衡概率;
显然,本发明实施例只要使得第一数据分片集合的数据量大于第二数据分片集合,将第一数据分片集合的部分数据分片,搬迁至第二数据分片集合中,也可提升数据分片在分布式存储***中的存储均衡概率;而不一定通过数据量阈值的方式来界定第一数据分片集合和第二数据分片集合。
步骤S120、确定第一数据分片集合中待搬迁的目标数据分片,所述目标数据分片的数据量小于所述第一数据分片集合的数据量。
可选的,本发明实施例在确定第一数据分片集合和第二数据分片集合后,可确定第一数据分片集合中待搬迁的部分数据分片(本发明实施例称为目标数据分片);值得注意的是,本发明实施例并不是将第一数据分片集合中的所有数据分片进行搬迁,所搬迁的目标数据分片的数据量小于第一数据分片集合的数据量,即仅是搬迁第一数据分片集合中的部分数据分片。
可选的,在通过数据量阈值界定第一数据分片集合和第二数据分片集合的情况下,目标数据分片可以是根据第一数据分片集合的数据量与数据量阈值的数据量差值确定,根据该数据量差值,从第一数据分片集合中确定与该数据量差值相应的目标数据分片,使得第一数据分片集合在搬迁目标数据分片后,第一数据分片集合的数据量小于数据量阈值;
可选的,为使得第二数据分片集合搬迁入目标数据分片后,第二数据分片集合的数据量不超过数据量阈值,本发明实施例在确定第二数据分片集合时,可以从数据量小于数据量阈值的数据分片集合中,确定数据量与数据量阈值的差值不小于目标数据分片的数据量的数据分片集合,从而作为第二数据分片集合使用;
可选的,根据第一数据分片集合的数据量与数据量阈值的数据量差值,确定目标数据分片仅是一种可选方式,如果本发明实施例基于只要使得第一数据分片集合的数据量大于第二数据分片集合的原则,确定第一数据分片集合和第二数据分片集合,则本发明实施例也可根据第一数据分片集合与第二数据分片集合的数据量的差值,从第一数据分片集合中确定目标数据分片,使得第二数据分片集合搬迁入所述目标数据分片后,第二数据分片集合的数据量不大于,未搬迁目标数据分片时第一数据分片集合的数据量;如目标数据分片的数据量为,不大于,第一数据分片集合与第二数据分片集合的数据量的差值的一半。
步骤S130、将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合。
可选的,搬迁入目标数据分片的第二数据分片集合的数据量,应不大于,未搬迁目标数据分片时第一数据分片集合的数据量(如搬迁入目标数据分片的第二数据分片集合的数据量,不大于,数据量阈值),以避免第二数据分片集合搬迁入目标数据分片后,第二数据分片集合的数据量过大。实现这一目的的方式可以如基于第一数据分片集合的数据量与数据量阈值的差值,和第二数据分片集合的数据量与数据量阈值的差值,确定需搬迁的目标数据分片的数据量;或者,使得目标数据分片的数据量,不大于,第一数据分片集合与第二数据分片集合的数据量的差值的一半等。
可选的,数据分片的搬迁方式可以是采用数据拷贝的方式,将数据分片由旧数据分片集合拷贝到新数据分片集合,然后更新数据分片与数据分片集合的对应关系,删除旧数据分片集合中的数据分片来实现;如本发明实施例可将目标数据分片由第一数据分片集合拷贝到第二数据分片集合,更新目标数据分片对应的数据分片集合为第二数据分片集合,并删除第一数据分片集合中的目标数据分片;
需要说明的是,此处更新目标数据分片对应的数据分片集合为第二数据分片集合,是为了使得目标数据分片搬迁到第二数据分片集合后,针对目标数据分片的访问能够被寻址到第二数据分片集合中,实现对于第二数据分片集合中目标数据分片的访问;
可选的,对于各个数据分片集合中对应的数据分片,本发明实施例可记录数据分片与数据分片集合的对应关系;如为各数据分片设置数据分片编号,为各数据分片集合设置数据分片集合编号,从而通过数据分片编号与数据分片集合编号的对应关系,实现数据分片与数据分片集合的对应关系的记录;可选的,数据分片与数据分片集合的对应关系可以由路由表进行维护;相应的,由于数据分片集合与存储服务器存在对应,因此通过数据分片集合编号也可表示各数据分片集合所对应的存储服务器;
从而在更新目标数据分片对应的数据分片集合为第二数据分片集合时,本发明实施例可在路由表中,将目标数据分片的数据分片编号对应的数据分片集合编号,更新为第二数据分片集合的数据分片集合编号。
可选的,图4描述的是针对所确定的一个第一数据分片集合的处理情况,如果确定的第一数据分片集合的数量为多个,则针对每一个第一数据分片集合进行确定第二数据分片集合,和步骤S120至步骤S130的处理,则可实现每一个第一数据分片集合中待搬迁的目标数据分片的搬迁。
本发明实施例提供的数据处理方法,可通过数据分片集合的形式存储数据分片,且一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,不同存储服务器对应的数据分片集合不同;从而通过检测各数据分片集合的数据量,可以从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合,第一数据分片集合的数据量大于第二数据分片集合,且第一数据分片集合与第二数据分片集合对应的存储服务器不同;进而从第一数据分片集合中确定待搬迁的目标数据分片,将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合,使得不同存储服务器中数据量大的数据分片集合的部分数据分片,可搬迁到数据量小的数据分片集合中,并且搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量;从而提升了分布式存储***中不同存储服务器间的数据分片的存储均衡概率,减小了出现数据分片写满的存储服务器出现的可能性,提升了分布式存储***中存储服务器的可用性,为减小分布式存储***的维护负担提供可能。
可选的,在通过数据拷贝的方式将目标数据分片搬迁至第二数据分片集合的过程中,本发明实施例可以在第二数据分片集合中导入目标数据分片的快照,以及在所导入的目标数据分片上回放流水日志的形式实现;
可选的,图7示出了将目标数据分片搬迁到第二数据分片集合的方法流程图,参照图7,该方法可以包括:
步骤S200、获取目标数据分片在第一数据分片集合的快照。
可选的,在本发明实施例中,快照可以认为是数据库在快照获取时刻的只读静态视图;本发明实施例可通过数据库快照技术,获取目标数据分片当前在第一数据分片集合的快照。
步骤S210、确定获取所述快照的时间戳之后的流水日志。
步骤S220、将所述快照导入第二数据分片集合,使得第二数据分片集合具有目标数据分片,并将所述流水日志在所述第二数据分片集合的目标数据分片上进行回放。
将目标数据分片的快照导入第二数据分片集合后,第二数据分片集合中将产生新的属于目标数据分片的分片空间,使得第二数据分片集合具有目标数据分片,从而在第二数据分片集合中属于目标数据分片的新分片空间上,进行所述流水日志的回放,可以实现目标数据分片由第一数据分片集合拷贝到第二数据分片集合。
可选的,进一步,图7所示方法还可以在将目标数据分片由第一数据分片集合,搬迁到第二数据分片集合后,在数据分片与数据分片集合的对应关系中,将目标数据分片对应的数据分片集合,由第一数据分片集合更新为第二数据分片集合,从而调整目标数据分片所归属的数据分片集合,使得针对目标数据分片的访问能够寻址到第二数据分片集合;在将目标数据分片对应的数据分片集合,更新为第二数据分片集合后,本发明实施例可以删除第一数据分片集合中的目标数据分片,完成目标数据分片由第一数据分片集合至第二数据分片集合的搬迁。
可选的,本发明实施例可以通过预先设置的数据量阈值,从各数据分片集合中确定第一数据分片集合和第二数据分片集合,实现需搬迁数据分片的第一数据分片集合,和搬迁入数据分片的第二数据分片集合的确定;
可选的,图8示出了本发明实施例提供的数据处理方法的另一流程图,该方法可应用于处理服务器,参照图8,该方法可以包括:
步骤S300、检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同。
步骤S310、从数据量大于数据量阈值的数据分片集合中确定第一数据分片集合,及从数据量小于数据量阈值的数据分片集合中确定第二数据分片集合,第一数据分片集合与第二数据分片集合对应的存储服务器不同。
可选的,本发明实施例可在确定各数据分片集合的数据量后,分析出数据量大于数据量阈值的数据分片集合,并从中确定待搬迁数据分片的第一数据分片集合;可选的,本发明实施例可将数据量大于数据量阈值的数据分片集合中,数据量最大的数据分片集合,作为第一数据分片集合;
也可能是将数据量大于数据量阈值的数据分片集合,分别作为第一数据分片集合,相应的,第一数据分片集合的数量可以为至少一个;
还可能是,将数据量大于数据量阈值的数据分片集合中,数据量最大的设定数量的多个数据分片集合,分别作为第一数据分片集合;如本发明实施例可将数据量大于数据量阈值的数据分片集合,按照数据量大小进行排序,且排序中数据量最大的前设定数量的数据分片集合,作为第一数据分片集合。
在确定第二数据分片集合时,本发明实施例可从数据量小于数据量阈值的数据分片集合中进行确定;即数据分片集合的数据量是否大于数据量阈值,可以认为是第一数据分片集合和第二数据分片集合的界限;
可选的,本发明实施例可将数据量小于数据量阈值的数据分片集合中,数据量最小的数据分片集合作为第二数据分片集合;
可选的,为实现更为合理的数据搬迁,在确定第一数据分片集合后,针对每一第一数据分片集合(第一数据分片集合的数量可能是至少一个),本发明实施例可根据第一数据分片集合的数据量与数据量阈值的数据量差值(当然实际进行数据分片搬迁时,第一数据分片集合所搬迁的数据分片的数据量可以不小于该数据量差值),确定第一数据分片集合中需搬迁的数据分片的数据量,该需搬迁的数据分片的数据量不小于所述数据量差值;从而从数据量小于数据量阈值的数据分片集合中,确定增加所述需搬迁的数据分片的数据量后,数据量仍小于数据量阈值的数据分片集合,作为第二数据分片集合;即使得第二数据分片集合在搬迁入第一数据分片集合的部分数据分片后,第二数据分片集合的数据量仍小于数据量阈值。
步骤S320、确定第一数据分片集合中待搬迁的目标数据分片,所述目标数据分片的数据量小于所述第一数据分片集合的数据量。
步骤S330、将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合。
优选的,本发明实施例可根据第一数据分片集合的数据量与数据量阈值的数据量差值,从数据量小于数据量阈值的数据分片集合中,确定第二数据分片集合;
图9示出了本发明实施例提供的数据处理方法的再一流程图,该方法可应用于处理服务器,参照图9,该方法可以包括:
步骤S400、检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同。
步骤S410、从数据量大于数据量阈值的数据分片集合中确定第一数据分片集合。
可选的,第一数据分片集合的确定方式可以是将数据量大于数据量阈值的数据分片集合中,数据量最大的数据分片集合作为第一数据分片集合;也可能是将数据量大于数据量阈值的数据分片集合,分别作为第一数据分片集合;还可能是将数据量大于数据量阈值的数据分片集合中,数据量最大的设定数量的多个数据分片集合,分别作为第一数据分片集合。
步骤S420、确定第一数据分片集合的数据量与数据量阈值的数据量差值,根据所述数据量差值确定目标数据量;其中,所述目标数据量不小于所述数据量差值。
可选的,所确定的第一数据分片集合的数量可以为至少一个,针对每一个第一数据分片集合,其选择第二数据分片集合和进行数据搬迁的方式可以类似,可相互参照;
在确定第一数据分片集合后,对于每一第一数据分片集合,本发明实施例可根据第一数据分片集合的数据量与数据量阈值的数据量差值,确定该第一数据分片集合中需搬迁的目标数据分片的目标数据量(需搬迁的目标数据分片的数据量可称为目标数据量),且使得该第一数据分片集合中目标数据分片的目标数据量,不小于所述数据量差值;如本发明实施例可确定第一数据分片集合中数据量不小于所述数据量差值,且数据量与所述数据量差值最接近的至少一个数据分片,将该至少一个数据分片的数据量作为目标数据量,相应的,该至少一个数据分片可作为目标数据分片使用。
步骤S430、从数据量小于数据量阈值的数据分片集合中,确定数据量与所述数据量阈值的差值,不小于,所述目标数据量的数据分片集合。
步骤S440、从所确定的数据分片集合中选择第二数据分片集合。
可选的,本发明实施例可从数据量小于数据量阈值的数据分片集合中,确定各数据分片集合的数据量与数据量阈值的差值,从而选取差值不小于所述目标数据量的数据分片集合;可选的,一第一数据分片集合所相应确定的数据分片集合可能有多个(如对于一个第一数据分片集合,数据量小于数据量阈值的数据分片集合中,存在多个数据分片集合的数据量与数据量阈值的差值不小于该第一数据分片集合需搬迁的目标数据分片的数据量),本发明实施例可从中选取数据量最小的数据分片集合,作为第二数据分片集合,或者,从中随机选取数据分片集合,作为第二数据分片集合。
例如,如图10所示,在确定数据量大于数据量阈值的第一数据分片集合A后,第一数据分片集合A的数据量与数据量阈值的差值为X,则需从第一数据分片集合A中确定目标数据量不小于X数据量的目标数据分片,本发明实施例可从数据量小于数据量阈值数据分片集合中,确定数据量与数据量阈值的差值大于或等于目标数据量的数据分片集合,从而确定出备选为第二数据分片集合的B、C;进而从B、C数据分片集合中选择第二数据分片集合(如选择数据量最小的,也可以是随机选择)。
步骤S450、确定第一数据分片集合中待搬迁的目标数据分片,所述目标数据分片的数据量小于所述第一数据分片集合的数据量。
可选的,目标数据分片的数据量可以为目标数据量,本发明实施例可从所述第一数据分片集合中确定所述目标数据量相应的数据分片,作为所述目标数据分片;例如可确定第一数据分片集合中数据量不小于所述数据量差值,且数据量与所述数据量差值最接近的至少一个数据分片,将该至少一个数据分片作为目标数据分片使用;
通过如此处理,可使得搬迁入目标数据分片的第二数据分片集合的数据量,不大于,数据量阈值(搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量的一种可选形式)。
可选的,在另一实施方式下,本发明实施例也可使得目标数据分片的数据量,不大于,第一数据分片集合与第二数据分片集合的数据量的差值的一半,从而使得搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量;在使用此手段时,本发明实施例不限于通过图9所示方式确定第二数据分片集合,而是可选用诸如将数据量最小的数据分片集合作为第二数据分片集合等手段。
步骤S460、将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合。
可选的,图9描述的是针对所确定的一个第一数据分片集合的处理情况,如果确定的第一数据分片集合的数量为多个,则针对每一个第一数据分片集合进行步骤S420至步骤S460的处理,则可实现每一个第一数据分片集合中待搬迁的目标数据分片的搬迁。
本发明实施例提供的数据处理方法,可根据第一数据分片集合的数据量与数据量阈值的数据量差值,确定目标数据分片的目标数据量;进而从数据量小于数据量阈值的数据分片集合中,确定数据量与所述数据量阈值的差值,不小于,所述目标数据量的数据分片集合,实现第二数据分片集合的确定;由于第二数据分片集合是根据第一数据分片集合中需搬迁的目标数据分片的数据量所确定的,可使得所确定的第二数据分片集合能够精准的满足目标数据分片的搬迁需求,使得数据分片在分布式存储***中能够精准的趋于存储均衡,极大提升数据分片在分布式存储***中的存储均衡概率。
可选的,本发明实施例也可能出现,数据量小于数据量阈值的数据分片集合中,不存在能够满足第一数据分片集合的目标数据分片的搬迁需求的单一数据分片集合;如数据量小于数据量阈值的数据分片集合中,不存在数据量与数据量阈值的差值,不小于目标数据分片的目标数据量的单一数据分片集合,则针对此情况,本发明实施例可为第一数据分片集合设置多个第二数据分片集合,并通过将目标数据分片划分成多个子目标数据分片的形式,以通过在不同的第二数据分片集合中,搬迁子目标数据分片的形式,实现第一数据分片集合中目标数据分片的搬迁;
例如,如图11所示,在确定数据量大于数据量阈值的第一数据分片集合A后,第一数据分片集合A的数据量与数据量阈值的差值为X,则可从第一数据分片集合中确定目标数据分片,目标数据分片的目标数据量不小于X;而数据量小于数据量阈值数据分片集合中,不存在数据量与数据量阈值的差值大于或等于目标数据量的数据分片集合;此时本发明实施例可将目标数据分片集合划分为多个子目标数据分片A1、A2…,从数据量小于数据量阈值数据分片集合中,确定数据量与数据量阈值的差值大于或等于子目标数据分片的多个数据分片集合,作为第二数据分片集合使用;
可选的,图12示出了本发明实施例提供的数据处理方法的又一流程图,该方法可应用于处理服务器,参照图12,该方法可以包括:
步骤S500、检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同。
步骤S510、从数据量大于数据量阈值的数据分片集合中确定第一数据分片集合。
步骤S520、确定第一数据分片集合的数据量与数据量阈值的数据量差值,根据所述数据量差值确定目标数据分片的目标数据量;其中,所述目标数据量不小于所述数据量差值。
步骤S530、若数据量小于数据量阈值的数据分片集合中,不存在数据量与所述数据量阈值的差值,不小于所述目标数据量的单一数据分片集合,将所述目标数据分片划分成多个子目标数据分片;
步骤S540、从数据量小于数据量阈值数据分片集合中,确定数据量与数据量阈值的差值大于或等于子目标数据分片的多个第二数据分片集合。
步骤S550、将所述多个子目标数据分片由第一数据分片集合,搬迁到所述多个第二数据分片集合;其中,一个第二数据分片集合搬迁入至少一个子目标数据分片,且搬迁入子目标数据分片的第二数据分片集合的数据量不大于所述数据量阈值。
可选的,本发明实施例可从将所述目标数据分片划分成设定数的多个子目标数据分片,从而从数据量小于数据量阈值数据分片集合中,确定数据量与数据量阈值的差值不小于子目标数据分片的多个第二数据分片集合,在一个第二数据分片集合中搬迁至少一个子目标数据分片,并控制搬迁入子目标数据分片的第二数据分片集合的数据量不大于所述数据量阈值,可实现第一数据分片集合中的目标数据分片至多个第二数据分片集合的搬迁;
例如,在确定数据量大于数据量阈值的第一数据分片集合A后,第一数据分片集合A的数据量与数据量阈值的差值为X,则可从第一数据分片集合中确定目标数据分片,目标数据分片的目标数据量不小于X(目标数据分片可以是第一数据分片集合中,数据量不小于X且最接近X的至少一个数据分片);
若数据量小于数据量阈值的数据分片集合中,不存在数据量与所述数据量阈值的差值,不小于所述目标数据量的单一数据分片集合;则本发明实施例可将A中的目标数据分片划分为3个子目标数据分片(3为设定数的一种可选数值,具体数值可以根据实际情况调整;值得注意的是,如果上一次划分子目标数据分片后,数据量小于数据量阈值的数据分片集合仍然不能满足目标数据分片的搬迁需求,如子目标数据分片的数据量,大于,数据量小于数据量阈值的数据分片集合中数据量与数据量阈值的最大差值,则可增大将目标数据分片划分成子目标数据分片的设定数,直至数据量小于数据量阈值的数据分片集合满足目标数据分片的搬迁需求);
从而从数据量小于数据量阈值数据分片集合中,确定数据量与数据量阈值的差值不小于子目标数据分片的多个第一数据分片集合(多个第一数据分片集合的数量可以大于或等于设定数;当然,如果数据量小于数据量阈值数据分片集合中,存在数据量与数据量阈值的差值较大的数据分片集合,则也可能存在多个第一数据分片集合的数量小于设定数的情况,具体可视实际情况而定)。
可选的,一个第二数据分片集合搬迁入子目标数据分片的方式可以参照图7描述,方式是类似的。
本发明实施例的数据处理方法的应用示例可如图13所示,参照图13,shard(分片)1至3属于数据分片集合(set)1,对应存储服务器1,shard4至6属于set2,对应存储服务器2,以此类推;
在检测各set的数据量后,发现set1的数据量大于数据量阈值,可将set1作为第一数据分片集合,根据set1的数据量与数据量阈值的数据量差值,可从set1中选取出数据量不小于该数据量差值的目标数据分片shard2,即将shard2从set1中搬迁出后,可使得set1的数据量小于数据量阈值,降低set1的数据量;
根据shard2的数据量,可从数据量小于数据量阈值的set中,选取出能够满足shard2迁入,且迁入shard2后,数据量仍小于数据量阈值的seti(seti可能是数据量小于数据量阈值的set中,数据量最小的set;也可能是从数据量小于数据量阈值,且能满足shard2迁入的set中随机选取的);
从而将shard2从set1搬迁到seti,并更新shard2对应的set为seti,使得shard2转移存储到seti,减小set1的数据量,使得分布式存储***中各存储服务器的各set的数据分片存储量区域均衡,提升数据分片在分布式存储***中的存储均衡概率。
可选的,在实现数据分片在分布式存储***中的均衡存储后,本发明实施例可实现分布式存储***中的数据访问(如数据读写);图14示出了实现分布式存储***的数据访问的方法流程图,该方法可应用于处理服务器,可选的,该处理服务器可以具有访问代理功能;当然,该处理服务器也可以没有访问代理功能,而是通过与访问代理服务器交互实现数据访问处理;
参照图14,该方法可以包括:
步骤S600、获取访问请求,所述访问请求携带有需访问数据的关键字。
可选的,用户在访问业务数据时,可发送访问请求,并在访问请求中指示需访问的业务数据的key(关键字)。
步骤S610、对所述关键字进行哈希处理,并将处理得到的字符串进行取整,得到目标整数。
可选的,常用字符串哈希函数可以有BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash,PJWHash等;本发明实施例可使用字符串哈希函数对关键字进行哈希处理,并进行处理得到的字符串进行向下或向上取整;向下取整可以认为是取字符串的整数位;向上取整可以认为是,通过四舍五入方式对字符串的非整数位进行取整,然后与字符串的原整数位结合,或者,直接取字符串的整数位的上一位等。
步骤S620、使用所述目标整数对设定分片数进行取模处理,得到目标模值;所述目标模值为需访问数据所对应的数据分片的目标数据分片编号。
设定分片数可以是分布式存储***中事先设定的固定不变的分片数;本发明实施例可利用由关键字哈希处理并取整得到的目标整数,对设定分片数进行取模处理,从而得到目标模值;该目标模值可以认为是需访问数据所对应的数据分片的目标数据分片编号。
需要说明的是,由于设定分片数是固定的,例如10000,那么取模后的目标模值就会处于设定分片数的数值范围内,如10000的数值范围内,即具体的一条数据取整然后取模后,就寻址到固定的一个编号,即需访问数据所对应的数据分片的目标数据分片编号。
可选的,步骤S610至步骤S620可以认为是根据所述关键字确定需访问数据所对应的数据分片的数据分片编号的一种可选方式,本发明实施例并不排除其他的基于需访问数据的关键字,获取需访问数据所对应的数据分片的数据分片编号的方式。
步骤S630、根据数据分片编号与数据分片集合编号的对应关系,确定所述目标数据分片编号对应的数据分片集合编号。
数据分片编号与数据分片集合编号的对应关系,是数据分片所归属的数据分片集合的一种对应体现,该对应关系可以在数据分片由旧数据分片集合搬迁到新数据分片集合时进行更新。
步骤S640、从所述数据分片集合编号对应的数据分片集合中,获取需访问的数据所对应的数据分片。
在确定目标模值对应的数据分片集合编号后,可寻址到该数据分片集合编号对应的数据分片集合,从而从该数据分片集合中获取与目标模值的数据分片编号对应的数据分片,得到需访问的数据所对应的数据分片,实现对于分布式存储***中数据的访问。
本发明实施例提供的数据处理方法,可使得不同存储服务器中数据量大的数据分片集合的部分数据分片,可搬迁到数据量小的数据分片集合中,提升分布式存储***中不同存储服务器间的数据分片的存储均衡概率,减小出现数据分片写满的存储服务器出现的可能性,提升分布式存储***中存储服务器的可用性,为减小分布式存储***的维护负担提供可能;同时,可在搬迁数据分片时,调整数据分片所归属的数据分片集合,使得针对分布式存储***的数据访问,能够准确寻找到需访问数据所处于的数据分片集合,保障针对分布式存储***的正常数据访问。
下面对本发明实施例提供的数据处理装置进行介绍,下文描述的数据处理装置可以认为是,处理服务器为实现本发明实施例提供的数据处理方法所需设置的程序模块;下文描述的数据处理装置内容,可与上文描述的数据处理方法内容相互对应参照
图15为本发明实施例提供的数据处理装置的结构框图,该装置可应用于处理服务器,参照图15,该数据处理装置可以包括:
数据量检测模块100,用于检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同;
分片集合确定模块200,用于根据各数据分片集合的数据量,从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合;其中,第一数据分片集合的数据量大于第二数据分片集合,且第一数据分片集合与第二数据分片集合对应的存储服务器不同;
目标分片确定模块300,用于确定第一数据分片集合中待搬迁的目标数据分片,所述目标数据分片的数据量小于所述第一数据分片集合的数据量;
数据搬迁模块400,用于将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合;其中,搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量。
可选的,分片集合确定模块200,用于根据各数据分片集合的数据量,从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合,具体包括:
从数据量大于数据量阈值的数据分片集合中确定第一数据分片集合,及从数据量小于数据量阈值的数据分片集合中确定第二数据分片集合。
可选的,分片集合确定模块200,用于从数据量大于数据量阈值的数据分片集合中确定第一数据分片集合,具体包括:
将数据量大于数据量阈值的数据分片集合中,数据量最大的数据分片集合,作为第一数据分片集合;
或,将数据量大于数据量阈值的数据分片集合,分别作为第一数据分片集合;
或,将数据量大于数据量阈值的数据分片集合中,数据量最大的设定数量的多个数据分片集合,分别作为第一数据分片集合。
可选的,分片集合确定模块200,用于从数据量小于数据量阈值的数据分片集合中确定第二数据分片集合,具体包括:
确定第一数据分片集合的数据量与数据量阈值的数据量差值;
根据所述数据量差值确定目标数据量;其中,所述目标数据量不小于所述数据量差值;
从数据量小于数据量阈值的数据分片集合中,确定数据量与所述数据量阈值的差值,不小于,所述目标数据量的数据分片集合;
从所确定的数据分片集合中选择第二数据分片集合。
可选的,分片集合确定模块200,用于根据所述数据量差值确定目标数据量,具体包括:
确定第一数据分片集合中数据量不小于所述数据量差值,且数据量与所述数据量差值最接近的至少一个数据分片,将该至少一个数据分片的数据量作为目标数据量。
可选的,目标分片确定模块300,用于确定第一数据分片集合中待搬迁的目标数据分片,具体包括:
从所述第一数据分片集合中确定所述目标数据量相应的数据分片,作为所述目标数据分片。
可选的,分片集合确定模块200,用于从数据量小于数据量阈值的数据分片集合中确定第二数据分片集合,还可包括:
若数据量小于数据量阈值的数据分片集合中,不存在数据量与所述数据量阈值的差值,不小于所述目标数据量的单一数据分片集合,将所述目标数据分片划分成多个子目标数据分片;
从数据量小于数据量阈值数据分片集合中,确定数据量与数据量阈值的差值大于或等于子目标数据分片的多个第二数据分片集合;
相应的,数据搬迁模块400,用于将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合,具体包括:
在一个第二数据分片集合中搬迁至少一个子目标数据分片,并控制搬迁入子目标数据分片的第二数据分片集合的数据量不大于所述数据量阈值。
可选的,数据搬迁模块可通过快照形式实现目标数据分片的搬迁;可选的,数据搬迁模块400,用于将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合,具体包括:
获取目标数据分片在第一数据分片集合的快照;
确定获取所述快照的时间戳之后的流水日志;
将所述快照导入第二数据分片集合,使得第二数据分片集合具有目标数据分片,并将所述流水日志在所述第二数据分片集合的目标数据分片上进行回放。
可选的,图16示出了本发明实施例提供的数据处理装置的另一结构框图,结合图15和图16所示,该数据处理装置还可以包括:
关系更新模块500,用于在数据分片与数据分片集合的对应关系中,将目标数据分片对应的数据分片集合,由第一数据分片集合更新为第二数据分片集合。
可选的,所述数据分片与数据分片集合的对应关系可以包括:数据分片编号与数据分片集合编号的对应关系;
相应的,图17示出了本发明实施例提供的数据处理装置的再一结构框图,结合图16和图17所示,该数据处理装置还可以包括:
访问处理模块600,用于获取访问请求,所述访问请求携带有需访问数据的关键字;根据所述关键字确定需访问数据所对应的数据分片的目标数据分片编号;根据数据分片编号与数据分片集合编号的对应关系,确定所述目标数据分片编号对应的数据分片集合编号;从所述数据分片集合编号对应的数据分片集合中,获取需访问的数据所对应的数据分片。
可选的,访问处理模块600,用于根据所述关键字确定需访问数据所对应的数据分片的目标数据分片编号,具体包括:
对所述关键字进行哈希处理,并将处理得到的字符串进行取整,得到目标整数;
使用所述目标整数对设定分片数进行取模处理,得到目标模值;所述目标模值为需访问数据所对应的数据分片的目标数据分片编号。
上述描述的功能模块可以通过处理服务器装载的相应程序实现,处理服务器的硬件结构可以如图3所示,处理服务器可以至少包括:至少一个存储器和至少一个处理器;
所述存储器存储有程序,所述处理器调用所述存储器所存储的程序;
所述程序用于:
检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同;
根据各数据分片集合的数据量,从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合;其中,第一数据分片集合的数据量大于第二数据分片集合,且第一数据分片集合与第二数据分片集合对应的存储服务器不同;
确定第一数据分片集合中待搬迁的目标数据分片,所述目标数据分片的数据量小于所述第一数据分片集合的数据量;
将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合;其中,搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种数据处理方法,其特征在于,包括:
检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同;
根据各数据分片集合的数据量,从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合;其中,第一数据分片集合的数据量大于第二数据分片集合,且第一数据分片集合与第二数据分片集合对应的存储服务器不同;
确定第一数据分片集合中待搬迁的目标数据分片,所述目标数据分片的数据量小于所述第一数据分片集合的数据量;
将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合;其中,搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量;
其中,所述将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合包括:
获取目标数据分片在第一数据分片集合的快照;
确定获取所述快照的时间戳之后的流水日志;
将所述快照导入第二数据分片集合,使得第二数据分片集合具有目标数据分片,并将所述流水日志在所述第二数据分片集合的目标数据分片上进行回放。
2.根据权利要求1所述的数据处理方法,其特征在于,所述根据各数据分片集合的数据量,从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合包括:
从数据量大于数据量阈值的数据分片集合中确定第一数据分片集合,及从数据量小于数据量阈值的数据分片集合中确定第二数据分片集合。
3.根据权利要求2所述的数据处理方法,其特征在于,所述从数据量大于数据量阈值的数据分片集合中确定第一数据分片集合包括:
将数据量大于数据量阈值的数据分片集合中,数据量最大的数据分片集合,作为第一数据分片集合;
或,将数据量大于数据量阈值的数据分片集合,分别作为第一数据分片集合;
或,将数据量大于数据量阈值的数据分片集合中,数据量最大的设定数量的多个数据分片集合,分别作为第一数据分片集合。
4.根据权利要求2所述的数据处理方法,其特征在于,所述从数据量小于数据量阈值的数据分片集合中确定第二数据分片集合包括:
确定第一数据分片集合的数据量与数据量阈值的数据量差值;
根据所述数据量差值确定目标数据量;其中,所述目标数据量不小于所述数据量差值;
从数据量小于数据量阈值的数据分片集合中,确定数据量与所述数据量阈值的差值,不小于,所述目标数据量的数据分片集合;
从所确定的数据分片集合中选择第二数据分片集合。
5.根据权利要求4所述的数据处理方法,其特征在于,所述根据所述数据量差值确定目标数据量包括:
确定第一数据分片集合中数据量不小于所述数据量差值,且数据量与所述数据量差值最接近的至少一个数据分片,将该至少一个数据分片的数据量作为目标数据量。
6.根据权利要求4所述的数据处理方法,其特征在于,所述确定第一数据分片集合中待搬迁的目标数据分片包括:
从所述第一数据分片集合中确定所述目标数据量相应的数据分片,作为所述目标数据分片。
7.根据权利要求4所述的数据处理方法,其特征在于,所述从数据量小于数据量阈值的数据分片集合中确定第二数据分片集合还包括:
若数据量小于数据量阈值的数据分片集合中,不存在数据量与所述数据量阈值的差值,不小于所述目标数据量的单一数据分片集合,将所述目标数据分片划分成多个子目标数据分片;
从数据量小于数据量阈值数据分片集合中,确定数据量与数据量阈值的差值大于或等于子目标数据分片的多个第二数据分片集合。
8.根据权利要求7所述的数据处理方法,其特征在于,所述将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合包括:
在一个第二数据分片集合中搬迁至少一个子目标数据分片,并控制搬迁入子目标数据分片的第二数据分片集合的数据量不大于所述数据量阈值。
9.根据权利要求1-8任一项所述的数据处理方法,其特征在于,还包括:
在数据分片与数据分片集合的对应关系中,将目标数据分片对应的数据分片集合,由第一数据分片集合更新为第二数据分片集合。
10.根据权利要求9所述的数据处理方法,其特征在于,所述数据分片与数据分片集合的对应关系包括:数据分片编号与数据分片集合编号的对应关系;
所述方法还包括:
获取访问请求,所述访问请求携带有需访问数据的关键字;
根据所述关键字确定需访问数据所对应的数据分片的目标数据分片编号;
根据数据分片编号与数据分片集合编号的对应关系,确定所述目标数据分片编号对应的数据分片集合编号;
从所述数据分片集合编号对应的数据分片集合中,获取需访问的数据所对应的数据分片。
11.根据权利要求10所述的数据处理方法,其特征在于,所述根据所述关键字确定需访问数据所对应的数据分片的目标数据分片编号包括:
对所述关键字进行哈希处理,并将处理得到的字符串进行取整,得到目标整数;
使用所述目标整数对设定分片数进行取模处理,得到目标模值;所述目标模值为需访问数据所对应的数据分片的目标数据分片编号。
12.一种数据处理装置,其特征在于,包括:
数据量检测模块,用于检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同;
分片集合确定模块,用于根据各数据分片集合的数据量,从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合;其中,第一数据分片集合的数据量大于第二数据分片集合,且第一数据分片集合与第二数据分片集合对应的存储服务器不同;
目标分片确定模块,用于确定第一数据分片集合中待搬迁的目标数据分片,所述目标数据分片的数据量小于所述第一数据分片集合的数据量;
数据搬迁模块,用于将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合;其中,搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量;
其中,所述数据搬迁模块具体用于:
获取目标数据分片在第一数据分片集合的快照;
确定获取所述快照的时间戳之后的流水日志;
将所述快照导入第二数据分片集合,使得第二数据分片集合具有目标数据分片,并将所述流水日志在所述第二数据分片集合的目标数据分片上进行回放。
13.根据权利要求12所述的数据处理装置,其特征在于,还包括:
关系更新模块,用于在数据分片与数据分片集合的对应关系中,将目标数据分片对应的数据分片集合,由第一数据分片集合更新为第二数据分片集合;所述数据分片与数据分片集合的对应关系包括:数据分片编号与数据分片集合编号的对应关系;
访问处理模块,用于获取访问请求,所述访问请求携带有需访问数据的关键字;根据所述关键字确定需访问数据所对应的数据分片的目标数据分片编号;根据数据分片编号与数据分片集合编号的对应关系,确定所述目标数据分片编号对应的数据分片集合编号;从所述数据分片集合编号对应的数据分片集合中,获取需访问的数据所对应的数据分片。
14.一种处理服务器,其特征在于,包括:至少一个存储器和至少一个处理器;
所述存储器存储有程序,所述处理器调用所述存储器所存储的程序;
所述程序用于:
检测各数据分片集合的数据量;其中,一个数据分片集合对应有多个数据分片,一个存储服务器对应至少一个数据分片集合,且不同存储服务器对应的数据分片集合不同;
根据各数据分片集合的数据量,从所述各数据分片集合中确定第一数据分片集合和第二数据分片集合;其中,第一数据分片集合的数据量大于第二数据分片集合,且第一数据分片集合与第二数据分片集合对应的存储服务器不同;
确定第一数据分片集合中待搬迁的目标数据分片,所述目标数据分片的数据量小于所述第一数据分片集合的数据量;
将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合;其中,搬迁入目标数据分片的第二数据分片集合的数据量,不大于,未搬迁目标数据分片时第一数据分片集合的数据量;
其中,所述将所述目标数据分片由第一数据分片集合,搬迁到第二数据分片集合包括:
获取目标数据分片在第一数据分片集合的快照;
确定获取所述快照的时间戳之后的流水日志;
将所述快照导入第二数据分片集合,使得第二数据分片集合具有目标数据分片,并将所述流水日志在所述第二数据分片集合的目标数据分片上进行回放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710378791.5A CN108932104B (zh) | 2017-05-25 | 2017-05-25 | 一种数据处理方法、装置及处理服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710378791.5A CN108932104B (zh) | 2017-05-25 | 2017-05-25 | 一种数据处理方法、装置及处理服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108932104A CN108932104A (zh) | 2018-12-04 |
CN108932104B true CN108932104B (zh) | 2021-06-25 |
Family
ID=64451495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710378791.5A Active CN108932104B (zh) | 2017-05-25 | 2017-05-25 | 一种数据处理方法、装置及处理服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108932104B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708763B (zh) * | 2020-06-18 | 2023-12-01 | 北京金山云网络技术有限公司 | 分片集群的数据迁移方法、装置和分片集群*** |
US20220358095A1 (en) * | 2021-05-10 | 2022-11-10 | Shreyas JAIN | Managing data requests to a data shard |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051686B (zh) * | 2012-12-10 | 2018-03-27 | 北京普泽创智数据技术有限公司 | 一种分布式***动态应用隔离的方法和*** |
CN103136338B (zh) * | 2013-02-04 | 2016-02-10 | 中国科学院信息工程研究所 | 一种基于目录划分的元数据分布方法及装置 |
CN103500072A (zh) * | 2013-09-27 | 2014-01-08 | 华为技术有限公司 | 数据迁移方法及数据迁移装置 |
US20150261444A1 (en) * | 2014-03-12 | 2015-09-17 | Kabushiki Kaisha Toshiba | Memory system and information processing device |
CN104376087B (zh) * | 2014-11-19 | 2017-09-29 | 天津南大通用数据技术股份有限公司 | 一种采用交叉备份的分布式数据库负载均衡的计算方法 |
CN104883394A (zh) * | 2015-04-28 | 2015-09-02 | 浙江大学 | 一种均衡服务器负载的方法和*** |
CN106502576B (zh) * | 2015-09-06 | 2020-06-23 | 中兴通讯股份有限公司 | 迁移策略调整方法及装置 |
CN106682185B (zh) * | 2016-12-29 | 2019-05-24 | 北京奇虎科技有限公司 | 防止Mongos集群中的均衡操作失效的方法和装置 |
-
2017
- 2017-05-25 CN CN201710378791.5A patent/CN108932104B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108932104A (zh) | 2018-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10394847B2 (en) | Processing data in a distributed database across a plurality of clusters | |
CN111247518B (zh) | 用于数据库分片的方法和*** | |
CN110147407B (zh) | 一种数据处理方法、装置及数据库管理服务器 | |
US8214388B2 (en) | System and method for adding a storage server in a distributed column chunk data store | |
US20130097402A1 (en) | Data prefetching method for distributed hash table dht storage system, node, and system | |
CN112100293A (zh) | 数据处理方法、数据访问方法、装置及计算机设备 | |
KR20170054299A (ko) | 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법 | |
US20190179752A1 (en) | Multi-level caching method and multi-level caching system for enhancing graph processing performance | |
CN111159436A (zh) | 一种推荐多媒体内容的方法、装置及计算设备 | |
CN107430551B (zh) | 数据缓存方法、存储控制装置、及存储设备 | |
JP2014232483A (ja) | データベースシステム、検索方法およびプログラム | |
US10771358B2 (en) | Data acquisition device, data acquisition method and storage medium | |
CN106909595B (zh) | 一种数据迁移方法及装置 | |
US10915533B2 (en) | Extreme value computation | |
CN112000467A (zh) | 一种数据倾斜处理方法、装置、终端设备及存储介质 | |
CN108932104B (zh) | 一种数据处理方法、装置及处理服务器 | |
US20150081710A1 (en) | Data typing with probabilistic maps having imbalanced error costs | |
US9898518B2 (en) | Computer system, data allocation management method, and program | |
CN106682130B (zh) | 相似图片检测方法和装置 | |
CN117009389A (zh) | 数据缓存方法、装置、电子设备和可读存储介质 | |
CN112035498B (zh) | 数据块调度方法、装置、调度层节点及存储层节点 | |
CN115970295A (zh) | 请求处理方法、装置和电子设备 | |
CN113806354B (zh) | 实现时序特征抽取的方法及装置 | |
CN107679093B (zh) | 一种数据查询方法及装置 | |
CN112328587A (zh) | ElasticSearch的数据处理方法和装置 |
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 |