CN104866430B - 结合主从备份和纠删码的内存计算***高可用优化方法 - Google Patents
结合主从备份和纠删码的内存计算***高可用优化方法 Download PDFInfo
- Publication number
- CN104866430B CN104866430B CN201510217307.1A CN201510217307A CN104866430B CN 104866430 B CN104866430 B CN 104866430B CN 201510217307 A CN201510217307 A CN 201510217307A CN 104866430 B CN104866430 B CN 104866430B
- Authority
- CN
- China
- Prior art keywords
- node
- areas
- recovery
- host node
- data
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种结合主从备份和纠删码的内存计算***高可用优化方法,包括如下步骤:将分布式***分为多个组,每个组保护M个主节点和N个从节点,且M和N的值均大于零;每个所述主节点上的内存包括:A区和B区,所述A区用于保存元数据,所述B区用于保存值数据,其中元数据包括键到值数据地址的索引和内存分配信息,值数据包括该节点上所有键对应的值数据;每个所述从节点上的内存包括:C区和D区;所述C区用于保存备份元数据,所述D区用于保存值数据编码;引入纠删码的更新操作保护值数据;当主节点发生宕机后,任一从节点构成恢复节点代替主节点处理请求,并利用在线恢复协议恢复丢失数据。
Description
技术领域
本发明涉及高可用***技术领域,具体地,涉及结合主从备份和纠删码的内存计算***高可用优化方法。
背景技术
内存键值***等内存计算***由于其易失性,通常需要使用主从数据备份的方式防止宕机引起的数据丢失和服务不可用,如Redis。利用主从数据备份实现高可用内存键值***的方法主要将服务器集群分为多个组,其中每组包含一个主节点和一到多个从节点。其中主节点提供键值更新请求与键值查询请求,从节点为主节点保存相同的内存信息,并只接收主节点发送的更新请求。当主服务器出现错误时,从节点可以成为新的主节点并为客户端提供服务。由于从节点要维持和主节点相同的内存信息,所以从节点使用内存和主节点一致,从而引入大量的内存冗余,降低了内存的利用效率。
与主从备份不同,纠删码是一种能够将数据进行编码,在数据丢失的情况下,利用编码恢复数据的可靠性保证技术。利用纠删码保护***数据,可将服务器集群分为M个数据节点和N个码节点。这M+N个节点拥有相同的内存空间,其中N个码节点上的内存数据由M个数据节点上同地址内存数据的不同编码公式所得。当其中不超过N个节点宕机时,可通过M+N个节点中任意M个节点进行恢复。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种结合主从备份和纠删码的内存计算***高可用优化方法。
根据本发明提供的一种结合主从备份和纠删码的内存计算***高可用优化方法,包括如下步骤:
步骤1:将分布式***分为多个组,每个组包括M个主节点和N个从节点,且M和N均大于零;M个主节点的B区和N个从节点的D区具有相同的内存空间,其中,N个从节点上的D区内存数据能够由M个主节点B区上同内存地址的内存数据根据不同编码公式得到;任意从节点C区均包含M个主节点A区的有效数据;
-每个所述主节点上的内存包括:A区和B区,所述A区用于保存元数据,所述B区用于保存值数据,其中,元数据包括键到值数据地址的索引和内存分配信息,值数据包括所在主节点上所有键对应的值数据;
-每个所述从节点上的内存包括:C区和D区;所述C区用于保存备份元数据,所述D区用于保存值数据编码;
步骤2:引入纠删码的更新操作保护值数据;
步骤3:当一主节点发生宕机后,任一从节点构成恢复节点代替该主节点处理用户请求,并利用在线恢复协议恢复丢失数据。
优选地,所述步骤2包括:
步骤2.1:根据用户的写请求,主节点为所述写请求中的待写入的值数据分配内存地址;
步骤2.2:主节点计算得到所述待写入的值数据与所分配内存地址上原内存数据的差值,将所述写请求中的待写入的值数据替换为所得差值并转发给从节点;
步骤2.3:当写请求对应的写操作为同步写操作时,从节点使用缓存区将所述写请求缓存,并回复主节点,相应的更新操作需等到主节点收到所有从节点回复后继续进行;
步骤2.4:主节点执行索引修改与值数据修改;
步骤2.5:当写请求对应的写操作为同步写操作时,主节点发送确认信息至从节点,同时从节点需等到主节点确认信息后继续执行;
步骤2.6:从节点执行纠删码和元数据更新操作;
异步更新操作仅含上述步骤2.1、2.2、2.4、2.6。
优选地,所述步骤3包括:
步骤3.1:恢复节点接收用户请求后,根据备份元数据得到待恢复内存地址,开始恢复内存数据,或在服务空闲时主动开始恢复内存数据;
步骤3.2:恢复节点根据主节点崩溃数量设定恢复所涉及到的主节点、从节点,并发送恢复请求至所有所述涉及到的主节点;
步骤3.3:接收到恢复请求的主节点向所有所述涉及到的从节点发送恢复所需数据,所述涉及到的从节点收到恢复所需数据后:
-若该待恢复内存地址不存在相应的纠删码拷贝,则为该恢复请求生成纠删码拷贝,将收到的恢复所需数据按恢复公式操作在该纠删码拷贝上;
-若该待恢复内存地址存在相应的纠删码拷贝,则直接更新该纠删码拷贝;
-若在对恢复所需数据的接收已开始但尚没有接收完毕的过程中收到主节点的更新请求,且该纠删码拷贝正等待该主节点的恢复所需数据,则待恢复内存地址相应的原纠删码和纠删码拷贝都需要执行更新操作;
步骤3.4:从节点接收到所有主节点的恢复所需数据,且进行过恢复操作后,将恢复结果返回给恢复节点;
步骤3.5:恢复节点对收到的恢复结果做出计算,并恢复出原始值数据,继续处理用户请求。
与现有技术相比,本发明具有如下的有益效果:
1、本发明提供的方法通过使用纠删码对数据进行保护,减少数据的冗余度,提高计算机***内存的使用效率。
2、本发明提供的方法利用主从备份保护元数据,并利用在线恢复算法,缩短节点奔溃后***不可用时间,提高内存键值***的可用性。
3、提高内存使用效率的同时,保持高性能和并行数据恢复能力。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明提供的结合主从备份和纠删码的***结构与更新流程图;
图2为本发明提供的在线恢复流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
本发明提出的结合主从备份和纠删码的内存计算***高可用优化方法,包括如下步骤:
步骤1:将分布式***分为多个组,每个组保护M个主节点和N个从节点,且M和N的值均大于或等于1;
-每个所述主节点上的内存包括:A区和B区,所述A区用于保存元数据,所述B区用于保存值数据,其中元数据包括键到值数据地址的索引和内存分配信息,值数据包括该节点上所有键对应的值数据;
-每个所述从节点上的内存包括:C区和D区;所述C区用于保存备份元数据,所述D区用于保存值数据编码;
步骤2:引入纠删码的更新操作保护值数据;
步骤3:当一主节点发生宕机后,任一从节点构成恢复节点代替该主节点处理请求,并利用在线恢复协议恢复丢失数据。
优选地,所述步骤2包括:
步骤2.1:主节点为新写入的值数据分配内存;
步骤2.2:主节点计算值数据与分配地址上原内存数据的差值,将原请求中的值数据替换为所得差值并转发给从节点;
步骤2.3:当写请求对应的写操作为同步写操作时,从节点使用缓存区将所述写请求缓存,并回复主节点,相应的更新操作需等到主节点收到所有从节点回复后继续进行;
步骤2.4:主节点执行索引修改与值数据修改;
步骤2.5:当写请求对应的写操作为同步写操作时,主节点发送确认信息至从节点,同时从节点需等到主节点确认信息后继续执行;
步骤2.6:从节点执行纠删码和元数据更新操作。
异步更新操作仅含上述步骤2.1、2.2、2.4、2.6。
具体地,如图1所示,每个主节点保存元数据和值数据,而从节点保存同一组下所有主节点的元数据与值数据的编码结果。编码的更新主要在键值更新请求时完成,其步骤如下:
步骤:某主节点获得用户请求;
步骤①:主节点修改元数据,为新的值分配内存;
步骤②:主节点计算新的值与原内存数据的差值;
步骤③:主节点将请求与差值转发给从节点,若写操作为同步写操作,则从节点使用缓存区将请求缓存;
步骤④:若写操作为同步写操作,从节点回复所述主节点,所述主节点等待至收到所有从节点回复;
步骤⑤:主节点修改元数据中键值索引与值数据,若写操作为同步写操作,主节点发送确认信息给从节点;
步骤⑥:从节点修改对应元数据中键值索引与值数据编码。
优选地,所述步骤3包括:
步骤3.1:恢复节点接受请求后,开始恢复所需内存数据,或在服务空闲时主动开始恢复某地址数据;
步骤3.2:恢复节点根据主节点奔溃数量设定恢复所涉及到的主从节点,并发送恢复请求至所有涉及的主节点;
步骤3.3:接收到恢复请求的主节点向相应的从节点发送恢复所需的数据,所述从节点收到数据后,
-若该恢复不存在纠删码拷贝,则为该恢复生成纠删码拷贝,将收到的数据按恢复公式操作在拷贝上;
-若该待恢复内存地址存在相应的纠删码拷贝,则直接更新该纠删码拷贝;
-若在对恢复所需数据的接收已开始但尚没有接收完毕的过程中收到主节点的更新请求,且该纠删码拷贝正等待该主节点的恢复所需的数据,则待恢复内存地址相应的原纠删码和纠删码拷贝都需要执行更新操作;
步骤3.4:从节点接收到所有主节点的恢复数据,且进行过恢复操作后,将结果返回给恢复节点;
步骤3.5:恢复节点对收到的结果做出计算,并恢复出原始值数据,继续处理用户请求。
具体地,如图2所示:当某个主节点发生宕机时,其中任一从节点开始代替主节点工作,称为恢复节点,其数据在线恢复流程如下:
步骤:恢复节点获得用户请求;
步骤①:恢复节点根据元数据,得到需要回复的内存地址;
步骤②:计算恢复需涉及的主从节点,并将请求发给所有的主节点;
步骤③:主节点将恢复所需数据发给所有恢复涉及到的从节点,当从节点收到后,将该数据按恢复算法操作到纠删码拷贝上,纠删码拷贝在从节点收到第一个恢复数据时生成;
步骤④:若在从节点收到某主节点的恢复所用数据前,收到其键值更新操作,则在更新元数据和值数据的同时,需要更新就删码拷贝;
步骤⑤:当从节点收到所有涉及恢复到主节点的数据并执行恢复操作后,将最终纠删码拷贝发给恢复节点;
步骤⑥:恢复节点收到所有从节点纠删码后,根据收集到的纠删码拷贝恢复数据,并完成用户请求。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (1)
1.一种结合主从备份和纠删码的内存计算***高可用优化方法,其特征在于,包括如下步骤:
步骤1:将分布式***分为多个组,每个组包括M个主节点和N个从节点,且M和N均大于零;M个主节点的B区和N个从节点的D区具有相同的内存空间,其中,N个从节点上的D区内存数据能够由M个主节点B区上同内存地址的内存数据根据不同编码公式得到;任意从节点C区均包含M个主节点A区的有效数据;
-每个所述主节点上的内存包括:A区和B区,所述A区用于保存元数据,所述B区用于保存值数据,其中,元数据包括键到值数据地址的索引和内存分配信息,值数据包括所在主节点上所有键对应的值数据;
-每个所述从节点上的内存包括:C区和D区;所述C区用于保存备份元数据,所述D区用于保存值数据编码;
步骤2:引入纠删码的更新操作保护值数据;
步骤3:当一主节点发生宕机后,任一从节点构成恢复节点代替该主节点处理用户请求,并利用在线恢复协议恢复丢失数据;
所述步骤2包括:
步骤2.1:根据用户的写请求,主节点为所述写请求中的待写入的值数据分配内存地址;
步骤2.2:主节点计算得到所述待写入的值数据与所分配内存地址上原内存数据的差值,将所述写请求中的待写入的值数据替换为所得差值并转发给从节点;
步骤2.3:当写请求对应的写操作为同步写操作时,从节点使用缓存区将所述写请求缓存,并回复主节点,相应的更新操作需等到主节点收到所有从节点回复后继续进行;
步骤2.4:主节点执行索引修改与值数据修改;
步骤2.5:当写请求对应的写操作为同步写操作时,主节点发送确认信息至从节点,同时从节点需等到主节点确认信息后继续执行;
步骤2.6:从节点执行纠删码和元数据更新操作;
异步更新操作仅含上述步骤2.1、2.2、2.4、2.6;
所述步骤3包括:
步骤3.1:恢复节点接收用户请求后,根据备份元数据得到待恢复内存地址,开始恢复内存数据,或在服务空闲时主动开始恢复内存数据;
步骤3.2:恢复节点根据主节点崩溃数量设定恢复所涉及到的主节点、从节点,并发送恢复请求至所有所述涉及到的主节点;
步骤3.3:接收到恢复请求的主节点向所有所述涉及到的从节点发送恢复所需数据,所述涉及到的从节点收到恢复所需数据后:
-若该待恢复内存地址不存在相应的纠删码拷贝,则为该恢复请求生成纠删码拷贝,将收到的恢复所需数据按恢复公式操作在该纠删码拷贝上;
-若该待恢复内存地址存在相应的纠删码拷贝,则直接更新该纠删码拷贝;
-若在对恢复所需数据的接收已开始但尚没有接收完毕的过程中收到主节点的更新请求,且该纠删码拷贝正等待该主节点的恢复所需数据,则待恢复内存地址相应的原纠删码和纠删码拷贝都需要执行更新操作;
步骤3.4:从节点接收到所有主节点的恢复所需数据,且进行过恢复操作后,将恢复结果返回给恢复节点;
步骤3.5:恢复节点对收到的恢复结果做出计算,并恢复出原始值数据,继续处理用户请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510217307.1A CN104866430B (zh) | 2015-04-30 | 2015-04-30 | 结合主从备份和纠删码的内存计算***高可用优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510217307.1A CN104866430B (zh) | 2015-04-30 | 2015-04-30 | 结合主从备份和纠删码的内存计算***高可用优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104866430A CN104866430A (zh) | 2015-08-26 |
CN104866430B true CN104866430B (zh) | 2017-12-15 |
Family
ID=53912275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510217307.1A Active CN104866430B (zh) | 2015-04-30 | 2015-04-30 | 结合主从备份和纠删码的内存计算***高可用优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104866430B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335251B (zh) * | 2015-09-23 | 2018-11-02 | 浪潮(北京)电子信息产业有限公司 | 一种故障恢复方法及*** |
CN105406980B (zh) * | 2015-10-19 | 2018-06-05 | 浪潮(北京)电子信息产业有限公司 | 一种多节点备份方法及装置 |
CN105938446B (zh) * | 2016-01-12 | 2019-01-25 | 上海交通大学 | 基于rdma和硬件事务性内存支持的数据复制容错方法 |
CN107301183B (zh) * | 2016-04-14 | 2020-02-18 | 杭州海康威视数字技术股份有限公司 | 一种文件存储方法及装置 |
CN107885612B (zh) * | 2016-09-30 | 2020-02-21 | 华为技术有限公司 | 数据处理方法和***及装置 |
CN106933706A (zh) * | 2017-03-10 | 2017-07-07 | 联想(北京)有限公司 | 非易失性内存的掉电保护方法及装置 |
CN108052294B (zh) * | 2017-12-26 | 2021-05-28 | 郑州云海信息技术有限公司 | 一种分布式存储***的修改写方法和修改写*** |
CN109213760B (zh) * | 2018-08-02 | 2021-10-22 | 南瑞集团有限公司 | 非关系数据存储的高负载业务存储及检索方法 |
CN109542939B (zh) * | 2018-11-21 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种基于纠删码的count-min摘要方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268318A (zh) * | 2013-04-16 | 2013-08-28 | 华中科技大学 | 一种强一致性的分布式键值数据库***及其读写方法 |
CN103294787A (zh) * | 2013-05-21 | 2013-09-11 | 成都市欧冠信息技术有限责任公司 | 分布式数据库***的多副本存储方法和*** |
CN103516736A (zh) * | 2012-06-20 | 2014-01-15 | 中兴通讯股份有限公司 | 分布式缓存***的数据恢复方法及装置 |
CN104052611A (zh) * | 2013-03-12 | 2014-09-17 | 华中科技大学 | 一种云存储***数据可用性维护方法及其装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856593B2 (en) * | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
-
2015
- 2015-04-30 CN CN201510217307.1A patent/CN104866430B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516736A (zh) * | 2012-06-20 | 2014-01-15 | 中兴通讯股份有限公司 | 分布式缓存***的数据恢复方法及装置 |
CN104052611A (zh) * | 2013-03-12 | 2014-09-17 | 华中科技大学 | 一种云存储***数据可用性维护方法及其装置 |
CN103268318A (zh) * | 2013-04-16 | 2013-08-28 | 华中科技大学 | 一种强一致性的分布式键值数据库***及其读写方法 |
CN103294787A (zh) * | 2013-05-21 | 2013-09-11 | 成都市欧冠信息技术有限责任公司 | 分布式数据库***的多副本存储方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN104866430A (zh) | 2015-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866430B (zh) | 结合主从备份和纠删码的内存计算***高可用优化方法 | |
CN107045422B (zh) | 分布式存储方法和设备 | |
US11442961B2 (en) | Active transaction list synchronization method and apparatus | |
US10223007B1 (en) | Predicting IO | |
CN106662983B (zh) | 分布式存储***中的数据重建的方法、装置和*** | |
CN102594849B (zh) | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 | |
US9563517B1 (en) | Cloud snapshots | |
US8521694B1 (en) | Leveraging array snapshots for immediate continuous data protection | |
US8495304B1 (en) | Multi source wire deduplication | |
US8521691B1 (en) | Seamless migration between replication technologies | |
US8335761B1 (en) | Replicating in a multi-copy environment | |
US8914595B1 (en) | Snapshots in deduplication | |
US9251008B2 (en) | Client object replication between a first backup server and a second backup server | |
US9298707B1 (en) | Efficient data storage and retrieval for backup systems | |
CN102955845B (zh) | 数据访问方法、装置与分布式数据库*** | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN103473277B (zh) | 文件***的快照方法和装置 | |
CN103810061B (zh) | 一种高可用云存储方法 | |
CN102693168A (zh) | 一种数据备份恢复的方法、***和服务节点 | |
CN103067525A (zh) | 一种基于特征码的云存储数据备份方法 | |
CN101673289B (zh) | 分布式文件存储构架的构建方法和装置 | |
CN105487942A (zh) | 一种基于重复数据删除的备份与远程复制方法 | |
US10346066B2 (en) | Efficient erasure coding of large data objects | |
CN103116615A (zh) | 一种基于版本矢量的数据索引方法及服务器 | |
US10372554B1 (en) | Verification and restore of replicated data using a cloud storing chunks of data and a plurality of hashes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |