CN110275772B - 一种数据处理方法及其相关设备 - Google Patents
一种数据处理方法及其相关设备 Download PDFInfo
- Publication number
- CN110275772B CN110275772B CN201810215536.3A CN201810215536A CN110275772B CN 110275772 B CN110275772 B CN 110275772B CN 201810215536 A CN201810215536 A CN 201810215536A CN 110275772 B CN110275772 B CN 110275772B
- Authority
- CN
- China
- Prior art keywords
- partition
- metadata
- data
- server module
- client
- 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
- 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]
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/5061—Partitioning or combining of resources
-
- 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
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
技术领域
本申请涉及计算机领域,尤其涉及一种数据处理方法及其相关设备。
背景技术
现有的分布式系统架构分为存储与计算融合和存储与计算分离两类架构,随着客户端访问量的提高,服务器需要处理的数据流量快速增长,若需要处理的数据量超过了服务器的处理限度,会导致服务器崩溃,因此,无论采用哪一种架构都需要解决节点之间的负载均衡问题,负载均衡是指将数据合理的分摊到多个服务器或操作单元上处理,以避免某些服务器处于空闲状态时,某些服务器处理数据量过大的情况。
实现负载均衡的最好手段即对服务器的数据库进行分区,现有的存储计算分离架构对数据的存储和计算是在不同的设备上进行的。数据库分区的过程为:首先,控制服务器选择需要拆分的分区,并通知管理该分区的分区服务器执行拆分命令,同时该分区服务器关闭分区业务,即停止处理客户端发送的数据,标记该分区为下线状态,分区服务器开始对其管理的分区进行拆分,具体的分区拆分方式是对分区的元数据进行拆分,并将该分区元数据拆分为至少两个分区的元数据,拆分完成后,上线这至少两个分区并更新路由表信息,路由表更新完成后,管理两个分区的服务器就可以正常处理客户端发送的数据了。
可见,在对分区服务器的管理的任意一个或多个分区元数据进行拆分时,这时如果接收到客户端的发送的数据,由于该分区服务器的元数据正处于拆分状态,客户端的发送的数据会导致分区的元数据变化,因此该分区服务器必须停止处理客户端数据,在拆分完成后,该分区服务器需要重新确定自身管理的数据范围,并更新路由表信息后才能正常处理I/O请求,可见分区服务器对其管理的数据进行分区的过程中,是无法处理客户端发送的数据的。
发明内容
本申请实施例提供了一种数据处理方法及其相关设备,用于对第一元数据执行快照操作后,根据第一元数据的快照对第一元数据进行拆分并对拆分过程中客户端发送的数据进行处理。
本申请实施例的第一方面提供了一种数据处理方法,包括:
第一分区服务器模块接收控制服务器模块发送的拆分指令,该拆分指令用于指示第一分区服务器模块对第一元数据进行拆分,同时控制服务器模块事先向共享存储空间请求了第一元数据被拆分成多个元数据后,多个元数据中第三元数据的存储空间,被拆分前,第一元数据存储于第一分区,第一分区由第一分区服务器管理。
其中,元数据用于指示数据的地址,服务器可以根据元数据找到对应的数据;
所述第一分区服务器模块对所述第一元数据执行快照操作,生成第一元数据的快照,第一元数据的快照也存储在第一分区中;
所述第一分区服务器模块根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据,所述至少两段数据范围的元数据包括第二元数据和第三元数据,第二元数据存储于第二分区,所述第二分区由所述第一分区服务器模块管理,因此第二元数据可以看作是第一元数据被拆分一部分后剩下的由第一分区服务器模块管理的元数据。所述第三元数据存储于第三分区,所述第三分区由所述第二分区服务器模块管理,第二分区服务器模块由控制服务器模块确定。
在本实施例中,元数据被拆分的同时分区也被拆分了,因此所述第二分区和所述第三分区由所述第一分区拆分形成;
所述第一分区服务器模块根据拆分结果对客户端发送的数据进行处理。
本申请实施例具有以下优点:第一分区服务器模块接收拆分指令后,对其管理的第一元数据执行快照操作,并根据所述第一元数据的快照和预置的拆分策略将第一元数据拆分为至少两段数据范围的元数据,所述至少两段数据范围的元数据包括第二元数据和第三元数据,第二元数据存储于第二分区,第二分区由第一分区服务器管理,第三元数据存储于第三分区,第三分区由第二分区服务器模块管理,随后第一分区服务器模块根据拆分结果对客户端发送的数据进行处理,以此来减轻第一分区服务器模块的数据处理压力。在本申请实施例中,第一分区服务器模块能根据第一元数据的快照对第一元数据进行拆分,由于对元数据执行了快照操作,因此待拆分的元数据是固定的,第一分区服务器模块即使此时接收到客户端发送的数据,也能根据快照中固定不变的元数据对分区进行拆分,同时,还能对客户端数据进行正常处理。
基于第一方面,在第一方面的第一种实现方式中,所述客户端发送的数据属于所述第二元数据指示的数据形成的数据范围,所述第一分区服务模块根据拆分结果对客户端发送的数据进行处理包括:
所述第一分区服务器模块将所述客户端发送的数据存储于所述第二分区,第二分区由第一分区服务器模块管理,因此所述分区拆分成功,由所述第一分区服务模块对所述客户端发送的数据对应的I/O请求进行响应。
在本实施例中,对客户端发送数据的一种情况进行了说明,增加了方案的可实施性。
基于第一方面,在第一方面的第二种实现方式中,所述客户端发送的数据属于所述第三元数据指示的数据形成的数据范围,所述第一分区服务模块根据拆分结果对客户端发送的数据进行处理包括:
由于此时第二分区服务器模块还未上线,所述第一分区服务器模块先将所述客户端发送的数据写入日志,并所述日志存储于所述第三分区,待第二分区服务器模块上线后,第二分区服务器模块可以根据日志记录找到客户端数据。
在本实施例中,对客户端发送数据的另一种情况进行了说明,增加了方案的灵活性。
基于第一方面的第二种实现方式,第一方面的第三种实现方式,所述日志中包含所述客户端发送的数据;
分区拆分成功后,所述第二分区服务器模块可以从所述第三分区中获取所述日志中包含的所述客户端发送的数据,并根据所述客户端发送的数据响应该数据对应的I/O请求。
在本实施例中,日志中可以只包含客户端发送的数据,日志中也可以包含客户端发送的数据的同时也包含客户端发送的数据对应的元数据,具体此处不做限定。
在本实施例中,对日志内容的一种情况进行了说明,增加了方案实施例灵活性和多样性。
基于第一方面的第二种实现方式,第一方面的第四种实现方式,所述方法还包括:
第一分区服务器模块对客户端数据写日志,且,第一分区服务器模块也将客户端发送的数据存储于第二分区;
若所述分区拆分失败,则第一分区服务器模块可以从所述第二分区中调用预先存储的所述客户端发送的数据。
在本实施例中,第一分区服务器模块通过将客户端数据存储于第二分区,可以在分区拆分失败后,快速回滚获取事先存储的客户端发送的数据,有效的防止了数据的丢失。
基于第一方面的第四种实现方式,第一方面的第五种实现方式,当日志中包含所述客户端发送的数据对应的元数据时;
所述分区拆分成功,所述第二分区服务器模块根据所述客户端发送的数据对应的元数据从所述第二分区中获取预先存储的所述客户端发送的数据,并根据获取的客户端发送的数据处理所述客户端发送的数据对应的I/O请求。
在本实施例中,对日志内容的另一种情况进行了说明,增加了方案实施例灵活性和多样性。
基于第一方面及其第一方面的第一种至第五种实现方式中任一种实现方式所述的方法,在第一方面的第六种实现方式中,所述第一分区服务器模块根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据之后,所述方法还包括:
所述第一分区服务器模块将数据拆分为至少两段数据范围的数据,所述数据的地址由所述第一元数据指示,因此所述数据与第一元数据具有对应关系。
其中,所述至少两段数据范围的数据中每段数据范围的数据与所述至少两段数据范围的元数据中每段数据范围的元数据一一对应。
第一分区服务器模块将所述第二元数据及所述第二元数据对应的数据存储于所述第二分区,且,所述第一分区服务器模块将所述第三元数据及所述第三元数据对应的数据存储于所述第三分区。
在本实施例中,对待拆分的数据拆分后的存储情况进行了说明,增加了方案的完整性。
基于第一方面及其第一方面的第一种至第五种实现方式中任一种实现方式所述的方法,第一方面的第七种实现方式中,所述第一分区服务器模块根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据之后,所述方法还包括:
当第一元数据对应的数据没有被拆分时,第一分区服务器模块将第一元数据对应的数据及所述第二元数据存储于所述第一分区,且,所述第一分区服务器模块将所述第三元数据存储于所述第三分区,所述数据与所述第一元数据对应。
在本实施例中,对待拆分的数据没有被拆分时数据的存储情况进行了说明,增加了方案的多样性。
本申请的第二方面提供了一种服务器模块,所述服务器模块为第一分区服务器模块,所述第一分区服务器模块包括:
接收单元,用于接收拆分指令,所述拆分指令用于指示所述第一分区服务器模块对第一元数据进行拆分,所述第一元数据存储于第一分区,所述元数据用于指示数据的地址;
快照操作单元,用于对所述第一元数据执行快照操作;
拆分单元,用于根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据,所述至少两段数据范围的元数据包括第二元数据和第三元数据,所述第二元数据存储于第二分区,所述第二分区由所述第一分区服务器模块管理,所述第三元数据存储于第三分区,所述第三分区由所述第二分区服务器模块管理,所述第二分区和所述第三分区由所述第一分区拆分形成;
处理单元,用于根据拆分结果对客户端发送的数据进行处理。
在本实施例中,对第一分区服务器模块所管理分区的拆分方法进行了说明,应用此拆分方法,第一分区服务器模块可以实现在拆分过程中对客户端数据进行处理。
基于第二方面,在第二方面的第一种实现方式中,所述客户端发送的数据属于所述第二元数据指示的数据形成的数据范围,所述处理单元包括:
第一处理子单元,用于将所述客户端发送的数据存储于所述第二分区;
响应子单元,用于若所述分区拆分成功,响应所述客户端发送的数据对应的I/O请求。
在本实施例中,对客户端发送数据的一种情况进行了说明,增加了方案的可实施性。
基于第二方面,在第二方面的第二种实现方式中,所述客户端发送的数据属于所述第三元数据指示的数据形成的数据范围,所述处理单元包括:
第二处理子单元,用于将所述客户端发送的数据写入日志;
将所述日志存储于所述第三分区。
在本实施例中,对客户端发送数据的另一种情况进行了说明,增加了方案的灵活性。
基于第二方面的第二种实现方式,在第二方面的第三种实现方式中,所述第一分区服务器模块还包括:
存储单元,用于将所述客户端发送的数据存储于所述第二分区;
调用单元,用于若所述分区拆分失败,从所述第二分区中调用预先存储的所述客户端发送的数据。
在本实施例中,第一分区服务器模块通过将客户端数据存储于第二分区,可以在分区拆分失败后,快速回滚获取事先存储的客户端发送的数据,有效的防止了数据的丢失。
基于第二方面及其第二方面的第一种至第三种实现方式,在第二方面的第四种实现方式中,所述拆分单元,还用于将数据拆分为至少两段数据范围的数据,所述数据与所述第一元数据对应,所述至少两段数据范围的数据中每段数据范围的数据与所述至少两段数据范围的元数据中每段数据范围的元数据一一对应。
所述存储单元,还用于将所述第二元数据及所述第二元数据对应的数据存储于所述第二分区,且,将所述第三元数据及所述第三元数据对应的数据存储于所述第三分区。
在本实施例中,对待拆分的数据拆分后的存储情况进行了说明,增加了方案的完整性。
基于第二方面及其第二方面的第一种至第三种实现方式,在第二方面的第五种实现方式中,所述存储单元还用于将数据及所述第二元数据存储于所述第一分区,且,将所述第三元数据存储于所述第三分区,所述数据与所述第一元数据对应。
在本实施例中,对待拆分的数据没有被拆分时数据的存储情况进行了说明,增加了方案的多样性。
本申请的第三方面提供了一种计算设备,包括处理器和存储器,
所述处理器执行所述存储器中的程序代码以执行上述方面所述的任意方法。
该计算设备上运行有第一分区服务器模块,或者该计算设备运行时作为第一分区服务器模块。
本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请的第五方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
附图说明
图1为本申请实施例模块功能介绍的示意图;
图2(a)为本申请实施例分区服务器模块与其他模块连接方式的一种结构示意图;
图2(b)为本申请实施例分区服务器模块与其他模块连接方式的另一种结构示意图;
图2(c)为本申请实施例分区服务器模块与其他模块连接方式的另一种结构示意图;
图2(d)为本申请实施例分区服务器模块与其他模块连接方式的另一种结构示意图;
图3为本申请实施例数据处理方法的一个实施例示意图;
图4为第一元数据快照操作的示意图;
图5(a)为本申请实施例的一种元数据及对应的数据的拆分示意图;
图5(b)为本申请实施例的另一种元数据及对应的数据的拆分示意图;
图6为本申请实施例数据处理方法的另一个实施例示意图;
图7为本申请实施例数据处理的一种方式的示意图;
图8为本申请实施例数据处理方法的另一个实施例示意图;
图9为本申请实施例数据处理的另一种方式的示意图;
图10为第二分区服务器模块获取客户端数据的示意图;
图11(a)为本申请实施例第一分区服务器模块的一个结构示意图;
图11(b)为本申请实施例第一分区服务器模块的另一个结构示意图;
图11(c)为本申请实施例第一分区服务器模块的另一个结构示意图;
图12为本申请实施例第一分区服务器模块的另一个结构示意图;
图13为本申请实施例第一分区服务器模块的另一个结构示意图;
图14为本申请实施例第一分区服务器模块的另一个结构示意图。
具体实施方式
如图1所示:客户端包含访问数据库的接口,可以对分区服务器模块的数据库进行访问,控制服务器模块可以对数据根据每个数据的行键不同进行数据拆分后分配给不同的分区服务器模块进行管理维护,负责分区服务器模块的负载均衡以及分区服务器模块的故障管理。分区服务器模块能对控制服务器模块分配的分区进行管理,同时处理对这些分区的I/O(input/out-put)请求。每个分区服务器模块管理的存储分区个数具体此处不做限定,可以如图1中所示每个分区服务器模块只管理一个存储分区,也可以一个分区服务器模块管理多个存储分区。当分区服务器模块管理多个存储分区,多个存储分区中的一个存储分区需要拆分时,此分区进入拆分状态。每个控制服务器模块管理的存储分区中除了存有数据外还存有元数据,元数据是结构化的数据,包含数据的地址信息,通过元数据可以查找到对应的数据。存储分区所需要的存储空间由控制服务器模块从共享存储的存储空间获取,需要说明的是,对数据库进行分区拆分是基于行键区分不同数据后,选择拆分点从而对数据库拆分的。
图1所示的功能模块,分区服务器模块、控制服务器模块、共享存储可以在同一计算机设备内,也可以在不同的计算机设备上,下面以分区服务器模块的个数为3个为例,具体可能的应用场景如下图所示:
如图2(a)所示,客户端、控制服务器模块、分区服务器模块及其用于存储分区数据的存储空间集成在同一计算设备上,如图2(b)所示,客户端与控制服务器模块在同一物理设备上,控制服务器模块管理多个分区服务器模块,这些分区服务器模块分散在不同的计算设备上,分区的存储空间与分区服务器模块在同一终端设备上,可以理解的是,如图2(b)所示的实现场景中,还有一种可能的情况是客户端与控制服务器模块在不同计算设备上。如图2(c)所示,分区服务器模块与其对应的存储空间可以分散在不同的计算设备上,意味着分区服务器模块可以在某一设备上运行后将数据存储于另一设备的存储空间。如图2(d)所示,用于存储分区的存储设备可以与计算设备是独立分离的两台设备,存储设备与计算设备间通过网络进行信息交互,每个分区服务器管理的分区存储于不同的存储设备中,这些存储设备的存储空间共同组成共享存储。
当分区服务器模块的个数为N个时,控制服务器确定的第二分区服务器模块,可以为图2(a)至图2(d)中分区服务器模块2至N中的任一个(图2(a)至图2(d))以N等于3为例),所确定的分区服务器模块对应的存储分区或存储设备即为第三分区的存储空间。本实施例中的第一分区服务器模块即为图2(a)至图2(d)结构图中的分区服务器模块1,分区服务器模块1对应的存储分区或存储设备即为拆分前第一分区的存储空间或拆分后第二分区的存储空间。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请实施例提供了一种数据处理方法,用于分区服务器模块在元数据拆分过程中,对客户端发送的数据进行处理,请参照图3,下面将进行说明。
301、第一分区服务器模块接收拆分指令;
第一分区服务器模块处理一个或多个分区的数据,当一个分区的数据过大,超出第一分区服务器模块的处理能力时,可能导致分区服务器模块崩溃,控制服务器模块负责管理各个分区服务模块处理数据量的均衡,因此控制服务器模块需要将该分区进行拆分,即将该分区的一部分数据请求分配给另一个服务器处理,实现各个服务器间的负载均衡。
控制服务器模块确定待拆分的第一分区后,向共享存储层申请第三分区的存储空间,第三分区由第一分区拆分形成,第一分区被拆分为至少两个分区,至少两个分区中包含第二分区和第三分区,第二分区占用拆分前的第一分区的存储空间,第三分区占用控制服务器事先申请的存储空间。第二分区服务器模块由控制服务器模块确定,用于管理上述拆分出来的该分区的一部分数据,具体的方法是将这部分数据对应的元数据存储于第三分区,由第二分区服务器模块管理这部分数据及其对应的元数据,以此来减轻第一分区服务器模块的数据处理压力。例如第一元数据为1-100,被拆分成1-20、20-50、50-70、70-100四段数据范围的元数据,第一分区服务模块和第二分区服务器模块可以分别管理这四段元数据中的任一个,其中,第一分区服务器模块和第二分区服务器模块管理的元数据所形成的数据范围是不同的。
元数据为提供信息资源或数据的一种结构化的数据,是对信息资源的结构化的描述,元数据包含数据集的形成、关系、字段、约束等,分区服务器模块根据元数据可以访问对应的数据。
第一分区服务器模块或第二分区服务器模块管理哪一段元数据,意味着这一段元数据对应的数据也由第一分区服务器模块或第二分区服务器模块管理。例如第一分区服务器模块管理的元数据范围为1-20,1-20范围的元数据对应的数据为1-100,则1-100的数据也由第一分区服务器模块管理,元数据可以作为数据的索引,因此第一分区服务器模块只需要将1-20范围的元数据存储于其管理的第二分区,即可实现对1-20范围的元数据及1-100范围的数据的管理。拆分成功后,客户端I/O请求对应的数据属于1-100范围时,由第一分区服务器模块响应客户端请求。
在本实施例中,首先第一分区服务器模块接收拆分指令,该拆分指令中携带有待拆分元数据的信息和控制服务器事先为第三分区分配的存储空间信息,第一分区服务器模块可以根据拆分指令对第一元数据进行拆分,且,待拆分元数据(即第一元数据)的信息中包含控制服务器预置的拆分策略,因此第一分区服务器确定第一元数据后即可确定预置的拆分策略。
302、第一分区服务器模块对第一元数据执行快照操作;
如下图4所示,第一分区服务器模块对第一元数据执行快照操作,生成第一元数据的快照。执行完快照后第一分区中包括第一元数据,第一元数据所指示的数据、第一元数据快照。可以理解的是,第一分区中还包括拆分指令中携带的第三分区的存储空间信息。
303、第一分区服务器模块根据第一元数据的快照和预置的拆分策略将第一元数据拆分为至少两段数据范围的元数据。
第一分区服务器模块根据第一元数据的快照对第一元数据进行拆分,第一分区服务器模块确定预置的拆分策略,该拆分策略包含拆分点信息。该拆分点是根据数据的行键不同确定的,确定数据的拆分点后相应的元数据的拆分位置也就确定了。
1、一种可能的情况是,第一分区服务器模块将第一元数据拆分成两个分区,即将第一元数据拆成两段元数据,元数据拆分点只有一个。第一分区服务器模块从该拆分点位置将第一元数据拆分为第二元数据和第三元数据,第二元数据存储于第二分区,第三元数据存储于第三分区。
2、另一种可能的情况是,第一分区服务器模块将第一元数据拆分成两个以上的分区元数据,该两个以上的分区元数据中包含有第二元数据和第三元数据,此时的元数据的拆分点包括至少两个。例如第一元数据的数据范围为1-100,拆分点分别为20、60,则第一元数据被拆分成三个分区,分别为1-20、20-60、60-100。其中1-20、20-60、60-100中的任意两段数据范围的元数据分别被称为第二元数据和第三元数据,第二元数据存储于第二分区,第三元数据存储于第三分区。
在本实施例中,第一分区服务器模块对第一元数据进行拆分的同时,第一分区服务器模块对第一元数据对应的待拆分的数据的处理有如下两种情况。
A:所述第一分区服务器模块对待拆分数据进行拆分;
如图5(a)所示,以第一元数据被拆分为第二元数据和第三元数据为例,第一分区服务器模块对第一元数据进行拆分的同时,可以对第一元数据指示的数据也进行拆分,其拆分的形式是对应元数据的拆分点,在数据的相应位置设置拆分点进行拆分,因此待拆分数据被拆分为第二元数据指示的数据和第三元数据指示的数据,并把第二元数据指示的数据存储于第二分区,第三元数据指示的数据存储于第三分区。
B:第一分区服务器模块不对待拆分数据进行拆分;
如图5(b)所示,以第一元数据被拆分为第二元数据和第三元数据为例,一种可能的情况是,第一分区服务器模块只对第一元数据进行拆分,元数据对应的数据并没有进行拆分,在这种情况下,待拆分数据存储于第二分区。拆分完成后,第二分区服务器模块需要从第二分区中获取第三元数据指示的数据并把这些数据存储于第三分区。
在本实施例中,第二分区服务器模块从第二分区中获取第三元数据指示的数据的方式是:第二分区服务器模块上线后,进行数据整理时,根据第三元数据中指示的数据地址信息陆续从第一分区的存储空间中获取第三元数据指示的数据,并将这些数据存入第三分区。
304、第一分区服务器模块根据拆分结果对客户端发送的客户端发送的数据进行处理。
第一元数据拆分过程中,第一分区服务器模块接收到客户端发送的I/O请求,该客户端可以是终端设备上的一个应用程序,客户端与第一分区服务器模块可以是相同设备上的功能模块,也可以分别在不同的设备上,具体此处不做限定。
第一分区服务器模块根据预置的拆分策略确定第一元数据的拆分结果,并且确定拆分后形成的第二元数据存储于第二分区,第三元数据存储于第三分区,第一分区服务器模块根据第一元数据的拆分情况及拆分后元数据的存储情况后,对后续客户端发送的数据请求进行处理。
在本实施例中,第一分区服务器模块对第一元数据执行快照操作,根据第一元数据的快照对第一元数据进行拆分,而现有技术中由于客户端不断在发送I/O请求,导致待拆分的第一元数据不断变化,分区无法拆分,因此服务器需要停止接收客户端I/O请求,本实施例通过对元数据执行快照操作后进行拆分,相当于把待拆分的元数据固定在某一时刻不变,因此服务器此时可以正常处理客户端的I/O请求。
在本实施例中,服务器通过快照对第一元数据进行拆分,通过这种方式以达到对I/O请求的正常处理,在本实施例中I/O请求的处理流程有如下两种情况,请参照图6和图7,下面将对其中一种情况进行说明。
601、第一分区服务器模块接收拆分指令。
602、第一分区服务器模块对所述第一元数据执行快照操作;
603、第一分区服务器模块根据第一元数据的快照和预置的拆分策略将第一元数据拆分为至少两段数据范围的元数据。
在本实施例中,实施例步骤601至603与图3所示实施例步骤301至303类似,具体此处不再赘述。
604、第一分区服务器模块根据拆分结果确定第二元数据指示的数据形成的数据范围。
如图7所示,以待拆分数据被拆分为例,第一分区服务器模块根据拆分结果确定第一元数据拆分后生成的第二元数据和第三元数据,第二元数据中包含一个或多个元数据,第一分区服务器模块根据第二元数据中每个元数据指示的数据地址查找到对应的数据,直至将第二元数据所对应的数据全部确定完成,第二元数据所对应的数据可以形成一个数据范围,例如第二元数据为1、2、5、10、15、20,对应的数据分别为5、10、15、20、25,则这些数据形成的数据范围为5至25。
605、第一分区服务器模块将客户端发送的数据存储于第二分区。
第一分区服务器模块判断客户端发送的数据所属数据范围,第二元数据所对应数据会形成一个数据范围,当客户端发送的数据属于此数据范围时,第一分区服务器模块将客户端发送的数据写入第二分区,即将客户端发送的数据存储于第二分区的存储空间。如图7所示,数据X属于1-a的数据范围时,1-a数据范围的数据存储于第二分区中,因此第一分区服务模块将数据X写入第二分区。
606、若分区拆分成功,则第一分区服务模块响应客户端发送的数据对应的I/O请求。
当分区拆分成功后,即第一元数据被成功拆分,此时第一分区服务模块管理的数据发生了变化,第一分区服务器模块只管理拆分后分配的数据和拆分过程中客户端写入的数据,第一分区服务器模块通知客户端分区版本更新,客户端发送更新路由表信息的指令至控制服务器,路由表信息更新后,第二分区服务器模块上线,对落入第二分区服务器模块管理范围的数据即控制服务器分配的数据进行处理。
客户端发送的数据由第一分区服务器模块进行管理,因此该数据对应的I/O请求由第一分区服务器模块进行响应。
当分区拆分失败时,第一分区没有被拆分,因此第一分区服务器模块管理数据范围不变,且拆分过程中客户端写入的数据同样由第一分区服务器模块管理。
在本实施例中,第一分区服务器模块在分区拆分过程中客户端数据进行处理时,需要判断客户端发送的客户端发送的数据所属数据范围,本实施例对客户端发送的数据所属数据范围的一种情况进行了说明,增加了方案的可实施性。
请参照图7和图8,在本实施例中客户端I/O请求处理流程的另一种情况如下:
801、第一分区服务器模块接收拆分指令。
802、第一分区服务器模块对第一元数据执行快照操作;
803、第一分区服务器模块根据所述第一元数据的快照和预置的拆分策略将第一元数据拆分为至少两段数据范围的元数据。
在本实施例中,实施例步骤801至803与图3所示实施例步骤301至303类似,具体此处不再赘述。
804、第一分区服务器模块根据拆分结果确定第三元数据指示的数据形成的数据范围;
第一分区服务器根据拆分结果确定第一元数据拆分后生成的第三元数据,第三元数据中包含一个或多个元数据,每个元数据指示一个数据的地址,第一分区服务器模块根据第三元数据中每个元数据指示的数据地址查找到对应的数据,直至将第三元数据所对应的数据全部确定完成,第三元数据所对应的数据可以形成一个数据范围,例如第三元数据为50、59、65、71、80、88,对应的数据分别为55、60、70、80、90,则这些数据形成的数据范围为55至90。
805、第一分区服务器模块将客户端发送的数据写入日志;
806、第一分区服务器模块将日志存储于第三分区。
如图7所示,由于分区拆分还未完成,第二分区服务器模块还不能上线工作,因此第一分区服务器模块不能直接客户端发送的数据写入第三分区,而是需要使用写日志的方式,对客户端发送的数据作写前日志,如图10所示,以便于分区拆分完成后,第二分区服务器模块遍历日志,得到客户端发送的数据,并将客户端发送的数据存储于第三分区,客户端发送的数据由第二分区服务器模块进行管理,后续客户端发送该数据对应的I/O请求时,由第二分区服务器模块进行响应。
图9为图7中数据X属于第三元数据指示的数据范围时,实施例的一种实现方式,请参照图9,在本实施例中,第一分区服务器模块对客户端发送的数据写日志的同时,也将客户端发送的数据写入第二分区,即将客户端发送的数据存储于第二分区的存储空间。其目的是便于故障处理,同时也是为了解耦。若所述分区拆分失败,此时第一元数据没有被拆分掉。第一分区服务器模块会重新执行拆分操作,若多次拆分失败则发起回滚,第一分区服务器模块可以快速回滚获取事先存储的客户端发送的数据,有效的防止了数据的丢失。
在本实施例中,日志中包含的内容有多种可能的情况,下面将从其中两种可能的情况进行介绍:
1、日志中包含客户端数据。
若分区拆分成功,第二分区服务器模块上线后,直接从日志中获取数据,并将该数据存储于第三分区;
若分区拆分失败,参照图9,第二分区服务器模块无法成功上线,此时日志中的数据第一分区服务器模块无法读取,但是第一分区服务器模块在对客户端数据作日志记录的同时,也在第二分区中存储了客户端数据,因此第一分区服务器模块可以直接从第二分区中获取客户端数据,有效的避免了分区拆分失败时数据的丢失。
在本实施例中,日志中可以只包含客户端发送的数据,日志中也可以包含客户端发送的数据的同时也包含客户端发送的数据对应的元数据,具体此处不做限定。
2、日志中只包含客户端数据对应的元数据,客户端数据存储于第二分区。
若分区拆分成功,第二分区服务器模块上线后,参照图9,第二分区服务器模块根据客户端数据对应的元数据从第二分区中调用预先存储的客户端发送的数据,并将客户端发送的数据存储于第三分区。
若分区拆分失败,同样的第一分区服务器模块可以直接从第二分区中获取客户端数据,有效的避免了分区拆分失败时数据的丢失。
在本实施例中,第一分区服务器模块在分区拆分过程中客户端数据进行处理时,需要判断客户端发送的客户端发送的数据所属数据范围,本实施例对客户端发送的数据所属数据范围的另一种情况进行了说明,增加了方案的可实施性。
上面图1至图10对本申请实施例的一种数据处理方法进行了叙述,请参照图11(a),下面将对本申请实施例的一种服务器模块进行说明。
一种服务器模块,该服务器模块为第一分区服务器模块1100,可以包括:
接收单元1101,用于接收拆分指令,所述拆分指令用于指示所述第一分区服务器模块对第一元数据进行拆分,所述第一元数据存储于第一分区,所述元数据用于指示数据的地址;
快照操作单元1102,用于对所述第一元数据执行快照操作;
拆分单元1103,用于根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据,所述至少两段数据范围的元数据包括第二元数据和第三元数据,所述第二元数据存储于第二分区,所述第二分区由所述第一分区服务器模块管理,所述第三元数据存储于第三分区,所述第三分区由所述第二分区服务器模块管理,所述第二分区和所述第三分区由所述第一分区拆分形成;
处理单元1104,用于根据拆分结果对客户端发送的数据进行处理。
在本实施例中,第一分区服务器模块能根据第一元数据的快照对第一元数据进行拆分,由于对元数据执行了快照操作,因此待拆分的元数据是固定的,第一分区服务器模块即使此时接收到客户端发送的数据,也能根据快照中固定不变的元数据对分区进行拆分,同时,还能对客户端数据进行正常处理。
请参照图11(b),在图11(a)中,一种可能的情况是,当客户端发送的数据属于所述第二元数据指示的数据形成的数据范围时,客户端发送的数据由第一分区服务器模块进行处理,因此处理单元包括:
第一处理子单元11041,用于将所述客户端发送的数据存储于所述第二分区;
响应子单元11042,用于若所述分区拆分成功,响应所述客户端发送的数据对应的I/O请求。
在本实施例中,对客户端发送数据所属数据范围的一种情况进行了说明,增加了方案的可实施性。
请参照图11(c),另一种可能的情况是,当客户端发送的数据属于所述第三元数据指示的数据形成的数据范围时,客户端发送的数据由第二分区服务器模块进行处理,因此处理单元包括:
第二处理子单元11043,用于将所述客户端发送的数据写入日志;
将所述日志存储于所述第三分区。
在本实施例中,对客户端发送数据所属数据范围的另一种情况进行了说明,增加了方案的灵活性。
请参照图12,客户端发送的数据进行写日志的同时还可以存储于第二分区,以防数据丢失。
接收单元1201,用于接收拆分指令,所述拆分指令用于指示所述第一分区服务器模块对第一元数据进行拆分,所述第一元数据存储于第一分区,所述元数据用于指示数据的地址;
快照操作单元1202,用于对所述第一元数据执行快照操作;
拆分单元1203,用于根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据,所述至少两段数据范围的元数据包括第二元数据和第三元数据,所述第二元数据存储于第二分区,所述第二分区由所述第一分区服务器模块管理,所述第三元数据存储于第三分区,所述第三分区由所述第二分区服务器模块管理,所述第二分区和所述第三分区由所述第一分区拆分形成;
处理单元1204,用于根据拆分结果对客户端发送的数据进行处理。
存储单元1205,用于将所述客户端发送的数据存储于所述第二分区;
调用单元1206,用于若所述分区拆分失败,从所述第二分区中调用预先存储的所述客户端发送的数据。
其中,处理单元包括:
第二处理子单元12043,还用于将所述客户端发送的数据写入日志;
将所述日志存储于所述第三分区。
在本实施例中,为防止分区拆分失败的情况下客户端数据的丢失,本实施例介绍了对客户端数据处理的另一种可能的情况,增加了方案的多样性。
请参照图13,第一分区服务器对元数据进行拆分的同时,可以选择对待拆分的数据进行拆分或不进行拆分,下面将进行说明。
接收单元1301,用于接收拆分指令,所述拆分指令用于指示所述第一分区服务器模块对第一元数据进行拆分,所述第一元数据存储于第一分区,所述元数据用于指示数据的地址;
快照操作单元1302,用于对所述第一元数据执行快照操作;
拆分单元1303,用于根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据,所述至少两段数据范围的元数据包括第二元数据和第三元数据,所述第二元数据存储于第二分区,所述第二分区由所述第一分区服务器模块管理,所述第三元数据存储于第三分区,所述第三分区由所述第二分区服务器模块管理,所述第二分区和所述第三分区由所述第一分区拆分形成;
拆分单元1303,还用于将数据拆分为至少两段数据范围的数据,所述数据与所述第一元数据对应,所述至少两段数据范围的数据中每段数据范围的数据与所述至少两段数据范围的元数据中每段数据范围的元数据一一对应。
存储单元1304,用于将所述第二元数据及所述第二元数据对应的数据存储于所述第二分区,且,将所述第三元数据及所述第三元数据对应的数据存储于所述第三分区。
处理单元1305,用于根据拆分结果对客户端发送的数据进行处理。
或,
接收单元1301,用于接收拆分指令,所述拆分指令用于指示所述第一分区服务器模块对第一元数据进行拆分,所述第一元数据存储于第一分区,所述元数据用于指示数据的地址;
快照操作单元1302,用于对所述第一元数据执行快照操作;
拆分单元1303,用于根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据,所述至少两段数据范围的元数据包括第二元数据和第三元数据,所述第二元数据存储于第二分区,所述第二分区由所述第一分区服务器模块管理,所述第三元数据存储于第三分区,所述第三分区由所述第二分区服务器模块管理,所述第二分区和所述第三分区由所述第一分区拆分形成;
存储单元1304,用于将数据及所述第二元数据存储于所述第一分区,且,将所述第三元数据存储于所述第三分区,所述数据与所述第一元数据对应。
处理单元1305,用于根据拆分结果对客户端发送的数据进行处理。
在本实施例中,对待拆分数据的两种存储情况进行了介绍,增加了方案实施的灵活性。
图2示出了第一分区服务器模块与控制服务器模块、客户端模块、存储分区的几种可能的连接情况,请参照图14,下面将对第一分区服务器模块的内部结果示意图进行说明。
图14是本发明实施例提供的一种计算设备的结构示意图,该计算设备1400包括一个或一个以上中央处理器(central processing units,CPU)1422和存储器1430(该存储器为计算设备1400的本地存储空间)。该计算设备1400还包括一个或一个以上用于存储程序代码1442或数据1444的存储器1430(例如内存,HDD或SSD或磁带等介质)。其中,存储器1430可以是短暂存储介质或持久存储介质。程序代码1442可以包括一个或一个以上模块(图示没标出),每个模块可以包括一系列指令操作。中央处理器1422执行程序代码1442以在计算设备1400上实现上述第一分区服务器模块的功能,或者运行上述第一分区服务器模块执行的步骤。更进一步地,中央处理器1422可以设置为与存储介质1430通信以执行存储介质1430中的一系列指令操作。
该中央处理器1422可以根据指令操作执行上述实施例中由第一分区服务器模块所执行的步骤,包括:
接收拆分指令,所述拆分指令用于指示所述第一分区服务器模块对第一元数据进行拆分,所述第一元数据存储于第一分区,所述元数据用于指示数据的地址;
对所述第一元数据执行快照操作;
根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据,所述至少两段数据范围的元数据包括第二元数据和第三元数据,所述第二元数据存储于第二分区,所述第二分区由所述第一分区服务器模块管理,所述第三元数据存储于第三分区,所述第三分区由所述第二分区服务器模块管理,所述第二分区和所述第三分区由所述第一分区拆分形成;
根据拆分结果对客户端发送的数据进行处理。
计算设备1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,本地客户端,或者网络设备等)执行本申请图3、图6和图8各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (16)
1.一种数据处理方法,其特征在于,包括:
第一分区服务器模块接收拆分指令,所述拆分指令用于指示所述第一分区服务器模块对第一元数据进行拆分,所述第一元数据存储于第一分区,所述元数据用于指示数据的地址;
所述第一分区服务器模块对所述第一元数据执行快照操作;
所述第一分区服务器模块根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据,所述至少两段数据范围的元数据包括第二元数据和第三元数据,所述第二元数据存储于第二分区,所述第二分区由所述第一分区服务器模块管理,所述第三元数据存储于第三分区,所述第三分区由第二分区服务器模块管理,所述第二分区和所述第三分区由所述第一分区拆分形成,所述第二分区占用拆分前的第一分区的存储空间,所述第三分区占用所述第一分区服务器模块在接收所述拆分指令后向共享存储层申请的存储空间;
所述第一分区服务器模块根据拆分结果对客户端发送的数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述客户端发送的数据属于所述第二元数据指示的数据形成的数据范围,所述第一分区服务模块根据拆分结果对客户端发送的数据进行处理包括:
所述第一分区服务器模块将所述客户端发送的数据存储于所述第二分区;
若所述第一分区拆分成功,则所述第一分区服务模块响应所述客户端发送的数据对应的I/O请求。
3.根据权利要求1所述的方法,其特征在于,所述客户端发送的数据属于所述第三元数据指示的数据形成的数据范围,所述第一分区服务模块根据拆分结果对客户端发送的数据进行处理包括:
所述第一分区服务器模块将所述客户端发送的数据写入日志;
所述第一分区服务器模块将所述日志存储于所述第三分区。
4.根据权利要求3所述的方法,其特征在于,所述日志中包含所述客户端发送的数据;
所述日志用于所述第一分区拆分成功后,所述第二分区服务器模块从所述第三分区中获取所述日志中包含的所述客户端发送的数据,所述客户端发送的数据用于所述第二分区服务器模块响应所述客户端发送的数据对应的I/O请求。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述第一分区服务器模块将所述客户端发送的数据存储于所述第二分区;
若所述第一分区拆分失败,则所述第一分区服务器模块从所述第二分区中调用预先存储的所述客户端发送的数据。
6.根据权利要求5所述的方法,其特征在于,所述日志中包含所述客户端发送的数据对应的元数据;
若所述第一分区拆分成功,所述日志用于所述第二分区服务器模块根据所述客户端发送的数据对应的元数据从所述第二分区中获取预先存储的所述客户端发送的数据,所述客户端发送的数据用于所述第二分区服务器模块响应所述客户端发送的数据对应的I/O请求。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一分区服务器模块根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据之后,所述方法还包括:
所述第一分区服务器模块将数据拆分为至少两段数据范围的数据,所述数据与所述第一元数据对应,所述至少两段数据范围的数据中每段数据范围的数据与所述至少两段数据范围的元数据中每段数据范围的元数据一一对应;
所述第一分区服务器模块将所述第二元数据及所述第二元数据对应的数据存储于所述第二分区,且,所述第一分区服务器模块将所述第三元数据及所述第三元数据对应的数据存储于所述第三分区。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一分区服务器模块根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据之后,所述方法还包括:
所述第一分区服务器模块将数据及所述第二元数据存储于所述第一分区,且,所述第一分区服务器模块将所述第三元数据存储于所述第三分区,所述数据与所述第一元数据对应。
9.一种服务器模块,其特征在于,所述服务器模块为第一分区服务器模块,所述第一分区服务器模块包括:
接收单元,用于接收拆分指令,所述拆分指令用于指示所述第一分区服务器模块对第一元数据进行拆分,所述第一元数据存储于第一分区,所述元数据用于指示数据的地址;
快照操作单元,用于对所述第一元数据执行快照操作;
拆分单元,用于根据所述第一元数据的快照和预置的拆分策略将所述第一元数据拆分为至少两段数据范围的元数据,所述至少两段数据范围的元数据包括第二元数据和第三元数据,所述第二元数据存储于第二分区,所述第二分区由所述第一分区服务器模块管理,所述第三元数据存储于第三分区,所述第三分区由第二分区服务器模块管理,所述第二分区和所述第三分区由所述第一分区拆分形成,所述第二分区占用拆分前的第一分区的存储空间,所述第三分区占用所述第一分区服务器模块在接收所述拆分指令后向共享存储层申请的存储空间;
处理单元,用于根据拆分结果对客户端发送的数据进行处理。
10.根据权利要求9所述的服务器模块,其特征在于,所述客户端发送的数据属于所述第二元数据指示的数据形成的数据范围,所述处理单元包括:
第一处理子单元,用于将所述客户端发送的数据存储于所述第二分区;
响应子单元,用于若所述第一分区拆分成功,响应所述客户端发送的数据对应的I/O请求。
11.根据权利要求9所述的服务器模块,其特征在于,所述客户端发送的数据属于所述第三元数据指示的数据形成的数据范围,所述处理单元包括:
第二处理子单元,用于将所述客户端发送的数据写入日志;
将所述日志存储于所述第三分区。
12.根据权利要求11所述的服务器模块,其特征在于,所述第一分区服务器模块还包括:
存储单元,用于将所述客户端发送的数据存储于所述第二分区;
调用单元,用于若所述第一分区拆分失败,从所述第二分区中调用预先存储的所述客户端发送的数据。
13.根据权利要求12所述的服务器模块,其特征在于,所述拆分单元,还用于将数据拆分为至少两段数据范围的数据,所述数据与所述第一元数据对应,所述至少两段数据范围的数据中每段数据范围的数据与所述至少两段数据范围的元数据中每段数据范围的元数据一一对应;
所述存储单元,还用于将所述第二元数据及所述第二元数据对应的数据存储于所述第二分区,且,将所述第三元数据及所述第三元数据对应的数据存储于所述第三分区。
14.根据权利要求12所述的服务器模块,其特征在于,所述存储单元还用于将数据及所述第二元数据存储于所述第一分区,且,将所述第三元数据存储于所述第三分区,所述数据与所述第一元数据对应。
15.一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至8中任意一项所述的方法。
16.一种计算设备,包括处理器和存储器,
所述处理器执行所述存储器中的程序代码以执行如权利要求1-8任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810215536.3A CN110275772B (zh) | 2018-03-15 | 2018-03-15 | 一种数据处理方法及其相关设备 |
PCT/CN2019/078091 WO2019174608A1 (zh) | 2018-03-15 | 2019-03-14 | 一种数据处理方法及其相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810215536.3A CN110275772B (zh) | 2018-03-15 | 2018-03-15 | 一种数据处理方法及其相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110275772A CN110275772A (zh) | 2019-09-24 |
CN110275772B true CN110275772B (zh) | 2022-12-13 |
Family
ID=67908562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810215536.3A Active CN110275772B (zh) | 2018-03-15 | 2018-03-15 | 一种数据处理方法及其相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110275772B (zh) |
WO (1) | WO2019174608A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112541038A (zh) * | 2020-12-01 | 2021-03-23 | 杭州海康威视数字技术股份有限公司 | 时序数据管理方法、系统、计算设备及存储介质 |
CN112883066B (zh) * | 2021-03-29 | 2022-07-08 | 电子科技大学 | 一种数据库上的多维范围查询基数估计方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253869A (zh) * | 2010-05-19 | 2011-11-23 | 微软公司 | 可缩放的容错元数据服务 |
CN102521234A (zh) * | 2010-10-28 | 2012-06-27 | 微软公司 | 在线数据库的分区 |
CN104765794A (zh) * | 2015-03-25 | 2015-07-08 | 深圳市创梦天地科技有限公司 | 一种数据库分区方法及装置 |
US9489443B1 (en) * | 2013-05-24 | 2016-11-08 | Amazon Technologies, Inc. | Scheduling of splits and moves of database partitions |
CN106897344A (zh) * | 2016-07-21 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 分布式数据库的数据操作请求处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9690671B2 (en) * | 2013-11-01 | 2017-06-27 | Cloudera, Inc. | Manifest-based snapshots in distributed computing environments |
-
2018
- 2018-03-15 CN CN201810215536.3A patent/CN110275772B/zh active Active
-
2019
- 2019-03-14 WO PCT/CN2019/078091 patent/WO2019174608A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253869A (zh) * | 2010-05-19 | 2011-11-23 | 微软公司 | 可缩放的容错元数据服务 |
CN102521234A (zh) * | 2010-10-28 | 2012-06-27 | 微软公司 | 在线数据库的分区 |
US9489443B1 (en) * | 2013-05-24 | 2016-11-08 | Amazon Technologies, Inc. | Scheduling of splits and moves of database partitions |
CN104765794A (zh) * | 2015-03-25 | 2015-07-08 | 深圳市创梦天地科技有限公司 | 一种数据库分区方法及装置 |
CN106897344A (zh) * | 2016-07-21 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 分布式数据库的数据操作请求处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110275772A (zh) | 2019-09-24 |
WO2019174608A1 (zh) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10509680B2 (en) | Methods, systems and apparatus to perform a workflow in a software defined data center | |
EP3432549B1 (en) | Method and apparatus for processing user requests | |
KR102013004B1 (ko) | 확장 가능한 환경에서의 동적 로드 밸런싱 기법 | |
US7574620B2 (en) | Method for operating an arrangement of a plurality of computers in the event of a computer failure | |
CN105786405B (zh) | 一种在线升级方法、装置及系统 | |
CN109842651B (zh) | 一种业务不间断的负载均衡方法和系统 | |
US8185905B2 (en) | Resource allocation in computing systems according to permissible flexibilities in the recommended resource requirements | |
US20210019162A1 (en) | Enhanced migration of clusters based on data accessibility | |
CN112596960A (zh) | 一种分布式存储服务切换方法及装置 | |
US9916215B2 (en) | System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines | |
EP3786802B1 (en) | Method and device for failover in hbase system | |
EP2645635B1 (en) | Cluster monitor, method for monitoring a cluster, and computer-readable recording medium | |
CN108462756B (zh) | 一种数据写入方法和装置 | |
CN110275772B (zh) | 一种数据处理方法及其相关设备 | |
CN113742135A (zh) | 数据备份方法、装置及计算机可读存储介质 | |
CN111143031A (zh) | 一种虚拟机的容量更改方法及装置 | |
CN110740155A (zh) | 分布式系统中的请求处理方法及装置 | |
CN107948229B (zh) | 分布式存储的方法、装置及系统 | |
CN111309805A (zh) | 数据库的数据读写方法及装置 | |
CN114064780A (zh) | 会话信息的处理方法、系统、装置、存储介质及电子设备 | |
CN112631994A (zh) | 数据迁移方法及系统 | |
CN116954816A (zh) | 容器集群控制方法、装置、设备及计算机存储介质 | |
CN112083886B (zh) | 一种nas设备的存储管理方法、系统及装置 | |
CN115438021A (zh) | 一种数据库服务器的资源配置方法及装置 | |
US11210187B1 (en) | Computer cluster with adaptive quorum rules |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220214 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |