CN114138526A - 一种面向内存键值纠删码的混合数据更新方法及存储系统 - Google Patents

一种面向内存键值纠删码的混合数据更新方法及存储系统 Download PDF

Info

Publication number
CN114138526A
CN114138526A CN202111320055.7A CN202111320055A CN114138526A CN 114138526 A CN114138526 A CN 114138526A CN 202111320055 A CN202111320055 A CN 202111320055A CN 114138526 A CN114138526 A CN 114138526A
Authority
CN
China
Prior art keywords
check
block
blocks
data
log
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.)
Pending
Application number
CN202111320055.7A
Other languages
English (en)
Inventor
胡燏翀
程良锋
徐佳
冯丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN202111320055.7A priority Critical patent/CN114138526A/zh
Publication of CN114138526A publication Critical patent/CN114138526A/zh
Priority to PCT/CN2022/089526 priority patent/WO2023082556A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种面向内存键值纠删码的混合数据更新方法及存储系统,属于计算机的可靠数据存储领域,方法包括:构建混合更新的存储系统;根据对象索引元数据获取对象的条带ID、序列号、偏移量和长度;读取对象对应数据块的历史值和条带的异或值,并获取各校验块的编码系数;将数据块的历史值与更新值作差获取数据块的差值;使用数据块的差值与校验块的编码系数计算各校验块的差值;将异或块和异或块的差值进行异或合并,更新异或块;对象对应的数据块和更新后的异或块采用就地更新方式写入内存节点;具有偏移量和长度的校验块差值采用校验日志更新方式写入日志节点。本发明能够平衡存储成本、数据更新性能及单个故障修复性能之间的关系。

Description

一种面向内存键值纠删码的混合数据更新方法及存储系统
技术领域
本发明属于计算机的可靠数据存储领域,更具体地,涉及一种面向内存键值纠删码的混合数据更新方法及存储系统。
背景技术
现代HPC集群上的并行文件系统通常使用内存键值存储以进行高效地数据分析。为了保证存储的可靠性,许多分布式键值存储将数据的副本分散保存在不同的节点上。而这种方式在实现容错的同时也大大增加了系统中数据的冗余度。最新的研究中则借助纠删码技术以保证内存键值存储的可靠性,它与副本技术相比显著降低了存储成本。纠删码是将原始数据块编码为校验块,原始数据块和校验块共同组成一个条带;当出现数据损坏或者丢失时,可以使用条带上剩余的数据块对损失的数据进行一个恢复。
对于大数据分析工作负载而言,数据更新是繁重且不可避免的。在纠删码存储中,更新的开销是非常高的,任何数据块的更新都会导致所有校验块的更新。在大条带的情况下,每个条带的数据块更多,它们可能分散在几十甚至上百个节点当中,更新开销又进一步地变得更大。
纠删码的数据更新目标有三种主流方式:1)就地更新(in-place update),原始的数据块和校验块被更新后数据块和校验块原地替换;2)全条带更新(full-stripeupdate),更新后的数据块被组织到一起直接编码生成新的条带;3)校验日志更新(paritylogging),校验块的更新以追加更新的方式放入日志节点的磁盘中。在上述的三种更新方法中,就地更新方式会占用较高的网络传输资源,全条带更新方式会有很高的存储开销,而校验日志更新消除了过程中读取原有校验块的开销同时存储开销是目前最低的。
然而,现今部署了纠删码的内存键值存储系统还是只使用了就地更新或全条带更新的方式。虽然校验日志更新能够有效地降低纠删码更新时的网络传输开销和系统存储开销,但是存储校验日志节点的磁盘性能与内存键值存储系统性能之间的差距巨大难以处理。这使得目前还没有哪个系统考虑过使用校验日志更新。具体地说就是,即使网络传输开销降低了,日志节点还是会降低更新性能,另外当出现单个故障时,由于校验日志存储在磁盘中,读取恢复得到最新校验块的过程还会拖累降级读的性能。
发明内容
针对现有技术的缺陷,本发明提供一种面向内存键值纠删码的混合数据更新方法及装置,目的在于通过对数据块与校验块使用混合更新的存储架构,基于混合更新的存储架构,在内存键值系统上使用校验日志更新技术降低内存中的存储开销、提升数据变化时的更新性能。
为实现上述目的,第一方面,本发明提供了一种面向混合内存键值纠删码系统的混合更新存储系统,包括:若干客户端,代理服务器,k+1个内存节点和r-1个日志节点;k为所述数据块的数目;r为所述校验块的数目;
代理服务器与客户端、内存节点与日志节点均双向通信连接;
内存节点用于存储并采用就地更新的方式更新数据块和校验块中的异或块;日志节点用于存储并采用校验日志更新的方式更新剩余校验块;
代理服务器作为客户端的前端接口,用于保存条带元数据,实现客户端传输的访求请求,并用于对节点故障进行修复;
客户端用于对外提供访存请求。
更为具体地,代理服务器中的队列作为编码缓冲区,用于读入客户端的写入请求;代理服务器为对象提供固定大小的k个数据块,并将k个数据块编码成r个相同大小的校验块;代理服务器保存条带元数据,以完成客户端的请求、降级读和修复等操作。
优选地,元数据包括条带ID、对象索引和条带索引;
条带ID用于区分每个条带;对象索引用于存储对象与条带ID之间的映射关系,以及对象与具体数据块元数据之间的映射关系;条带索引用于存储每个条带对应的k个数据块r个校验块。
优选地,日志节点包括缓冲区和磁盘;缓冲区位于代理服务器与磁盘之间;
缓冲区用于将多次校验块差值存储;
磁盘用于若缓冲区填满后,将所有校验块差值按照在缓冲区存储的时间顺序先写入磁盘,然后定期对相同条带的校验块差值进行合并,合并后的差值存储至各校验块对应的预留空间。
优选地,若存在内存节点失效时,从日志节点读出一个校验块、从内存节点中读取k-1个数据块对失效的内存节点进行修复。
第二方面,本发明提供了一种面向内存键值纠删码的混合数据更新方法,包括以下步骤:
构建混合更新的存储系统;其中,存储系统包括多个客户端,一个代理服务器、k+1个内存节点和r-1个日志节点;数据块和校验块中的异或块存放至内存节点上;剩余校验块存储在日志节点中;k为数据块的数目;r为校验块的数目;
根据对象索引元数据获取对象的条带ID、序列号、偏移量和长度;
基于对象的条带ID,代理服务器读取对象对应数据块的历史值和条带的异或块;且基于对象的序列号获取各校验块的编码系数;
将数据块的历史值与更新值作差获取数据块的差值;
使用数据块的差值与校验块对应的编码矩阵系数计算各校验块的差值;
将异或块和异或块的差值进行异或合并,更新异或块;
采用就地更新的方式将对象对应的数据块和更新后的异或块写入内存节点;
采用校验日志更新方式将具有偏移量和长度的校验块差值写入日志节点。
优选地,日志节点包括缓冲区和磁盘;缓冲区位于代理服务器与磁盘之间;
校验日志更新方式为:将多次校验块差值存储至缓冲区;
若缓冲区的填满后,将所有校验块差值按照其在缓冲区存储的时间顺序先写入连续磁盘空间中;
定期对相同条带的校验块差值进行合并,合并后的差值存储至各校验块对应的预留空间。
优选地,若存在内存节点失效时,从日志节点读出一个校验块、从内存节点中读取k-1个数据块对失效的内存节点进行修复。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本发明所提供的混合数据更新方法,通过构建混合更新的存储系统,其中,数据块和校验块的异或块存放至内存节点上,剩余校验块存储在日志节点上;其中,内存节点上的数据块和异或块采用就地更新的方式更新数据,而日志节点上的剩余校验块采用校验日志更新方式进行,就地更新方式和校验日志更新方式的结合能很多地平衡存储成本和数据更新性能及单个故障修复性能之间的关系。
现有技术中存在磁盘性能与内存性能有着巨大差距。如果所有校验块都在日志节点上,有单个数据损坏需要进行降级读的时候,必须从磁盘上读取校验块差值与校验块,合并得到最新的校验块;最后使用最新的校验块与剩余数据块进行解码得到损坏的数据块,在这个过程中磁盘读取比较慢。基于上述原因,本发明所提供的面向内存键值纠删码的混合数据更新方法,异或块存在内存节点时就从内存节点中读取进行编码;数据块和异或块采用原地更新的方式,使得其在修复性能和内存存储开销两方面优于目前的主流方案;剩余校验块采用校验日志更新的方式保证了高效的更新性能。
附图说明
图1(a)是本发明实施例提供的就地更新的更新过程示意图;
图1(b)是本发明实施例提供的全条带更新在更新频率高时的更新过程示意图;
图1(c)是本发明实施例提供的全条带更新在更新频率低时的更新过程示意图;
图1(d)是本发明实施例提供的校验日志更新的更新过程示意图;
图2是本发明实施例提供的参数为(6,3)时的混合更新的存储架构图;
图3是本发明实施例提供的参数为(6,3)时D1更新为D1’的更新过程示意图;
图4是本发明实施例提供的校验块a+2b的基于合并的缓存日志示意图;
图5是本发明实施例提供的参数为(2,2)时PLM实现过程的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
一方面,本发明提供了一种面向内存键值纠删码系统的混合数据更新方法,包括以下步骤:
(1)混合更新的存储系统
在数据块和校验块的存储上采取的是混合更新的存储系统。对于参数为(k,r)的纠删码部署,架构中包含多个客户端,一个代理服务器,k+1个内存节点与r-1个日志节点;数据块存储在内存节点中使用就地更新的方式进行更新,校验块中的异或块(第一个校验块)也放入内存节点中使用就地更新的方式进行更新;而剩余校验块存储在日志节点中使用校验日志更新的方式进行更新;日志节点由缓冲区与磁盘构成,缓冲区位于代理服务器与磁盘之间。更新时,校验块的差值被写入到日志节点的缓冲区,再一步批量的写入到日志节点的磁盘;k为数据块的数目;r为校验块的数目;
(2)更新数据的步骤
更新操作是指存在的数据块存储的对象值变化成了新值,同时需要对相应条带中的校验块进行更新;为了进行数据块存储的对象值的更新,代理服务器首先根据对象索引元数据获取到对象的条带ID、序列号、偏移量和长度;随后代理服务器读取旧数据对象的值和条带的异或块(它们都是根据条带ID获取到的);这时,代理服务器器首先根据新旧数据块存储的值计算出数据块的差值;再使用数据块的差值与校验块对应的编码矩阵系数(由序列号确定)计算出异或块的差值;在将异或块和异或块的差值进行异或合并,计算最终得到新的异或块;代理服务器同时也会将数据块的差值发送到每个日志节点,一起发送的还有日志节点相应的编码系数,日志节点采用类似的方式计算出其他校验块的差值;最后,新数据对象和异或块被写入内存节点,具有偏移量和长度的校验块差值被写入日志节点;
(3)基于合并的缓存日志
日志节点的缓冲区中对于一个校验块而言一般存在多个校验块差值;多个校验块差值会被合并为一个块后再进行存储;通过这种方式可以减少日志节点更新期间的磁盘IO;
(4)基于合并的校验日志技术
对于日志节点上,日志记录的写入过程使用惰性合并的校验日志技术(PLM);首先将校验块差值按时间顺序写入一个额外的连续磁盘空间中,之后再将它们一起读回,对相同条带的校验块差值数据进行合并,再对合并后的差值进行存储;
对于日志节点上的校验块及其差值的保存采取的方式为预留空间的校验日志记录,具体操作为:预先在日志节点上分配好校验块相应的预留存储空间,发生更新时将经过PLM合并好的校验块差值保留在旧的校验块后连续的预留存储空间;通过这种方式能够减少在计算最新校验块时磁盘的磁盘随机读取工作,提升数据降级读修复的性能;
(5)基于日志节点辅助的节点修复优化技术
当存在内存节点失效时,传统的修复方法是使用剩余所有内存节点以进行降级读解码得到失效节点上的数据,而现有的内存节点还要通过代理服务器提供连续的服务,同时传输数据进行修复很可能造成节点的网络拥塞;本发明基于日志节点辅助的节点修复使用此时相对空闲的日志节点与内存节点一起进行修复;以(k,r)参数部署的纠删码为例,恢复一个条带在失效节点上的块在这种方法下需要从日志节点读出一个校验块、从内存节点中读取k-1个块,与传统的修复方法相比减少了内存节点的网络传输开销。
另一方面,本发明提供了一种面向混合内存键值纠删码系统的混合更新存储系统,包括:若干客户端,代理服务器,k+1个内存节点和r-1个日志节点;k为所述数据块的数目;r为所述校验块的数目;
代理服务器与客户端、内存节点与日志节点均双向通信连接;
内存节点用于存储并采用就地更新的方式更新数据块和校验块中的异或块;日志节点用于存储并采用校验日志更新的方式更新剩余校验块;
代理服务器作为客户端的前端接口,用于保存条带元数据,实现客户端传输的访求请求,并用于对节点故障进行修复;
客户端用于对外提供访存请求。
更为具体地,代理服务器中的队列作为编码缓冲区,用于读入客户端的写入请求;代理服务器为对象提供固定大小的k个数据块,并将k个数据块编码成r个相同大小的校验块;代理服务器保存条带元数据,以完成客户端的请求、降级读和修复等操作。
优选地,元数据包括条带ID、对象索引和条带索引;
条带ID用于区分每个条带;对象索引用于存储对象与条带ID之间的映射关系,以及对象与具体数据块元数据之间的映射关系;条带索引用于存储每个条带对应的k个数据块r个校验块。
优选地,日志节点包括缓冲区和磁盘;缓冲区位于代理服务器与磁盘之间;
缓冲区用于将多次校验块差值存储;
磁盘用于若缓冲区填满后,将所有校验块差值按照在缓冲区存储的时间顺序先写入磁盘,然后定期对相同条带的校验块差值进行合并,合并后的差值存储至各校验块对应的预留空间。
优选地,若存在内存节点失效时,从日志节点读出一个校验块、从内存节点中读取k-1个数据块对失效的内存节点进行修复。
实施例
在介绍本发明实施例之前,首先对就地更新、全条带更新、校验日志更新三种纠删码的更新方式进行简要介绍;
如图1(a)~(d)所示,以参数为(6,3)的纠删码配置为例,一个条带由6个数据块D1~D6与3个校验块P1~P3组成;图1(a)中提供的是就地更新的过程,D1更新成了D1’,该节点计算了ΔD1=D1-D1’,并将其传输到三个校验块所在的节点,校验块节点读出原校验块并与ΔD1结合算出更新后的P1’~P3’;在这个过程中进行了3次校验块的读操作,更新完成后一共存储了9个块;图1(b)和图1(c)分别展示的全条带更新在更新频率不同的两种情况下的更新过程;图1(b)是更新频繁的情况下,数据块D1~D6全部都发生了更新,更新为D1’~D6’;更新后的数据块重新编码得到了新的数据块P4~P6;旧数据块和旧校验块由后续的垃圾回收过程进行清理;这个更新过程中没有校验块的读操作,更新完成后一共存储了18个块;图1(c)是在更新不频繁的情况下,只有D1更新成了D1’;此时D1’与D2~D6一起再次进行编码得到校验块P7~P9;在这个更新过程中,重新计算了3次校验块,更新完成后一共存储了13个块;图1(d)提供的是校验日志更新的过程,D1更新成了D1’,该节点计算了ΔD1=D1-D1’,并将其传输到三个校验日志所在节点,计算得到校验块的增量ΔP1~ΔP3后增量保存在日志中,在这个更新过程中没有校验块的读操作,更新完成后一共存储了12个块;
本发明实施例面向内存键值纠删码系统的混合数据更新方法,下面结合具体的实施方式,进一步描述本发明的技术方案,包括以下步骤:
(1)混合更新的存储架构
图2是参数为(6,3)时的混合更新的存储架构;架构中包括多个客户端,一个代理服务器,7个内存节点与2个日志节点;以一个条带为例,数据块D1-D6个分别保存在6个内存节点中使用就地更新的方式进行更新;异或校验块P1也保存在内存节点中使用就地更新的方式进行更新;剩余2个校验块P2、P3保存在日志节点上使用校验日志更新的方式进行更新;日志节点由缓冲区与磁盘构成,缓冲区位于代理服务器与磁盘之间。更新时,校验块的差值被写入到日志节点的缓冲区,再异步批量地写入到日志节点的磁盘;
(2)更新数据的步骤
如图3所示,参数为(6,3)的纠删码部署情况下工作流使得数据块D1更新成了D1’;
(2.1)代理服务器通过更新对象索引元数据获取更新对象的条带ID、序列号、偏移量和长度;
(2.2)D1和P1所在的节点将D1和P1传输给代理服务器;
(2.3)代理服务器计算出ΔD1和P1’,D1就地更新成D1’,P1就地更新成P1’,代理服务器将ΔD1发送到P2、P3所在的节点;
(2.4)D1和P1所在的节点在更新写完成之后向代理服务器发送确认信息,P2、P3所在的节点分别计算得到ΔP2和ΔP3并将它们保存在各自节点的缓冲区中;
(2.5)P2、P3所在的节点向代理服务器发送确认消息;
(2.6)代理服务器收到D1、P1、P2、P3四个节点发来的确认信息后,则确认更新操作已经完成;
(3)基于合并的缓存日志
图4是内容为a+2b的校验块所在节点的缓存情况;假设传入的数据流:a,b,a’,b’,a”;其中,a,b是原始数据块的数据;a’,a”由a更新得到,b’是由b更新得到的;缓存区保存着根据数据块增量计算得到校验块增量a’-a,2(b’-b),a”-a’共计3个校验块增量,这三个校验块增量被合并成一个校验块增量(a”-a)+2(b’-b),再进行存储;
(4)基于合并的校验日志技术
如图5所示,是部署了参数为(2,2)的纠删码架构中某个日志节点PLM的过程示意图;假设a和b、c和d是分别来自两个条带的数据块,同时这连个条带的第二个校验块都保存在图中所示的这个日志节点;系统中数据传入和更新过程为:a,b,c,d,a’,c’,c”,b’,a”,b”;相应的该日志节点缓存中数据块流为:a+2b,c+2d,a’-a,c’-c,c”-c’,2(b’-b),a”-a’,2(b”-b’);上述数据块根据PLM会先直接保存在一个连续的磁盘空间中;随后它们又被读出用以计算合并之后的结果,合并计算完成后得到块a”+2b”、c”+2d,存储到磁盘中事先分配好的日志文件中,在校验块右侧预留的区域用以存储未来可能出现的校验块差值;
(5)基于日志辅助的节点修复
以(6,3)参数部署的纠删码为例,恢复一个条带在失效节点上的块在日志辅助的节点修复下需要从日志节点读出1个校验块、从内存节点中读取5个块,与传统修复方法相比从内存节点中读取数量有所减少;由于不是所有内存节点都被使用,所以可以通过相应的方法实现节点上数据修复并行的实现。
综上所述,本发明与现有技术相比,存在以下优势:
本发明所提供的混合数据更新方法,通过构建混合更新的存储系统,其中,数据块和校验块的异或块存放至内存节点上,剩余校验块存储在日志节点上;其中,内存节点上的数据块和异或块采用就地更新的方式更新数据,而日志节点上的剩余校验块采用校验日志更新方式进行,就地更新方式和校验日志更新方式的结合能很多地平衡存储成本和数据更新性能及单个故障修复性能之间的关系。
现有技术中存在磁盘性能与内存性能有着巨大差距。如果所有校验块都在日志节点上,有单个数据损坏需要进行降级读的时候,必须从磁盘上读取校验块差值与校验块,合并得到最新的校验块;最后使用最新的校验块与剩余数据块进行解码得到损坏的数据块,在这个过程中磁盘读取比较慢。基于上述原因,本发明所提供的面向内存键值纠删码的混合数据更新方法,异或块存在内存节点时就从内存节点中读取进行编码;数据块和异或块采用原地更新的方式,使得其在修复性能和内存存储开销两方面优于目前的主流方案;剩余校验块采用校验日志更新的方式保证了高效的更新性能。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种面向内存键值纠删码的混合数据更新存储系统,其特征在于,包括:若干客户端、代理服务器、内存节点和日志节点;
所述代理服务器与所述客户端、所述内存节点、所述日志节点均双向通信连接;
所述内存节点的数量为k+1个,用于存储并采用就地更新的方式更新数据块和校验块的异或块,k为所述数据块的数目;所述日志节点的数量为r-1个,用于存储并采用校验日志更新的方式更新剩余校验块,r为所述校验块的数目;
所述代理服务器作为客户端的前端接口,用于保存条带元数据,实现客户端传输的访存请求,并用于对节点故障进行修复;
所述客户端用于对外提供访存请求。
2.根据权利要求1所述的混合更新存储系统,其特征在于,所述元数据包括条带ID、对象索引和条带索引;
条带ID用于区分每个条带;对象索引用于存储对象与条带ID之间的映射关系,以及对象与具体数据块元数据之间的映射关系;条带索引用于存储每个条带对应的k个数据块r个校验块。
3.根据权利要求1或2所述的混合更新存储系统,其特征在于,所述日志节点包括缓冲区和磁盘;所述缓冲区位于所述代理服务器与所述磁盘之间;
所述缓冲区用于将多次校验块差值存储;所述磁盘用于若缓冲区填满后,将所有校验块差值按照在缓冲区存储的时间顺序写入,对相同条带的校验块差值进行合并,合并后的差值存储至各校验块对应的预留空间。
4.根据权利要求1或2所述的混合更新存储系统,其特征在于,若存在内存节点失效时,从日志节点读出一个校验块、从内存节点中读取k-1个数据块对失效的内存节点进行修复。
5.一种面向内存键值纠删码的混合数据更新方法,其特征在于,包括以下步骤:
构建混合更新的存储系统;其中,存储系统包括多个客户端、一个代理服务器、k+1个内存节点和r-1个日志节点;数据块和校验块中的异或块存放至所述内存节点上;剩余校验块存储在所述日志节点中;k为所述数据块的数目;r为所述校验块的数目;
根据对象索引元数据获取对象的条带ID、序列号、偏移量和长度;
基于所述对象的条带ID,代理服务器读取对象对应数据块的历史值和条带的异或值,且基于对象的序列号获取各校验块的编码系数;
将数据块的历史值与更新值作差获取数据块的差值;
使用所述数据块的差值与校验块的编码系数计算各校验块的差值;
将异或块和异或块的差值进行异或合并,更新异或块;
采用就地更新的方式将对象对应的数据块和更新后的异或块写入内存节点;
采用校验日志更新方式将具有偏移量和长度的校验块差值写入日志节点。
6.根据权利要求5所述的混合数据更新方法,其特征在于,所述日志节点包括缓冲区和磁盘;所述缓冲区位于所述代理服务器与所述磁盘之间;
校验日志更新方式为:
将多次校验块差值存储至缓冲区;若缓冲区的填满后,将所有校验块差值按照其在缓冲区存储的时间顺序写入连续磁盘空间中;定期对相同条带的校验块差值进行合并,合并后的差值存储至各校验块对应的预留空间。
7.根据权利要求5或6所述的混合数据更新方法,其特征在于,若存在内存节点失效时,从日志节点读出一个校验块、从内存节点中读取数据块与异或块共计k-1个,对失效的内存节点进行修复。
CN202111320055.7A 2021-11-09 2021-11-09 一种面向内存键值纠删码的混合数据更新方法及存储系统 Pending CN114138526A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111320055.7A CN114138526A (zh) 2021-11-09 2021-11-09 一种面向内存键值纠删码的混合数据更新方法及存储系统
PCT/CN2022/089526 WO2023082556A1 (zh) 2021-11-09 2022-04-27 一种面向内存键值纠删码的混合数据更新方法及存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111320055.7A CN114138526A (zh) 2021-11-09 2021-11-09 一种面向内存键值纠删码的混合数据更新方法及存储系统

Publications (1)

Publication Number Publication Date
CN114138526A true CN114138526A (zh) 2022-03-04

Family

ID=80392562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111320055.7A Pending CN114138526A (zh) 2021-11-09 2021-11-09 一种面向内存键值纠删码的混合数据更新方法及存储系统

Country Status (2)

Country Link
CN (1) CN114138526A (zh)
WO (1) WO2023082556A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023082556A1 (zh) * 2021-11-09 2023-05-19 华中科技大学 一种面向内存键值纠删码的混合数据更新方法及存储系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3208714B1 (en) * 2015-12-31 2019-08-21 Huawei Technologies Co., Ltd. Data reconstruction method, apparatus and system in distributed storage system
CN107766170B (zh) * 2016-08-23 2021-04-09 北京计算机技术及应用研究所 单一存储池的差量日志式纠删码更新方法
CN110442535B (zh) * 2019-07-19 2021-06-11 华中科技大学 提高分布式固态盘键值缓存系统可靠性的方法及系统
CN113157715B (zh) * 2021-05-12 2022-06-07 厦门大学 纠删码数据中心机架协同更新方法
CN114138526A (zh) * 2021-11-09 2022-03-04 华中科技大学 一种面向内存键值纠删码的混合数据更新方法及存储系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023082556A1 (zh) * 2021-11-09 2023-05-19 华中科技大学 一种面向内存键值纠删码的混合数据更新方法及存储系统

Also Published As

Publication number Publication date
WO2023082556A1 (zh) 2023-05-19

Similar Documents

Publication Publication Date Title
US9411685B2 (en) Parity chunk operating method and data server apparatus for supporting the same in distributed raid system
US7546485B2 (en) Method and system for efficient journal-based resynchronization
US9830221B2 (en) Restoration of erasure-coded data via data shuttle in distributed storage system
CN110442535B (zh) 提高分布式固态盘键值缓存系统可靠性的方法及系统
US9785498B2 (en) Archival storage and retrieval system
CN103944981B (zh) 一种基于纠删码技术改进的云存储系统及实现方法
CN106776130B (zh) 一种日志恢复方法、存储装置和存储节点
CN114415976B (zh) 一种分布式数据存储系统与方法
CN110515541B (zh) 分布式存储中纠删码非对齐数据更新方法
US7761431B2 (en) Consolidating session information for a cluster of sessions in a coupled session environment
CN112835738B (zh) 一种条带数据存储结构的构建方法
CN102937967A (zh) 数据冗余实现方法及装置
CN112835743B (zh) 分布式账本数据存储优化方法、装置、电子设备及介质
CN1846197A (zh) 数据同步方法、系统和程序
CN109814807B (zh) 一种数据存储方法及装置
CN103929609B (zh) 一种录像回放方法和装置
US12008263B2 (en) Garbage collection and data storage method and apparatus, and storage system
CN110427156B (zh) 一种基于分片的mbr的并行读方法
CN109582213A (zh) 数据重构方法及装置、数据存储系统
CN103106124A (zh) 一种基于纠删码集群存储系统的交叉重构方法
CN111444042A (zh) 一种基于纠删码的区块链数据存储方法
CN107766170B (zh) 单一存储池的差量日志式纠删码更新方法
CN114138526A (zh) 一种面向内存键值纠删码的混合数据更新方法及存储系统
CN112000278B (zh) 一种热数据存储的自适应局部重构码设计方法及云存储系统
US8832395B1 (en) Storage system, and method of storage control for storage system

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