CN104580324B - 一种数据存储方法及装置 - Google Patents
一种数据存储方法及装置 Download PDFInfo
- Publication number
- CN104580324B CN104580324B CN201310515649.2A CN201310515649A CN104580324B CN 104580324 B CN104580324 B CN 104580324B CN 201310515649 A CN201310515649 A CN 201310515649A CN 104580324 B CN104580324 B CN 104580324B
- Authority
- CN
- China
- Prior art keywords
- data
- subtask
- written
- write
- storage region
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据存储方法及装置。其中的方法包括:当接收到对分布式存储系统中备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据;将所述待写入数据划分成至少一个数据写入子任务,所述至少一个数据写入子任务的每一个数据写入子任务包含相应的所述待写入数据的部分;依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。还公开了相应的数据存储装置。采用本发明提供的一种数据存储方法及装置的技术方案,可以减少对系统重定向存储区域的需求,提高重定向存储区域的利用效率。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种数据存储方法及装置。
背景技术
在分布式存储中,由于节点宕机等故障导致副本缺失部分数据。当宕机节点从故障中恢复,需要去同步缺失的数据进行恢复数据。主备副本进行数据同步的时候,为了保证主备节点间一致性,需要保证主备节点的执行序列相同,这就要求备副本在同步因故障而丢失的数据期间,对写入数据到主备节点的新业务采用重定向的方法定向一个重定向存储区域。通常主备节点的同步会有多个子任务进行,这些子任务共享着重定向区域。如图1所示,备节点由于宕机或者其他故障导致了缺失了部分数据,当备节点从故障中恢复后,进行数据恢复同步,对恢复期间的新业务在主节点采用直接操作的方式,而在备节点上则采用重定向的方式进行处理。
问题在于,当由于同步期间业务量很大的时候,会要求重定向存储区域很大。但是假如为了满足最大需求,将重定向区域设置为最大需求,对系统的浪费将是很大的,因为在大部分场景下,只用很小的区域就足够了。只有在重建期间业务量很大的情况下,才需要更大的区域。
综上所述,如何减少对系统重定向存储区域的需求,提高重定向存储区域的利用效率成为业界迫切需要解决的问题。
发明内容
有鉴于此,本发明提供一种数据存储方法及装置,以减少对重定向存储区域的需求,提高重定向存储区域的利用效率。
第一方面,提供了一种数据存储方法,包括:
当接收到对分布式存储系统中备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据;
将所述待写入数据划分成至少一个数据写入子任务,所述至少一个数据写入子任务的每一个数据写入子任务包含相应的所述待写入数据的部分;
依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。
在第一种可能的实现方式中,所述当接收到对分布式存储系统中备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据之前,所述方法还包括:
接收所述备节点的数据同步请求时,将所述数据同步请求划分成至少一个数据同步子任务;
所述将所述待写入数据划分成至少一个数据写入子任务,具体为:
根据所述数据同步请求的划分,将所述待写入数据划分成与所述至少一个数据同步子任务关联的至少一个数据写入子任务;
所述依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域,包括:
依次执行所述至少一个数据同步子任务;
按照所述至少一个数据同步子任务的执行顺序,将与所述至少一个数据同步子任务关联的所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述按照所述至少一个数据同步子任务的执行顺序,将与所述至少一个数据同步子任务关联的所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域,包括:
在所述备节点中同时执行至少两个所述数据同步子任务时,根据设定要求从与所述至少两个数据同步子任务关联的至少两个所述数据写入子任务中筛选出进行重置处理的数据写入子任务,释放所述重置处理的数据写入子任务对应的所述重定向区域;
将所述至少两个所述数据写入子任务中除所述重置处理的数据写入子任务外的数据写入子任务对应的待写入数据写入所述备节点的重定向存储区域。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述将所述至少两个所述数据写入子任务中除所述重置处理的数据写入子任务外的数据写入子任务对应的待写入数据写入所述备节点的重定向存储区域之后,所述方法还包括:
重新执行所述重置处理的数据写入子任务及与所述重置处理的数据写入子任务关联的数据同步子任务。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域之后,还包括:
将所述重定向存储区域的数据写入所述备节点以释放所述重定向存储区域的空间。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述重定向存储区域的大小大于等于所述至少一个数据写入子任务对应的待写入数据的大小。
第二方面,提供了一种数据存储装置,包括:
获取单元,用于当接收到对分布式存储系统中备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据;
第一划分单元,用于将所述待写入数据划分成至少一个数据写入子任务,所述至少一个数据写入子任务的每一个数据写入子任务包含相应的所述待写入数据的部分;
第一执行单元,用于依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。
在第一种可能的实现方式中,所述装置还包括:
第二划分单元,用于接收所述备节点的数据同步请求时,将所述数据同步请求划分成至少一个数据同步子任务;
所述第一划分单元具体用于根据所述数据同步请求的划分,将所述待写入数据划分成与所述至少一个数据同步子任务关联的至少一个数据写入子任务;
所述第一执行单元包括:
第二执行单元,用于依次执行所述至少一个数据同步子任务;
第一写入单元,用于按照所述至少一个数据同步子任务的执行顺序,将与所述至少一个数据同步子任务关联的所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一写入单元包括:
筛选单元,用于在所述备节点中同时执行至少两个所述数据同步子任务时,根据设定要求从与所述至少两个数据同步子任务关联的至少两个所述数据写入子任务中筛选出进行重置处理的数据写入子任务;
释放单元,用于释放所述重置处理的数据写入子任务对应的所述重定向区域;
第二写入单元,用于将所述至少两个所述数据写入子任务中除所述重置处理的数据写入子任务外的数据写入子任务对应的待写入数据写入所述备节点的重定向存储区域。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:
第三执行单元,用于重新执行所述重置处理的数据写入子任务及与所述重置处理的数据写入子任务关联的数据同步子任务。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:
第三写入单元,用于将所述重定向存储区域的数据写入所述备节点以释放所述重定向存储区域的空间。
采用本发明提供的一种数据存储方法及装置的技术方案,可以减少对重定向存储区域的需求,提高重定向存储区域的利用效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中数据存储的示意图;
图2为本发明一种数据存储方法的一个实施例的流程图;
图3为本发明一种数据存储方法的另一个实施例的流程图;
图4为本发明一种数据存储方法的又一个实施例的流程图;
图5为本发明一种数据存储装置的一个实施例的结构示意图;
图6为本发明一种数据存储装置的另一个实施例的结构示意图;
图7为本发明一种数据存储装置的又一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为本发明一种数据存储方法的一个实施例的流程图。如图2所示,该方法包括以下步骤:
步骤S101,当接收到对分布式存储系统中备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据。
在分布式存储系统中,写入主节点的数据会同时复制到备节点,备节点存储数据的位置也与主节点存储数据的位置对应,但当主节点和备节点需要进行一项优先级更高的任务时,例如节点宕机或者网络异常等故障,导致了主、备节点间的状态不一致,备节点丢失部分业务数据,备节点向主节点进行同步请求,但是在同步期间,系统不会停止数据的写入,此时,对于针对数据写入的新业务,主节点可以直接写入存储位置,但是备节点由于缺失了故障期间丢失的业务数据,为了保证同步业务执行序列,需要将新业务暂时存放在重定向存储区域。因此,当接收到对备节点的重定向存储区域的数据写入请求时,获取该数据写入请求包含的待写入数据,对该数据写入请求进行特殊处理。该重定向存储区域是在备节点已有存储空间外系统另外设定的存储空间,该重定向存储区域的大小一般大于等于同时执行的一个或多个数据写入子任务对应的待写入数据的大小。
步骤S102,将所述待写入数据划分成至少一个数据写入子任务,所述至少一个数据写入子任务的每一个数据写入子任务包含相应的所述待写入数据的部分。
如果将待写入数据一次全部写入重定向存储区域,如果某一次待写入数据非常大,会要求系统设置非常大的重定向存储区域空间,但大部分时候是不需要这么大的重定向存储区域空间的,因此造成了资源的浪费。所以,将待写入数据划分成多个数据写入子任务,每个数据写入子任务包含被分配的待写入数据的部分。
步骤S103,依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。
数据写入子任务划分好后,依次执行该数据写入子任务,将数据写入子任务包含的待写入数据的部分写入重定向存储区域,直至完成所有数据写入子任务,从而将整个待写入数据写入了重定向存储区域。
根据本发明实施例提供的一种数据存储方法,通过将写入重定向存储区域的待写入数据划分成多个数据写入子任务分别执行,可以减少对重定向存储区域的需求,提高重定向存储区域的利用效率。
图3为本发明一种数据存储方法的另一个实施例的流程图。如图3所示,该方法包括以下步骤:
步骤S201,接收对分布式存储系统中备节点的数据同步请求时,将所述数据同步请求划分成至少一个数据同步子任务。
在分布式存储系统中,写入主节点的数据会同时复制到备节点,备节点存储数据的位置也与主节点存储数据的位置对应,但当节点宕机或者网络异常等故障,导致了主、备节点间的状态不一致,备节点丢失部分业务数据,备节点会向主节点发送数据同步请求。一般会将数据同步请求划分成多个数据同步子任务,例如,如图1所示,按照备节点包括三个存储区域,会将数据同步请求划分成三个子任务。
步骤S202,当接收到对所述备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据。
在同步期间,系统不会停止数据的写入,此时,对于针对数据写入的新业务,主节点可以直接写入存储位置,但是备节点由于缺失了故障期间丢失的业务数据,为了保证同步业务执行序列,需要将新业务暂时存放在重定向存储区域。因此,当接收到对备节点的重定向存储区域的数据写入请求时,获取该数据写入请求包含的待写入数据,对该数据写入请求进行特殊处理。该重定向存储区域是在备节点已有存储空间外系统另外设定的存储空间。
步骤S203,根据所述数据同步请求的划分,将所述待写入数据划分成与所述至少一个数据同步子任务关联的至少一个数据写入子任务,所述至少一个数据写入子任务的每一个数据写入子任务包含相应的所述待写入数据的部分。
由于是在数据同步期间将系统写入的数据写入重定向区域,所以以数据同步为主导,针对一个或多个同时执行的数据同步子任务设置相应数目的重定向区域,并将待写入数据划分成多个与数据同步子任务关联的数据写入子任务,例如一个数据同步子任务对应一个数据写入子任务,每个数据写入子任务包含相应的待写入数据的部分,设置重定向存储区域的大小一般大于等于同时执行的一个或多个数据写入子任务对应的待写入数据的大小。
步骤S204,依次执行所述至少一个数据同步子任务。
依次执行数据同步子任务可以是依次一个一个的执行数据同步子任务,也可以是先将数据同步子任务分组,依次一组一组的执行数据同步子任务。
步骤S205,按照所述至少一个数据同步子任务的执行顺序,将与所述至少一个数据同步子任务关联的所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。
按照一个或一组数据同步子任务的执行顺序,将与该一个或一组数据同步子任务关联的一个或多个数据写入子任务对应的待写入数据的部分写入重定向存储区域。
步骤S206,将所述重定向存储区域的数据写入所述备节点以释放所述重定向存储区域的空间。
当一次执行的数据同步子任务完成后,需要回放重定向存储区域的数据,即在备节点中重新执行一次重定向存储区域中的数据的写入,这样就能够达到与主节点存储的数据一致的目的,并能够释放重定向存储区域的空间,以便后面的数据写入子任务的执行。
采用上面的数据存储方法,假设备节点的数据同步任务分割成n份,同步时间为t,单位时间内的数据写入业务量为v,单位时间内最大数据写入业务量为v_max。如果不采用本方案,备节点需要预留v_max*t的空间,而采用本方案,该重定向存储区域大小最少只需要v_max*t/n。
根据本发明实施例提供的一种数据存储方法,在备节点数据同步期间,通过将写入重定向存储区域的待写入数据划分成多个数据写入子任务分别执行,可以减少对重定向存储区域的需求,提高重定向存储区域的利用效率。
图4为本发明一种数据存储方法的又一个实施例的流程图。如图4所示,该方法包括以下步骤:
步骤S301,接收对分布式存储系统中备节点的数据同步请求时,将所述数据同步请求划分成至少一个数据同步子任务。
步骤S302,当接收到对所述备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据。
步骤S303,根据所述数据同步请求的划分,将所述待写入数据划分成与所述至少一个数据同步子任务关联的至少一个数据写入子任务,所述至少一个数据写入子任务的每一个数据写入子任务包含相应的所述待写入数据的部分。
步骤S304,同时执行所述至少两个数据同步子任务。
步骤S305,在所述备节点中同时执行至少两个所述数据同步子任务时,根据设定要求从与所述至少两个数据同步子任务关联的至少两个所述数据写入子任务中筛选出进行重置处理的数据写入子任务,释放所述重置处理的数据写入子任务对应的所述重定向区域。
步骤S306,将所述至少两个所述数据写入子任务中除所述重置处理的数据写入子任务外的数据写入子任务对应的待写入数据写入所述备节点的重定向存储区域。
步骤S307,重新执行所述重置处理的数据写入子任务及与所述重置处理的数据写入子任务关联的数据同步子任务。
步骤S308,将所述重定向存储区域的数据写入所述备节点以释放所述重定向存储区域的空间。
本实施例与前述实施例的区别在于步骤S304至步骤S307,该实施例的场景是多个数据同步子任务及其关联的数据写入子任务同步进行的时候,将可能导致重定向存储区域不足。在重定向存储区域不足这个事件点,进行如下的处理:设置一些设定要求例如通过一些权衡策略,如进度,资源占用等综合情况进行决策,决策出哪个数据同步子任务将最晚完成,这个时候对这个数据同步子任务进行重置处理,即复位该数据同步子任务的同步,释放该数据同步子任务对应的重定向存储区域,重新开始同步。释放出来的重定向存储区域继续供各个数据写入子任务使用。这样保证即使设置重定向存储区域为一个数据写入子任务所需的空间,系统一直处于v_max的业务量的情况下,也能够保证数据同步和数据写入能够最终完成。
根据本发明实施例提供的一种数据存储方法,在备节点数据同步期间,通过将写入重定向存储区域的待写入数据划分成多个数据写入子任务分别执行,可以减少对重定向存储区域的需求,提高重定向存储区域的利用效率;并根据设定要求对同时执行的多个数据同步子任务及其关联的数据写入子任务进行筛选,释放部分数据同步子任务对应的重定向存储区域,以保证数据同步和数据写入的顺利完成。
图5为本发明一种数据存储装置的一个实施例的结构示意图。如图5所示,该装置1000包括:
获取单元11,用于当接收到对分布式存储系统中备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据。
在分布式存储系统中,写入主节点的数据会同时复制到备节点,备节点存储数据的位置也与主节点存储数据的位置对应,但当主节点和备节点需要进行一项优先级更高的任务时,例如节点宕机或者网络异常等故障,导致了主、备节点间的状态不一致,备节点丢失部分业务数据,备节点向主节点进行同步请求,但是在同步期间,系统不会停止数据的写入,此时,对于针对数据写入的新业务,主节点可以直接写入存储位置,但是备节点由于缺失了故障期间丢失的业务数据,为了保证同步业务执行序列,需要将新业务暂时存放在重定向存储区域。因此,当接收到对备节点的重定向存储区域的数据写入请求时,获取单元11获取该数据写入请求包含的待写入数据,对该数据写入请求进行特殊处理。该重定向存储区域是在备节点已有存储空间外系统另外设定的存储空间,该重定向存储区域的大小一般大于等于同时执行的一个或多个数据写入子任务对应的待写入数据的大小。
第一划分单元12,用于将所述待写入数据划分成至少一个数据写入子任务,所述至少一个数据写入子任务的每一个数据写入子任务包含相应的所述待写入数据的部分。
如果将待写入数据一次全部写入重定向存储区域,如果某一次待写入数据非常大,会要求系统设置非常大的重定向存储区域空间,但大部分时候是不需要这么大的重定向存储区域空间的,因此造成了资源的浪费。所以,第一划分单元12将待写入数据划分成多个数据写入子任务,每个数据写入子任务包含被分配的待写入数据的部分。
第一执行单元13,用于依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。
数据写入子任务划分好后,第一执行单元13依次执行该数据写入子任务,将数据写入子任务包含的待写入数据的部分写入重定向存储区域,直至完成所有数据写入子任务,从而将整个待写入数据写入了重定向存储区域。
根据本发明实施例提供的一种数据存储装置,通过将写入重定向存储区域的待写入数据划分成多个数据写入子任务分别执行,可以减少对重定向存储区域的需求,提高重定向存储区域的利用效率。
图6为本发明一种数据存储装置的另一个实施例的结构示意图。如图6所示,该装置2000包括:
第二划分单元21,用于接收对分布式存储系统中备节点的数据同步请求时,将所述数据同步请求划分成至少一个数据同步子任务。
在分布式存储系统中,写入主节点的数据会同时复制到备节点,备节点存储数据的位置也与主节点存储数据的位置对应,但当节点宕机或者网络异常等故障,导致了主、备节点间的状态不一致,备节点丢失部分业务数据,备节点会向主节点发送数据同步请求。第二划分单元21一般会将数据同步请求划分成多个数据同步子任务,例如,如图1所示,按照备节点包括三个存储区域,会将数据同步请求划分成三个子任务。
获取单元22,用于当接收到对所述备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据。
在同步期间,系统不会停止数据的写入,此时,对于针对数据写入的新业务,主节点可以直接写入存储位置,但是备节点由于缺失了故障期间丢失的业务数据,为了保证同步业务执行序列,需要将新业务暂时存放在重定向存储区域。因此,当接收到对备节点的重定向存储区域的数据写入请求时,获取单元22获取该数据写入请求包含的待写入数据,对该数据写入请求进行特殊处理。该重定向存储区域是在备节点已有存储空间外系统另外设定的存储空间。
第一划分单元23,用于根据所述数据同步请求的划分,将所述待写入数据划分成与所述至少一个数据同步子任务关联的至少一个数据写入子任务,所述至少一个数据写入子任务的每一个数据写入子任务包含相应的所述待写入数据的部分。
由于是在数据同步期间将系统写入的数据写入重定向区域,所以以数据同步为主导,第一划分单元23针对一个或多个同时执行的数据同步子任务设置相应数目的重定向区域,并将待写入数据划分成多个与数据同步子任务关联的数据写入子任务,例如一个数据同步子任务对应一个数据写入子任务,每个数据写入子任务包含相应的待写入数据的部分,设置重定向存储区域的大小一般大于等于同时执行的一个或多个数据写入子任务对应的待写入数据的大小。
第一执行单元24,用于依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。
第一执行单元24包括:
第二执行单元241,用于依次执行所述至少一个数据同步子任务。
第二执行单元241依次执行数据同步子任务可以是依次一个一个的执行数据同步子任务,也可以是先将数据同步子任务分组,依次一组一组的执行数据同步子任务。
第一写入单元242,用于按照所述至少一个数据同步子任务的执行顺序,将与所述至少一个数据同步子任务关联的所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。
第一写入单元242按照一个或一组数据同步子任务的执行顺序,将与该一个或一组数据同步子任务关联的一个或多个数据写入子任务对应的待写入数据的部分写入重定向存储区域。
第三写入单元25,用于将所述重定向存储区域的数据写入所述备节点以释放所述重定向存储区域的空间。
当一次执行的数据同步子任务完成后,需要回放重定向存储区域的数据,即第三写入单元25在备节点中重新执行一次重定向存储区域中的数据的写入,这样就能够达到与主节点存储的数据一致的目的,并能够释放重定向存储区域的空间,以便后面的数据写入子任务的执行。
采用上面的数据存储装置,假设备节点的数据同步任务分割成n份,同步时间为t,单位时间内的数据写入业务量为v,单位时间内最大数据写入业务量为v_max。如果不采用本方案,备节点需要预留v_max*t的空间,而采用本方案,该重定向存储区域大小最少只需要v_max*t/n。
根据本发明实施例提供的一种数据存储装置,在备节点数据同步期间,通过将写入重定向存储区域的待写入数据划分成多个数据写入子任务分别执行,可以减少对重定向存储区域的需求,提高重定向存储区域的利用效率。
图7为本发明一种数据存储装置的又一个实施例的结构示意图。如图7所示,该装置3000包括:
第二划分单元31,用于接收对分布式存储系统中备节点的数据同步请求时,将所述数据同步请求划分成至少一个数据同步子任务。
获取单元32,用于当接收到对所述备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据。
第一划分单元33,用于根据所述数据同步请求的划分,将所述待写入数据划分成与所述至少一个数据同步子任务关联的至少一个数据写入子任务,所述至少一个数据写入子任务的每一个数据写入子任务包含相应的所述待写入数据的部分。
第一执行单元34,用于依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。
第一执行单元34包括:
第二执行单元341,用于依次执行所述至少一个数据同步子任务。
第一写入单元342,用于按照所述至少一个数据同步子任务的执行顺序,将与所述至少一个数据同步子任务关联的所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域。
第一写入单元342包括:
筛选单元00,用于在所述备节点中同时执行至少两个所述数据同步子任务时,根据设定要求从与所述至少两个数据同步子任务关联的至少两个所述数据写入子任务中筛选出进行重置处理的数据写入子任务。
释放单元01,用于释放所述重置处理的数据写入子任务对应的所述重定向区域。
第二写入单元02,用于将所述至少两个所述数据写入子任务中除所述重置处理的数据写入子任务外的数据写入子任务对应的待写入数据写入所述备节点的重定向存储区域。
第三执行单元35,用于重新执行所述重置处理的数据写入子任务及与所述重置处理的数据写入子任务关联的数据同步子任务。
第三写入单元36,用于将所述重定向存储区域的数据写入所述备节点以释放所述重定向存储区域的空间。
本实施例与前述实施例的区别在于,该实施例的场景是多个数据同步子任务及其关联的数据写入子任务同步进行的时候,将可能导致重定向存储区域不足。在重定向存储区域不足这个事件点,进行如下的处理:设置一些设定要求例如通过一些权衡策略,如进度,资源占用等综合情况进行决策,决策出哪个数据同步子任务将最晚完成,这个时候对这个数据同步子任务进行重置处理,即复位该数据同步子任务的同步,释放该数据同步子任务对应的重定向存储区域,重新开始同步。释放出来的重定向存储区域继续供各个数据写入子任务使用。这样保证即使设置重定向存储区域为一个数据写入子任务所需的空间,系统一直处于v_max的业务量的情况下,也能够保证数据同步和数据写入能够最终完成。
根据本发明实施例提供的一种数据存储装置,在备节点数据同步期间,通过将写入重定向存储区域的待写入数据划分成多个数据写入子任务分别执行,可以减少对重定向存储区域的需求,提高重定向存储区域的利用效率;并根据设定要求对同时执行的多个数据同步子任务及其关联的数据写入子任务进行筛选,释放部分数据同步子任务对应的重定向存储区域,以保证数据同步和数据写入的顺利完成。
本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (6)
1.一种数据存储方法,其特征在于,包括:
接收备节点的数据同步请求时,将所述数据同步请求划分成至少一个数据同步子任务;
当接收到对分布式存储系统中备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据;
将所述待写入数据划分成至少一个数据写入子任务,所述至少一个数据写入子任务的每一个数据写入子任务包含相应的所述待写入数据的部分;
依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域;
将所述重定向存储区域的数据写入所述备节点以释放所述重定向存储区域的空间;
所述将所述待写入数据划分成至少一个数据写入子任务,具体为:
根据所述数据同步请求的划分,将所述待写入数据划分成与所述至少一个数据同步子任务关联的至少一个数据写入子任务;所述依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域,包括:
依次执行所述至少一个数据同步子任务;
按照所述至少一个数据同步子任务的执行顺序,将与所述至少一个数据同步子任务关联的所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域;
其中,所述重定向存储区域的大小大于等于所述至少一个数据写入子任务对应的待写入数据的大小。
2.如权利要求1所述的方法,其特征在于,所述按照所述至少一个数据同步子任务的执行顺序,将与所述至少一个数据同步子任务关联的所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域,包括:
在所述备节点中同时执行至少两个所述数据同步子任务时,根据设定要求从与所述至少两个数据同步子任务关联的至少两个所述数据写入子任务中筛选出进行重置处理的数据写入子任务,释放所述重置处理的数据写入子任务对应的所述重定向存储区域;
将所述至少两个所述数据写入子任务中除所述重置处理的数据写入子任务外的数据写入子任务对应的待写入数据写入所述备节点的重定向存储区域。
3.如权利要求2所述的方法,其特征在于,所述将所述至少两个所述数据写入子任务中除所述重置处理的数据写入子任务外的数据写入子任务对应的待写入数据写入所述备节点的重定向存储区域之后,还包括:
重新执行所述重置处理的数据写入子任务及与所述重置处理的数据写入子任务关联的数据同步子任务。
4.一种数据存储装置,其特征在于,包括:
第二划分单元,用于接收备节点的数据同步请求时,将所述数据同步请求划分成至少一个数据同步子任务;
获取单元,用于当接收到对分布式存储系统中备节点的重定向存储区域的数据写入请求时,获取所述数据写入请求包含的待写入数据;
第一划分单元,用于将所述待写入数据划分成至少一个数据写入子任务,所述至少一个数据写入子任务的每一个数据写入子任务包含相应的所述待写入数据的部分;
第一执行单元,用于依次执行所述至少一个数据写入子任务,将所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域;
第三写入单元,用于将所述重定向存储区域的数据写入所述备节点以释放所述重定向存储区域的空间;
所述第一划分单元具体用于根据所述数据同步请求的划分,将所述待写入数据划分成与所述至少一个数据同步子任务关联的至少一个数据写入子任务;
所述第一执行单元包括:
第二执行单元,用于依次执行所述至少一个数据同步子任务;
第一写入单元,用于按照所述至少一个数据同步子任务的执行顺序,将与所述至少一个数据同步子任务关联的所述至少一个数据写入子任务对应的待写入数据的部分写入所述重定向存储区域;
其中,所述重定向存储区域的大小大于等于所述至少一个数据写入子任务对应的待写入数据的大小。
5.如权利要求4所述的装置,其特征在于,所述第一写入单元包括:
筛选单元,用于在所述备节点中同时执行至少两个所述数据同步子任务时,根据设定要求从与所述至少两个数据同步子任务关联的至少两个所述数据写入子任务中筛选出进行重置处理的数据写入子任务;
释放单元,用于释放所述重置处理的数据写入子任务对应的所述重定向存储区域;
第二写入单元,用于将所述至少两个所述数据写入子任务中除所述重置处理的数据写入子任务外的数据写入子任务对应的待写入数据写入所述备节点的重定向存储区域。
6.如权利要求5所述的装置,其特征在于,还包括:
第三执行单元,用于重新执行所述重置处理的数据写入子任务及与所述重置处理的数据写入子任务关联的数据同步子任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310515649.2A CN104580324B (zh) | 2013-10-28 | 2013-10-28 | 一种数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310515649.2A CN104580324B (zh) | 2013-10-28 | 2013-10-28 | 一种数据存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104580324A CN104580324A (zh) | 2015-04-29 |
CN104580324B true CN104580324B (zh) | 2018-06-26 |
Family
ID=53095496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310515649.2A Active CN104580324B (zh) | 2013-10-28 | 2013-10-28 | 一种数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104580324B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017113276A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 分布式存储系统中的数据重建的方法、装置和系统 |
CN109358812A (zh) * | 2018-10-09 | 2019-02-19 | 郑州云海信息技术有限公司 | 一种集群系统中io请求的处理方法、装置及相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025758A (zh) * | 2009-09-18 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 分布式系统中数据副本的恢复方法、装置和系统 |
CN103365740A (zh) * | 2012-04-06 | 2013-10-23 | 腾讯科技(深圳)有限公司 | 一种数据冷备方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8055943B2 (en) * | 2009-04-24 | 2011-11-08 | International Business Machines Corporation | Synchronous and asynchronous continuous data protection |
-
2013
- 2013-10-28 CN CN201310515649.2A patent/CN104580324B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025758A (zh) * | 2009-09-18 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 分布式系统中数据副本的恢复方法、装置和系统 |
CN103365740A (zh) * | 2012-04-06 | 2013-10-23 | 腾讯科技(深圳)有限公司 | 一种数据冷备方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104580324A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI755417B (zh) | 計算任務分配方法、流計算任務的執行方法、控制伺服器、流計算中心伺服器集群、流計算系統及異地多活系統 | |
CN103875229B (zh) | 异步复制方法、装置与系统 | |
CN108200124B (zh) | 一种高可用应用程序架构及构建方法 | |
WO2019001017A1 (zh) | 集群间数据迁移方法、系统、服务器及计算机存储介质 | |
CN106302702A (zh) | 数据的分片存储方法、装置及系统 | |
CN104994168A (zh) | 分布式存储方法及分布式存储系统 | |
CN102867035B (zh) | 一种分布式文件系统集群高可用方法和装置 | |
CN106406983A (zh) | 一种集群中的任务调度方法及装置 | |
JP6450330B2 (ja) | 並列計算処理装置および並列計算処理方法 | |
JP4479930B2 (ja) | ノードシステム、サーバ切換え方法、サーバ装置、データ引き継ぎ方法、およびプログラム | |
CN106445741A (zh) | 一种基于ceph实现oracle数据库容灾备份方法 | |
CN103634379A (zh) | 一种分布式存储空间的管理方法和分布式存储系统 | |
US9846733B2 (en) | Generating database sequences in a replicated database environment | |
CN104580324B (zh) | 一种数据存储方法及装置 | |
CN106897299A (zh) | 一种数据库访问方法及装置 | |
CN104040512A (zh) | 存储空间的处理方法、装置及非易失性计算机可读存储介质 | |
CN109062681A (zh) | 一种周期性循环任务的执行方法、系统、装置及存储介质 | |
CN104461705B (zh) | 一种业务访问的方法及存储控制器、集群存储系统 | |
CN105827678A (zh) | 一种基于高可用架构下的通信方法和节点 | |
CN107391303B (zh) | 数据处理方法、装置、系统、服务器及计算机存储介质 | |
CN111414240B (zh) | 内核态进程复制方法以及装置、容器扩容方法以及装置 | |
CN104407806A (zh) | 独立磁盘冗余阵列组硬盘信息的修改方法和装置 | |
CN115905155A (zh) | 一种逻辑日志同步的并行传输的方法 | |
CN114390052B (zh) | 一种基于vrrp协议实现etcd双节点高可用方法和装置 | |
CN108984105B (zh) | 对网络存储设备中的复制任务进行分配的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |