CN104461768A - 副本存储装置及副本存储方法 - Google Patents
副本存储装置及副本存储方法 Download PDFInfo
- Publication number
- CN104461768A CN104461768A CN201310432857.6A CN201310432857A CN104461768A CN 104461768 A CN104461768 A CN 104461768A CN 201310432857 A CN201310432857 A CN 201310432857A CN 104461768 A CN104461768 A CN 104461768A
- Authority
- CN
- China
- Prior art keywords
- copy
- write request
- memory table
- space
- memory
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2087—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
Abstract
本发明实施例提供一种副本存储装置及副本存储方法。本发明实施例提供的副本存储装置及副本存储方法,通过为主副本和从副本划分相互独立的主副本空间和从副本空间,并以主副本空间和从副本空间为界进行数据的读写等操作:通过对主副本写请求和从副本写请求进行区别处理,减少了写请求的处理时延,提高了分布式系统的写能力;通过使用非易失性存储介质上的不同文件分别存储主、从副本写请求所携带的记录,使主副本和从副本在存储上可以分离,减少了查询主副本记录时需要查询的文件数量和大小,提高了分布式系统的读能力,同时也使得在主、从副本范围变更时,减少了需要过滤的数据量,降低了分布式系统的资源消耗。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种副本存储装置及副本存储方法。
背景技术
分布式系统(distributed system)是基于网络建立的软件系统。如何更好地利用每个分布式节点的性能,合理设计节点间交互模式,提高系统整体的读写能力、可用性与可扩展性,并要求系统有一定的容灾能力,一直是分布式系统研究的热点。
在分布式系统中会对数据进行分片或者分区,在考虑容灾的场景下,需要对数据片或数据区进行多副本备份,例如,客户端发送的写请求(Master写请求)先被发送到主副本(Master),然后,主副本与从副本(Slave)进行数据的同步或异步备份。在现有技术的主、从副本混合策略的节点(Node)中,在同一个节点上可以存储不同数据片的主副本和从副本。
现有技术的分布式系统整体的读写能力不高、资源消耗较大。
发明内容
本发明实施例提供一种副本存储装置及副本存储方法,以提高分布式系统整体的写能力和读能力,降低了分布式系统的资源消耗。
第一方面,本发明实施例提供一种副本存储装置,所述装置包括:
分发模块;
主副本空间,所述主副本空间包括第一内存表和第一副本文件;所述第一内存表,用于存储所述主副本写请求所携带的记录,并在所述第一内存表中所有记录所占用的内存大小达到第一预设值时,将所述第一内存表中所有记录存储到所述第一副本文件中;
从副本空间,所述从副本空间包括第二内存表和第二副本文件;所述第二内存表,用于存储所述从副本写请求所携带的记录,并在所述第二内存表中所有记录所占用的内存大小达到第二预设值时,将所述第二内存表中所有记录存储到所述第二副本文件中;
其中,所述分发模块接收发送节点发送的写请求,并判定所述写请求的类型:若判定所述写请求为主副本写请求,则将所述主副本写请求提交给所述主副本空间的第一内存表;若判定所述写请求为从副本写请求,则将所述从副本写请求提交给所述从副本空间的第二内存表。
根据第一方面,在第一方面的第一种可能的实现方式中,所述主副本空间的第一内存表的数目至少为一个;和/或,所述从副本空间的第二内存表的数目至少为一个。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述主副本空间还包括快速选择模块;所述快速选择模块,用于接收所述分发模块提交的所述主副本写请求,根据所述主副本写请求所携带的记录的主键,从各所述第一内存表中确定用于存储所述主副本写请求所携带的记录的目标第一内存表,并将所述主副本写请求提交到所述目标第一内存表;
所述从副本空间还包括队列模块;所述队列模块,用于接收所述分发模块提交的所述从副本写请求,将所述从副本写请求插入队列,当所述队列达到预设的队列阈值时,将所述队列中的所有从副本写请求提交到所述第二内存表。
根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述队列模块,还用于在将所述从副本写请求插入队列之后,向所述发送节点发送从副本写请求响应。
根据第一方面、第一方面的第一种至第三种可能的实现方式,在第四种可能的实现方式中,所述第一内存表,还用于在存储所述主副本写请求所携带的记录之后,向预先设定的副本存储节点发送携带所述记录的从副本写请求。
第二方面,本发明实施例提供一种副本存储方法,所述方法包括:
应用于副本存储装置,其中,所述副本存储装置包括分发模块、主副本空间和从副本空间;
所述主副本空间包括第一内存表和第一副本文件;所述第一内存表,用于存储所述主副本写请求所携带的记录,并在所述第一内存表中所有记录所占用的内存大小达到第一预设值时,将所述第一内存表中所有记录存储到所述第一副本文件中;
所述从副本空间包括第二内存表和第二副本文件;所述第二内存表,用于存储所述从副本写请求所携带的记录,并在所述第二内存表中所有记录所占用的内存大小达到第二预设值时,将所述第二内存表中所有记录存储到所述第二副本文件中;
所述副本存储方法包括:
所述分发模块接收发送节点发送的写请求,并判定所述写请求的类型:
若判定所述写请求为主副本写请求,则将所述主副本写请求提交给所述主副本空间的第一内存表;
若判定所述写请求为从副本写请求,则将所述从副本写请求提交给所述从副本空间的第二内存表。
根据第二方面,在第二方面的第一种可能的实现方式中,所述主副本空间的第一内存表的数目至少为一个;和/或,所述从副本空间的第二内存表的数目至少为一个。
根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述主副本空间还包括快速选择模块;所述从副本空间还包括队列模块;
所述将所述主副本写请求提交给所述主副本空间的第一内存表,包括:
所述分发模块将所述主副本写请求提交给所述快速选择模块;
所述快速选择模块,接收所述分发模块提交的所述主副本写请求,根据所述主副本写请求所携带的记录的主键,从所述主副本空间的各所述第一内存表中确定用于存储所述主副本写请求所携带的记录的目标第一内存表,并将所述主副本写请求提交到所述目标第一内存表;
所述将所述从副本写请求提交给所述从副本空间的第二内存表,包括:
所述分发模块将所述主副本写请求提交给所述队列模块;
所述队列模块,接收所述分发模块提交的所述从副本写请求,将所述从副本写请求插入队列,当所述队列达到预设的队列阈值时,将所述队列中的所有从副本写请求提交到所述第二内存表。
根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述队列模块接收所述分发模块提交的所述从副本写请求,并将所述从副本写请求插入队列之后,所述方法还包括:
所述队列模块向所述发送节点发送从副本写请求响应。
根据第二方面、第二方面的第一种至第三种可能的实现方式,在第四种可能的实现方式中,所述第一内存表存储所述主副本写请求所携带的记录之后,所述方法还包括:
所述第一内存表向预先设定的副本存储节点发送携带所述记录的从副本写请求。
本发明实施例提供的副本存储装置及副本存储方法,通过为主副本和从副本划分相互独立的主副本空间和从副本空间,并以主副本空间和从副本空间为界进行数据的读写等操作:通过对主副本写请求和从副本写请求进行区别处理,减少了写请求的处理时延,提高了分布式系统的写能力;通过使用非易失性存储介质上的不同文件分别存储主、从副本写请求所携带的记录,使主副本和从副本在存储上可以分离,减少了查询主副本记录时需要查询的文件数量和大小,提高了分布式系统的读能力,同时也使得在主、从副本范围(range)变更时,减少了需要过滤的数据量,降低了分布式系统的资源消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的副本存储装置的结构示意图;
图2为本发明实施例提供的副本存储装置的另一结构示意图;
图3为本发明实施例提供的副本存储装置的又一结构示意图;
图4为本发明实施例提供的副本存储方法的流程图;
图5为本发明实施例提供的副本存储方法的另一流程图;
图6为本发明实施例提供的副本存储方法的信令流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的副本存储装置的结构示意图。如图1所示,本实施例提供的副本存储装置100,包括:分发模块101、主副本空间102及从副本空间103,其中:
主副本空间102,包括第一内存表1021和第一副本文件1022;所述第一内存表1021,用于存储所述主副本写请求所携带的记录,并在所述第一内存表1021中所有记录所占用的内存大小达到第一预设值时,将所述第一内存表1021中所有记录存储到所述第一副本文件1022中;
从副本空间103,包括第二内存表1031和第二副本文件1032;所述第二内存表1031,用于存储所述从副本写请求所携带的记录,并在所述第二内存表1031中所有记录所占用的内存大小达到第二预设值时,将所述第二内存表1031中所有记录存储到所述第二副本文件1032中;
其中,所述分发模块101接收发送节点发送的写请求,并判定所述写请求的类型:若判定所述写请求为主副本写请求,则将所述主副本写请求提交给所述主副本空间102的第一内存表1021;若判定所述写请求为从副本写请求,则将所述从副本写请求提交给所述从副本空间103的第二内存表1031。
具体地,副本存储装置100可用于需要处理海量数据和业务的场景,例如分布式数据库、分布式文件系统或分布式存储系统;副本存储装置100可以是分布式系统中的一个节点或者节点上的功能实体,可以存储不同数据片的主副本和从副本,可以对主副本写请求和从副本写请求进行区别处理,并使用非易失性存储介质上的不同文件分别存储主副本写请求所携带的记录和从副本写请求所携带的记录,所述非易失性存储介质,例如可以是硬盘、磁阵等。如图1所示,副本存储装置100的存储空间被划分为主副本空间102和从副本空间103,所述主副本空间102负责处理所述主副本写请求并存储所述主副本写请求所携带的记录,从副本空间103负责处理所述从副本写请求并存储所述从副本写请求所携带的记录;其中,所述主副本空间102和所述从副本空间103相互区别,相互隔离,例如两者通过目录、文件名或文件属性等方式进行区别。当副本存储装置100的分发模块101接收到发送节点发送的写请求时,首先判定所述写请求的类型,所述写请求的类型可以是主副本写请求或从副本写请求:
若所述分发模块101判定所述写请求为主副本写请求,则将所述主副本写请求提交给所述主副本空间102的第一内存表1021;所述第一内存表1021存储所述主副本写请求所携带的记录;当所述第一内存表1021中存储的所有记录所占用的内存大小达到第一预设值时,则将所述第一内存表1021中所有记录合并转储到非易失性存储介质上的第一副本文件1022中。
若所述分发模块101判定所述写请求为从副本写请求,则将所述从副本写请求提交给所述从副本空间103的第二内存表1031;所述第二内存表1031存储所述从副本写请求所携带的记录;当所述第二内存表1031中存储的所有记录所占用的内存大小达到第二预设值时,则将所述第二内存表1031中所有记录合并转储到非易失性存储介质上的第二副本文件1032中。
本发明实施例提供的副本存储装置,通过为主副本和从副本分别划分独立的存储空间,使用划分的主副本空间和从副本空间分别对主副本写请求和从副本写请求进行区别处理,减少了写请求的处理时延,提高了分布式系统的写能力;通过使用非易失性存储介质上的不同文件分别存储主、从副本写请求所携带的记录,使主副本和从副本在存储上可以分离,减少了查询主副本记录时需要查询的文件数量和大小,提高了分布式系统的读能力,同时也使得在主、从副本范围(range)变更时,减少了需要过滤的数据量,降低了分布式系统的资源消耗。
图2为本发明实施例提供的副本存储装置的另一结构示意图。本实施例基于图1所示实施例来实现。如图2所示,本实施例提供的副本存储装置200,也包括:分发模块101、主副本空间102及从副本空间103。
可选的,所述主副本空间102的第一内存表1021的数目至少为一个;和/或,所述从副本空间103的第二内存表1031的数目至少为一个。
可选的,所述主副本空间102还包括快速选择模块1023;所述快速选择模块1023,用于接收所述分发模块101提交的所述主副本写请求,根据所述主副本写请求所携带的记录的主键,从各所述第一内存表1021中确定用于存储所述主副本写请求所携带的记录的目标第一内存表,并将所述主副本写请求提交到所述目标第一内存表;
所述从副本空间103还包括队列模块1033;所述队列模块1033,用于接收所述分发模块101提交的所述从副本写请求,将所述从副本写请求插入队列,当所述队列达到预设的队列阈值时,将所述队列中的所有从副本写请求提交到所述第二内存表1031。
进一步地,所述队列模块1033,还用于在将所述从副本写请求插入队列之后,向所述发送节点发送从副本写请求响应。
可选的,所述第一内存表1021,还用于在存储所述主副本写请求所携带的记录之后,向预先设定的副本存储节点发送携带所述记录的从副本写请求。
具体地,在一种可选的实现方式中,一个节点中同时可以存在一个或一个以上所述第一内存表1021;主副本空间102的快速选择模块1023接收到所述分发模块101提交的所述主副本写请求后,根据所述主副本写请求所携带的记录的主键计算对应值,并根据所述对应值的对应区间从各所述第一内存表1021中确定用于存储所述主副本写请求所携带的记录的目标第一内存表,并将所述主副本写请求提交到所述目标第一内存表,其中,计算对应值的方式,例如可以是哈希、前缀等方式。实际中,如果需要写入日志(log)文件,例如为了实现容灾等功能,则所述快速选择模块1023在将所述主副本写请求提交到所述目标第一内存表之前,先将所述主副本写请求写入log文件。所述第一内存表1021接收并处理所述快速选择模块1023提交的所述主副本写请求,存储所述主副本写请求所携带的记录;所述第一内存表1021在存储所述主副本写请求所携带的记录之后,根据路由表向预先设定的副本存储节点发送携带所述记录的从副本写请求:当写从副本的模式为同步模式时,等待所述副本存储节点返回的从副本写请求响应,并在接收到所述从副本写请求响应后,向所述发送节点发送主副本写请求响应;当写从副本的模式为异步模式时,不等待所述副本存储节点返回的从副本写请求响应,而是在向所述副本存储节点发送所述从副本写请求后直接向所述发送节点发送主副本写请求响应。
在另一种可选的实现方式中,一个节点中同时可以存在一个或一个以上所述第二内存表1031。从副本空间103的队列模块1033接收到所述分发模块101提交的所述从副本写请求后,判断队列是否达到预设的队列阈值(例如时间或队列大小):若所述队列未达到所述队列阈值,则队列模块1033将所述从副本写请求插入队列,然后向所述发送节点发送从副本写请求响应;若所述队列达到所述队列阈值,则队列模块1033将所述队列切换为空的队列,然后将所述从副本写请求插入所述空的队列,并向所述发送节点发送从副本写请求响应,同时,将所述达到队列阈值的队列中的所有从副本写请求批量提交(合并转储)到所述第二内存表1031。实际中,如果需要写入log文件,例如为了实现容灾等功能,则所述队列模块1033在将所述从副本写请求提交到所述目标第二内存表1031之前,先将所述从副本写请求写入log文件。
本发明实施例提供的副本存储装置,通过为主副本空间分配多个第一内存表,根据主副本写请求所携带的记录的键值从各所述第一内存表中确定目标第一内存表,将主副本写请求提交到确定目标第一内存表,降低了主副本写请求的写入时延;通过在将接收到的从副本写请求插入队列后,就向发送节点返回从副本写请求响应,在队列达到队列阈值时将队列中的所有从副本写请求提交到从副本空间的第二内存表,降低了从副本写请求的写入时延;从而提高了分布式系统的写能力。
图3为本发明实施例提供的副本存储装置的又一结构示意图。本实施例基于图2所示实施例来实现。如图3所示,本实施例提供的副本存储装置300,也包括:分发模块101、主副本空间102及从副本空间103。
可选的,所述副本存储装置300还包括文件管理模块301;所述文件管理模块301用于接收内存表提交的存储请求,判断存储请求中携带的指示信息:若确定该存储请求为所述第一内存表1021提交的存储请求,则将所述第一内存表1021中所有记录合并转储到非易失性存储介质上的第一副本文件1022中;若确定该存储请求为所述第二内存表1031提交,则将所述第二内存表1031中所有记录合并转储到非易失性存储介质上的第二副本文件1032中。
具体地,当所述第一内存表1021中存储的所有记录所占用的内存大小达到第一预设值时,则向所述文件管理模块301提交存储请求;所述文件管理模块301判断确定该存储请求为所述第一内存表1021提交的存储请求时,将所述第一内存表1021中所有记录合并转储到非易失性存储介质上的第一副本文件1022中。
当所述第二内存表1031中存储的所有记录所占用的内存大小达到第二预设值时,则向所述文件管理模块301提交存储请求;所述文件管理模块301判断确定该存储请求为所述第二内存表1031提交的存储请求时,将所述第一内存表1031中所有记录合并转储到非易失性存储介质上的第一副本文件1032中。
进一步,所述文件管理模块301,还用于处理主副本空间及从副本空间的文件合并请求。实际中,所述文件管理模块301可以包括主副本空间文件请求队列、从副本空间文件请求队列及请求调度单元:主副本文件合并请求提交到主副本空间文件请求队列,从副本文件合并请求提交到从副本空间文件请求队列,请求调度单元根据优先级等条件来触发执行文件合并请求。请求调度算法,例如可以是:每次请求调度单元都先查询主副本空间文件请求队列(具有高优先级),在其无请求的条件下,才调度从副本空间文件请求队列的文件合并请求,其中,主副本空间的文件操作优先级大于从副本空间。
图4为本发明实施例提供的副本存储方法的流程图。所述方法可以应用于副本存储装置,其中,所述副本存储装置包括分发模块、主副本空间和从副本空间;所述主副本空间包括第一内存表和第一副本文件;所述第一内存表,用于存储所述主副本写请求所携带的记录,并在所述第一内存表中所有记录所占用的内存大小达到第一预设值时,将所述第一内存表中所有记录存储到所述第一副本文件中;所述从副本空间包括第二内存表和第二副本文件;所述第二内存表,用于存储所述从副本写请求所携带的记录,并在所述第二内存表中所有记录所占用的内存大小达到第二预设值时,将所述第二内存表中所有记录存储到所述第二副本文件中。所述方法可用于需要处理海量数据和业务的场景,例如分布式数据库、分布式文件系统或分布式存储系统。如图4所示,所述方法包括:
401、分发模块接收发送节点发送的写请求。
402、分发模块判定所述写请求的类型。
403、若判定所述写请求为主副本写请求,则将所述主副本写请求提交给所述主副本空间的第一内存表。
404、若判定所述写请求为从副本写请求,则将所述从副本写请求提交给所述从副本空间的第二内存表。
可选的,所述主副本空间的第一内存表的数目至少为一个;和/或,所述从副本空间的第二内存表的数目至少为一个。
进一步,所述主副本空间还包括快速选择模块;所述将所述主副本写请求提交给所述主副本空间的第一内存表,包括:所述分发模块将所述主副本写请求提交给所述快速选择模块;所述快速选择模块,接收所述分发模块提交的所述主副本写请求,根据所述主副本写请求所携带的记录的主键,从所述主副本空间的各所述第一内存表中确定用于存储所述主副本写请求所携带的记录的目标第一内存表,并将所述主副本写请求提交到所述目标第一内存表。
所述从副本空间还包括队列模块;所述将所述从副本写请求提交给所述从副本空间的第二内存表,包括:所述分发模块将所述主副本写请求提交给所述队列模块;所述队列模块,接收所述分发模块提交的所述从副本写请求,将所述从副本写请求插入队列,当所述队列达到预设的队列阈值时,将所述队列中的所有从副本写请求提交到所述第二内存表。
进一步,所述队列模块接收所述分发模块提交的所述从副本写请求,并将所述从副本写请求插入队列之后,所述方法还包括:所述队列模块向所述发送节点发送从副本写请求响应。
可选的,所述第一内存表存储所述主副本写请求所携带的记录之后,所述方法还包括:所述第一内存表向预先设定的副本存储节点发送携带所述记录的从副本写请求。
本发明实施例提供的副本存储方法,通过为主副本和从副本分别划分独立的存储空间,使用划分的主副本空间和从副本空间分别对主副本写请求和从副本写请求进行区别处理,减少了写请求的处理时延,提高了分布式系统的写能力;通过使用非易失性存储介质上的不同文件分别存储主、从副本写请求所携带的记录,使主副本和从副本在存储上可以分离,减少了查询主副本记录时需要查询的文件数量和大小,提高了分布式系统的读能力,同时也使得在主、从副本范围变更时,减少了需要过滤的数据量,降低了分布式系统的资源消耗。
图5为本发明实施例提供的副本存储方法的另一流程图。本实施例基于图4所示实施例实现,执行主体为副本存储装置。如图5所示,所述方法包括:
501、分发模块接收发送节点发送的写请求。
502、判定写请求的类型:若判定所述写请求的类型为主副本写请求,则转到步骤503;若判定写请求为从副本写请求,则转到步骤506。
503、根据主副本写请求所携带的记录的主键计算对应值。
504、根据对应值的对应区间从各所述第一内存表中确定目标第一内存表,并将所述主副本写请求提交到目标第一内存表。
505、根据路由表向预先设定的副本存储节点发送携带所述记录的从副本写请求;当写从副本的模式为同步模式时,等待所述副本存储节点返回的从副本写请求响应(异步模式无需等待);转到步骤509。
506、判定队列是否达到队列阈值:若是,则转到步骤507;若否,则转到步骤508。
507、切换队列。
508、将从副本写请求插入队列(将达到队列阈值的队列中的所有从副本写请求批量提交到第二内存表)。
509、向发送节点发送主副本写请求响应。
图6为本发明实施例提供的副本存储方法的信令流程图。所述方法由发送节点、第一副本存储节点和第二副本存储节点配合执行。其中,所述第一副本存储节点和第二副本存储节点可以采用本发明实施例所提供的任意副本存储装置。如图6所示,所述方法包括:
601、发送节点向第一副本存储节点发送主副本写请求。
602、第一副本存储节点接收所述写请求,并判定所述写请求的类型为主副本写请求;根据所述主副本写请求所携带的记录的主键,从第一副本存储节点的主副本空间的各第一内存表中确定用于存储所述主副本写请求所携带的记录的目标第一内存表,并将所述主副本写请求提交到所述目标第一内存表。
603、第一副本存储节点向预先设定的第二副本存储节点发送携带所述记录的从副本写请求。
604、第二副本存储节点接收所述写请求,判定所述写请求的类型为从副本写请求;判断队列是否达到预设的队列阈值:若未达到所述队列阈值,则将所述从副本写请求插入所述队列;若达到所述队列阈值则将所述队列切换为空的队列,然后将所述从副本写请求插入所述空的队列。
605、第二副本存储节点向第一副本存储节点发送从副本写请求响应。同时,将所述达到队列阈值的队列中的所有从副本写请求批量提交(合并转储)到所述第二内存表。
606、第一副本存储节点向发送节点发送主副本写请求响应。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种副本存储装置,其特征在于,包括:
分发模块;
主副本空间,所述主副本空间包括第一内存表和第一副本文件;所述第一内存表,用于存储所述主副本写请求所携带的记录,并在所述第一内存表中所有记录所占用的内存大小达到第一预设值时,将所述第一内存表中所有记录存储到所述第一副本文件中;
从副本空间,所述从副本空间包括第二内存表和第二副本文件;所述第二内存表,用于存储所述从副本写请求所携带的记录,并在所述第二内存表中所有记录所占用的内存大小达到第二预设值时,将所述第二内存表中所有记录存储到所述第二副本文件中;
其中,所述分发模块接收发送节点发送的写请求,并判定所述写请求的类型:若判定所述写请求为主副本写请求,则将所述主副本写请求提交给所述主副本空间的第一内存表;若判定所述写请求为从副本写请求,则将所述从副本写请求提交给所述从副本空间的第二内存表。
2.根据权利要求1所述的装置,其特征在于,所述主副本空间的第一内存表的数目至少为一个;和/或,所述从副本空间的第二内存表的数目至少为一个。
3.根据权利要求2所述的装置,其特征在于,所述主副本空间还包括快速选择模块;所述快速选择模块,用于接收所述分发模块提交的所述主副本写请求,根据所述主副本写请求所携带的记录的主键,从各所述第一内存表中确定用于存储所述主副本写请求所携带的记录的目标第一内存表,并将所述主副本写请求提交到所述目标第一内存表;
所述从副本空间还包括队列模块;所述队列模块,用于接收所述分发模块提交的所述从副本写请求,将所述从副本写请求插入队列,当所述队列达到预设的队列阈值时,将所述队列中的所有从副本写请求提交到所述第二内存表。
4.根据权利要求3所述的装置,其特征在于,所述队列模块,还用于在将所述从副本写请求插入队列之后,向所述发送节点发送从副本写请求响应。
5.根据权利要求1-4中任一项所述的装置,其特征在于,所述第一内存表,还用于在存储所述主副本写请求所携带的记录之后,向预先设定的副本存储节点发送携带所述记录的从副本写请求。
6.一种副本存储方法,其特征在于,应用于副本存储装置,其中,所述副本存储装置包括分发模块、主副本空间和从副本空间;
所述主副本空间包括第一内存表和第一副本文件;所述第一内存表,用于存储所述主副本写请求所携带的记录,并在所述第一内存表中所有记录所占用的内存大小达到第一预设值时,将所述第一内存表中所有记录存储到所述第一副本文件中;
所述从副本空间包括第二内存表和第二副本文件;所述第二内存表,用于存储所述从副本写请求所携带的记录,并在所述第二内存表中所有记录所占用的内存大小达到第二预设值时,将所述第二内存表中所有记录存储到所述第二副本文件中;
所述副本存储方法包括:
所述分发模块接收发送节点发送的写请求,并判定所述写请求的类型:
若判定所述写请求为主副本写请求,则将所述主副本写请求提交给所述主副本空间的第一内存表;
若判定所述写请求为从副本写请求,则将所述从副本写请求提交给所述从副本空间的第二内存表。
7.根据权利要求6所述的方法,其特征在于,所述主副本空间的第一内存表的数目至少为一个;和/或,所述从副本空间的第二内存表的数目至少为一个。
8.根据权利要求7所述的方法,其特征在于,所述主副本空间还包括快速选择模块;所述从副本空间还包括队列模块;
所述将所述主副本写请求提交给所述主副本空间的第一内存表,包括:
所述分发模块将所述主副本写请求提交给所述快速选择模块;
所述快速选择模块,接收所述分发模块提交的所述主副本写请求,根据所述主副本写请求所携带的记录的主键,从所述主副本空间的各所述第一内存表中确定用于存储所述主副本写请求所携带的记录的目标第一内存表,并将所述主副本写请求提交到所述目标第一内存表;
所述将所述从副本写请求提交给所述从副本空间的第二内存表,包括:
所述分发模块将所述主副本写请求提交给所述队列模块;
所述队列模块,接收所述分发模块提交的所述从副本写请求,将所述从副本写请求插入队列,当所述队列达到预设的队列阈值时,将所述队列中的所有从副本写请求提交到所述第二内存表。
9.根据权利要求8所述的方法,其特征在于,所述队列模块接收所述分发模块提交的所述从副本写请求,并将所述从副本写请求插入队列之后,所述方法还包括:
所述队列模块向所述发送节点发送从副本写请求响应。
10.根据权利要求6-9中任一项所述的方法,其特征在于,所述第一内存表存储所述主副本写请求所携带的记录之后,所述方法还包括:
所述第一内存表向预先设定的副本存储节点发送携带所述记录的从副本写请求。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310432857.6A CN104461768B (zh) | 2013-09-22 | 2013-09-22 | 副本存储装置及副本存储方法 |
PCT/CN2014/085993 WO2015039569A1 (zh) | 2013-09-22 | 2014-09-05 | 副本存储装置及副本存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310432857.6A CN104461768B (zh) | 2013-09-22 | 2013-09-22 | 副本存储装置及副本存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461768A true CN104461768A (zh) | 2015-03-25 |
CN104461768B CN104461768B (zh) | 2018-08-14 |
Family
ID=52688228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310432857.6A Active CN104461768B (zh) | 2013-09-22 | 2013-09-22 | 副本存储装置及副本存储方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104461768B (zh) |
WO (1) | WO2015039569A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106331166A (zh) * | 2016-10-11 | 2017-01-11 | 杭州宏杉科技有限公司 | 一种存储资源的访问方法及装置 |
CN106406750A (zh) * | 2016-08-23 | 2017-02-15 | 浪潮(北京)电子信息产业有限公司 | 一种数据操作方法及系统 |
CN106445409A (zh) * | 2016-09-13 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种分布式块存储的数据写入方法及装置 |
CN106445737A (zh) * | 2016-09-12 | 2017-02-22 | 恒为科技(上海)股份有限公司 | 一种多备份启动方法 |
CN107515723A (zh) * | 2016-06-16 | 2017-12-26 | 伊姆西公司 | 用于管理存储系统中的存储器的方法和系统 |
CN108647228A (zh) * | 2018-03-28 | 2018-10-12 | 中国电力科学研究院有限公司 | 可见光通信大数据实时处理方法和系统 |
CN111090629A (zh) * | 2019-12-24 | 2020-05-01 | 上海达梦数据库有限公司 | 一种数据文件存储方法、装置、设备及存储介质 |
CN113076220A (zh) * | 2020-01-06 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机可读介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6924898B2 (ja) * | 2017-06-05 | 2021-08-25 | 華為技術有限公司Huawei Technologies Co.,Ltd. | トランザクション処理方法、装置及びデバイス |
CN111290850B (zh) * | 2018-12-07 | 2024-04-09 | 中国移动通信集团陕西有限公司 | 一种数据存储方法、装置及设备 |
CN111611068B (zh) * | 2019-02-25 | 2022-07-15 | 清华大学 | 分布式系统中的数据写方法、服务器及客户端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706802A (zh) * | 2009-11-24 | 2010-05-12 | 成都市华为赛门铁克科技有限公司 | 一种数据写入、修改及恢复的方法、装置及服务器 |
CN103294787A (zh) * | 2013-05-21 | 2013-09-11 | 成都市欧冠信息技术有限责任公司 | 分布式数据库系统的多副本存储方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010119478A1 (en) * | 2009-04-14 | 2010-10-21 | Hitachi, Ltd. | Storage system and control method therefor |
-
2013
- 2013-09-22 CN CN201310432857.6A patent/CN104461768B/zh active Active
-
2014
- 2014-09-05 WO PCT/CN2014/085993 patent/WO2015039569A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706802A (zh) * | 2009-11-24 | 2010-05-12 | 成都市华为赛门铁克科技有限公司 | 一种数据写入、修改及恢复的方法、装置及服务器 |
CN103294787A (zh) * | 2013-05-21 | 2013-09-11 | 成都市欧冠信息技术有限责任公司 | 分布式数据库系统的多副本存储方法和系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515723B (zh) * | 2016-06-16 | 2020-04-24 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统中的存储器的方法和系统 |
CN107515723A (zh) * | 2016-06-16 | 2017-12-26 | 伊姆西公司 | 用于管理存储系统中的存储器的方法和系统 |
CN106406750A (zh) * | 2016-08-23 | 2017-02-15 | 浪潮(北京)电子信息产业有限公司 | 一种数据操作方法及系统 |
CN106445737A (zh) * | 2016-09-12 | 2017-02-22 | 恒为科技(上海)股份有限公司 | 一种多备份启动方法 |
CN106445737B (zh) * | 2016-09-12 | 2023-03-10 | 恒为科技(上海)股份有限公司 | 一种多备份启动方法 |
CN106445409A (zh) * | 2016-09-13 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种分布式块存储的数据写入方法及装置 |
CN106331166B (zh) * | 2016-10-11 | 2019-09-06 | 杭州宏杉科技股份有限公司 | 一种存储资源的访问方法及装置 |
CN106331166A (zh) * | 2016-10-11 | 2017-01-11 | 杭州宏杉科技有限公司 | 一种存储资源的访问方法及装置 |
CN108647228B (zh) * | 2018-03-28 | 2021-08-24 | 中国电力科学研究院有限公司 | 可见光通信大数据实时处理方法和系统 |
CN108647228A (zh) * | 2018-03-28 | 2018-10-12 | 中国电力科学研究院有限公司 | 可见光通信大数据实时处理方法和系统 |
CN111090629A (zh) * | 2019-12-24 | 2020-05-01 | 上海达梦数据库有限公司 | 一种数据文件存储方法、装置、设备及存储介质 |
CN111090629B (zh) * | 2019-12-24 | 2024-02-06 | 上海达梦数据库有限公司 | 一种数据文件存储方法、装置、设备及存储介质 |
CN113076220A (zh) * | 2020-01-06 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104461768B (zh) | 2018-08-14 |
WO2015039569A1 (zh) | 2015-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461768A (zh) | 副本存储装置及副本存储方法 | |
CN105447075B (zh) | 用于动态划分的计算机实现方法 | |
US6886084B2 (en) | Storage controlling device and control method for a storage controlling device | |
CN110612511B (zh) | 使用流选择性地向分配区域中存储数据 | |
EP2557494B1 (en) | Storage apparatus and data copy method between thin-provisioning virtual volumes | |
EP2169530B1 (en) | Method of managing memory storage space and a computer system | |
CN102541475A (zh) | 数据存储方法和数据存储装置 | |
EP3163446B1 (en) | Data storage method and data storage management server | |
CN108733324B (zh) | 一种固态硬盘的数据读写方法、装置、设备及存储介质 | |
CN103761053A (zh) | 一种数据处理方法和装置 | |
CN103167026A (zh) | 一种云存储环境数据处理方法、系统及设备 | |
CN102567215A (zh) | 精简供应的空间分配 | |
CN103324533A (zh) | 分布式数据处理方法、装置及系统 | |
US20190155922A1 (en) | Server for torus network-based distributed file system and method using the same | |
CN103731489A (zh) | 一种数据存储方法、系统和设备 | |
CN106126124A (zh) | 一种数据处理方法及电子设备 | |
CN105205143A (zh) | 一种文件存储及处理方法、设备和系统 | |
US20210011634A1 (en) | Methods and systems for managing key-value solid state drives (kv ssds) | |
CN107729536A (zh) | 一种数据存储方法和装置 | |
CN105404691A (zh) | 一种文件存储的方法及装置 | |
CN112269772A (zh) | 一种文件部署方法、系统、设备及计算机可读存储介质 | |
CN102262668A (zh) | 分布式文件系统文件读写方法、分布式文件系统及其装置 | |
CN109923533B (zh) | 在数据库中将计算与存储分离的方法及设备 | |
CN103838746A (zh) | 多cpu系统共享存储数据的方法及该系统 | |
EP2913759A1 (en) | Memory access processing method based on memory chip interconnection, memory chip, and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |