本发明专利技术实施例提供一种副本存储装置及副本存储方法。本发明专利技术实施例提供的副本存储装置及副本存储方法,通过为主副本和从副本划分相互独立的主副本空间和从副本空间,并以主副本空间和从副本空间为界进行数据的读写等操作:通过对主副本写请求和从副本写请求进行区别处理,减少了写请求的处理时延,提高了分布式系统的写能力;通过使用非易失性存储介质上的不同文件分别存储主、从副本写请求所携带的记录,使主副本和从副本在存储上可以分离,减少了查询主副本记录时需要查询的文件数量和大小,提高了分布式系统的读能力,同时也使得在主、从副本范围变更时,减少了需要过滤的数据量,降低了分布式系统的资源消耗。
【技术实现步骤摘要】
本专利技术实施例涉及计算机技术,尤其涉及一种。
技术介绍
分布式系统8781:6111)是基于网络建立的软件系统。如何更好地利用每个分布式节点的性能,合理设计节点间交互模式,提高系统整体的读写能力、可用性与可扩展性,并要求系统有一定的容灾能力,一直是分布式系统研究的热点。 在分布式系统中会对数据进行分片或者分区,在考虑容灾的场景下,需要对数据片或数据区进行多副本备份,例如,客户端发送的写请求(1%仏!'写请求)先被发送到主副本(130610,然后,主副本与从副本(31^6)进行数据的同步或异步备份。在现有技术的主、从副本混合策略的节点(价)(16)中,在同一个节点上可以存储不同数据片的主副本和从副本。 现有技术的分布式系统整体的读写能力不高、资源消耗较大。
技术实现思路
本专利技术实施例提供一种,以提高分布式系统整体的写能力和读能力,降低了分布式系统的资源消耗。 第一方面,本专利技术实施例提供一种副本存储装置,所述装置包括: 分发模块; 主副本空间,所述主副本空间包括第一内存表和第一副本文件;所述第一内存表,用于存储所述主副本写请求所携带的记录,并在所述第一内存表中所有记录所占用的内存大小达到第一预设值时,将所述第一内存表中所有记录存储到所述第一副本文件中; 从副本空间,所述从副本空间包括第二内存表和第二副本文件;所述第二内存表,用于存储所述从副本写请求所携带的记录,并在所述第二内存表中所有记录所占用的内存大小达到第二预设值时,将所述第二内存表中所有记录存储到所述第二副本文件中; 其中,所述分发模块接收发送节点发送的写请求,并判定所述写请求的类型:若判定所述写请求为主副本写请求,则将所述主副本写请求提交给所述主副本空间的第一内存表;若判定所述写请求为从副本写请求,则将所述从副本写请求提交给所述从副本空间的第二内存表。 根据第一方面,在第一方面的第一种可能的实现方式中,所述主副本空间的第一内存表的数目至少为一个;和/或,所述从副本空间的第二内存表的数目至少为一个。 根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述主副本空间还包括快速选择模块;所述快速选择模块,用于接收所述分发模块提交的所述主副本写请求,根据所述主副本写请求所携带的记录的主键,从各所述第一内存表中确定用于存储所述主副本写请求所携带的记录的目标第一内存表,并将所述主副本写请求提交到所述目标第一内存表; 所述从副本空间还包括队列模块;所述队列模块,用于接收所述分发模块提交的所述从副本写请求,将所述从副本写请求插入队列,当所述队列达到预设的队列阈值时,将所述队列中的所有从副本写请求提交到所述第二内存表。 根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述队列模块,还用于在将所述从副本写请求插入队列之后,向所述发送节点发送从副本写请求响应。 根据第一方面、第一方面的第一种至第三种可能的实现方式,在第四种可能的实现方式中,所述第一内存表,还用于在存储所述主副本写请求所携带的记录之后,向预先设定的副本存储节点发送携带所述记录的从副本写请求。 第二方面,本专利技术实施例提供一种副本存储方法,所述方法包括: 应用于副本存储装置,其中,所述副本存储装置包括分发模块、主副本空间和从副本空间; 所述主副本空间包括第一内存表和第一副本文件;所述第一内存表,用于存储所述主副本写请求所携带的记录,并在所述第一内存表中所有记录所占用的内存大小达到第一预设值时,将所述第一内存表中所有记录存储到所述第一副本文件中; 所述从副本空间包括第二内存表和第二副本文件;所述第二内存表,用于存储所述从副本写请求所携带的记录,并在所述第二内存表中所有记录所占用的内存大小达到第二预设值时,将所述第二内存表中所有记录存储到所述第二副本文件中; 所述副本存储方法包括: 所述分发模块接收发送节点发送的写请求,并判定所述写请求的类型: 若判定所述写请求为主副本写请求,则将所述主副本写请求提交给所述主副本空间的第一内存表; 若判定所述写请求为从副本写请求,则将所述从副本写请求提交给所述从副本空间的第二内存表。 根据第二方面,在第二方面的第一种可能的实现方式中,所述主副本空间的第一内存表的数目至少为一个;和/或,所述从副本空间的第二内存表的数目至少为一个。 根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述主副本空间还包括快速选择模块;所述从副本空间还包括队列模块; 所述将所述主副本写请求提交给所述主副本空间的第一内存表,包括: 所述分发模块将所述主副本写请求提交给所述快速选择模块; 所述快速选择模块,接收所述分发模块提交的所述主副本写请求,根据所述主副本写请求所携带的记录的主键,从所述主副本空间的各所述第一内存表中确定用于存储所述主副本写请求所携带的记录的目标第一内存表,并将所述主副本写请求提交到所述目标第一内存表; 所述将所述从副本写请求提交给所述从副本空间的第二内存表,包括: 所述分发模块将所述主副本写请求提交给所述队列模块; 所述队列模块,接收所述分发模块提交的所述从副本写请求,将所述从副本写请求插入队列,当所述队列达到预设的队列阈值时,将所述队列中的所有从副本写请求提交到所述第二内存表。 根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述队列模块接收所述分发模块提交的所述从副本写请求,并将所述从副本写请求插入队列之后,所述方法还包括: 所述队列模块向所述发送节点发送从副本写请求响应。 根据第二方面、第二方面的第一种至第三种可能的实现方式,在第四种可能的实现方式中,所述第一内存表存储所述主副本写请求所携带的记录之后,所述方法还包括: 所述第一内存表向预先设定的副本存储节点发送携带所述记录的从副本写请求。 本专利技术实施例提供的,通过为主副本和从副本划分相互独立的主副本空间和从副本空间,并以主副本空间和从副本空间为界进行数据的读写等操作:通过对主副本写请求和从副本写请求进行区别处理,减少了写请求的处理时延,提高了分布式系统的写能力;通过使用非易失性存储介质上的不同文件分别存储主、从副本写请求所携带的记录,使主副本和从副本在存储上可以分离,减少了查询主副本记录时需要查询的文件数量和大小,提高了分布式系统的读能力,同时也使得在主、从副本范围 变更时,减少了需要过滤的数据量,降低了分布式系统的资源消耗。 【附图说明】 为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 图1为本专利技术实施例提供的副本存储装置的结构示意图; 图2为本专利技术实施例提供的副本存储装置的另一结构示意图; 图3为本专利技术实施例提供的副本存储装置的又一结构示意图; 图4为本专利技术实施例提供的副本存储方法的流程图; 图5为本专利技术实施例提供的副本存储方法的另一流程图; 图6为本专利技术实施例提供的副本存储方法的信令流程图。 【具体实施方式】 为使本专利技术实施例的目的、本文档来自技高网...
【技术保护点】
一种副本存储装置,其特征在于,包括:分发模块;主副本空间,所述主副本空间包括第一内存表和第一副本文件;所述第一内存表,用于存储所述主副本写请求所携带的记录,并在所述第一内存表中所有记录所占用的内存大小达到第一预设值时,将所述第一内存表中所有记录存储到所述第一副本文件中;从副本空间,所述从副本空间包括第二内存表和第二副本文件;所述第二内存表,用于存储所述从副本写请求所携带的记录,并在所述第二内存表中所有记录所占用的内存大小达到第二预设值时,将所述第二内存表中所有记录存储到所述第二副本文件中;其中,所述分发模块接收发送节点发送的写请求,并判定所述写请求的类型:若判定所述写请求为主副本写请求,则将所述主副本写请求提交给所述主副本空间的第一内存表;若判定所述写请求为从副本写请求,则将所述从副本写请求提交给所述从副本空间的第二内存表。
【技术特征摘要】
1.一种副本存储装置,其特征在于,包括: 分发模块; 主副本空间,所述主副本空间包括第一内存表和第一副本文件;所述第一内存表,用于存储所述主副本写请求所携带的记录,并在所述第一内存表中所有记录所占用的内存大小达到第一预设值时,将所述第一内存表中所有记录存储到所述第一副本文件中; 从副本空间,所述从副本空间包括第二内存表和第二副本文件;所述第二内存表,用于存储所述从副本写请求所携带的记录,并在所述第二内存表中所有记录所占用的内存大小达到第二预设值时,将所述第二内存表中所有记录存储到所述第二副本文件中; 其中,所述分发模块接收发送节点发送的写请求,并判定所述写请求的类型:若判定所述写请求为主副本写请求,则将所述主副本写请求提交给所述主副本空间的第一内存表;若判定所述写请求为从副本写请求,则将所述从副本写请求提交给所述从副本空间的第二内存表。2.根据权利要求1所述的装置,其特征在于,所述主副本空间的第一内存表的数目至少为一个;和/或,所述从副本空间的第二内存表的数目至少为一个。3.根据权利要求2所述的装置,其特征在于,所述主副本空间还包括快速选择模块;所述快速选择模块,用于接收所述分发模块提交的所述主副本写请求,根据所述主副本写请求所携带的记录的主键,从各所述第一内存表中确定用于存储所述主副本写请求所携带的记录的目标第一内存表,并将所述主副本写请求提交到所述目标第一内存表; 所述从副本空间还包括队列模块;所述队列模块,用于接收所述分发模块提交的所述从副本写请求,将所述从副本写请求插入队列,当所述队列达到预设的队列阈值时,将所述队列中的所有从副本写请求提交到所述第二内存表。4.根据权利要求3所述的装置,其特征在于,所述队列模块,还用于在将所述从副本写请求插入队列之后,向所述发送节点发送从副本写请求响应。5.根据权利要求1-4中任一项所述的装置,其特征在于,所述第一内存表,还用于在存储所述主副本写请求所携带的记录之后,向预先设定的副本存储节点发送携带所述记录的从副本写请求。6.一种副本存储方法,其特征在于,应用于副本存储装置,其中,所述副本存储装置包括分发模块、主副本空间和从副本空间; 所述主副本空间包括第一内存表和第一副本文件;所述第一内存表,用于存储所述主副本写请求所...
【专利技术属性】
技术研发人员:梁晓豪,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。