CN105824720B - 一种面向数据连续读取的重删纠删混合系统的数据放置方法 - Google Patents

一种面向数据连续读取的重删纠删混合系统的数据放置方法 Download PDF

Info

Publication number
CN105824720B
CN105824720B CN201610135198.3A CN201610135198A CN105824720B CN 105824720 B CN105824720 B CN 105824720B CN 201610135198 A CN201610135198 A CN 201610135198A CN 105824720 B CN105824720 B CN 105824720B
Authority
CN
China
Prior art keywords
data
redundancy
piecemeal
placement
continuously read
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.)
Expired - Fee Related
Application number
CN201610135198.3A
Other languages
English (en)
Other versions
CN105824720A (zh
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.)
National University of Defense Technology
Original Assignee
National University of Defense 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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201610135198.3A priority Critical patent/CN105824720B/zh
Publication of CN105824720A publication Critical patent/CN105824720A/zh
Application granted granted Critical
Publication of CN105824720B publication Critical patent/CN105824720B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data

Abstract

本发明涉及一种面向数据连续读取的重删纠删混合系统的数据放置方法器。基于各类分布式重复数据删除和纠删码混合存储系统,通过改变对数据分块和校验分块的放置策略,在保证系统可靠性不受任何影响的前提下,进一步提升数据连续读取时的读性能,其特征在于,不改变各条带的构成,通过将多个条带中所有的数据元素和所有校验元素分别连续放置,从而保证所有数据元素放置的连续性,消除原校验元素中断数据元素放置所带来的负载瓶颈,从而最大限度地提升数据连续读取时的并行度,实现各独立节点并行性的最大化利用,提升连续读的系统读性能。

Description

一种面向数据连续读取的重删纠删混合系统的数据放置方法
技术领域
本发明适用于重复数据删除和纠删码技术领域,提供了一种面向数据连续读取的重复数据删除(Data Deduplication)和纠删码(Erasure code)混合系统的数据放置方法,在不改变系统可靠性的前提下消除对数据连续读取的负载瓶颈,提高系统的读性能。
背景技术
大数据时代,数据的爆炸性增长以及以CPU和GPU为代表的处理器件的计算性能的飞速增长对存储系统容量、性能和可靠性等方面提出了更高的要求,存储系统面临着巨大挑战。
一方面,就庞大和日益增长的数据规模而言,盲目地通过增加存储设备来实现存储规模的扩张并不是一种解决容量问题的有效方式,其还涉及资金、空间、能耗和管理等诸多问题。多种研究表明,各类存储系统中大约60%以上的数据都是重复的,尤其在备份和归档系统中由于数据共享和多版本发布等因素,数据的重复率可达80%~90%,使用数据缩减技术才是根本解决大数据存储的有效方式。
数据缩减技术是一种通过某种有效的技术手段删除冗余数据以提高数据存储效率的方式。经典的数据缩减技术通常包括数据压缩(Data Compression)技术、Delta编码(Delta Encoding)技术和重复数据删除(Data Deduplication)技术三类。其中,传统数据压缩技术只能消除对象内的冗余数据,而重复数据删除后还可以消除对象间的冗余;而相比Delta编码技术需要的额外的计算开销和内存资源,而重复数据删除的开销更低。因此,重复数据删除技术已经成为当今大数据存储领域应用研究的热点问题。
另一方面,新旧存储介质本身的可靠性问题和不断攀升的存储规模使得存储系统可靠性问题日益突出。对于任何系统而言,没有了可靠性,就谈不上任何性能。因此为了保证数据的可靠性和可用性,分布式存储系统必须采用一定的数据容错技术。数据容错技术是指通过某种方式对数据对象进行处理后产生一定的冗余,并将处理后的数据放置到不同的节点上,使得在其中一部分数据因节点失效而丢失时,能够使用存活节点上剩余的部分数据来恢复出原数据对象。当前,常见的数据容错技术包括“多副本(Replication)”技术和“纠删码(Erasure Codes)”技术两种。虽然多副本技术有着无法比拟的数据可用性,但是随着数据规模的增大,其昂贵的存储开销使得其应用日益减少。相反,能够使用更少存储代价实现更高可靠性的纠删码技术逐渐成为了存储可靠性的主流,对各类纠删码及其应用问题的研究已经成为了存储领域研究的绝对热点。
综上,既要有效去除重复数据,实现有效存储,又要通过添加冗余来保证系统的可靠性,因此构建重复数据删除和纠删码的混合存储系统成为解决问题的关键。
在各类大数据存储系统中,高效地读取数据才是数据存储的最终目的。因此如何有效地组织和存储重复数据删除之后的数据和编码之后生成的冗余,以提高吞吐率和读性能成为研究的重点问题。就现有大数据存储系统而言,大部分都采用WORM(Write Once andRead Many times,一次写入,多次读出)的文件访问模型,因此提升读性能显得尤为重要。然而,系统的读性能与数据的布局密切相关,如何将去重之后的数据和编码之后的冗余更好地放置在各个节点上,实现对存储节点间的并行性的充分利用,从而提高读取性能,成为是人们日益关注的问题。
在没有纠删码编码的重复数据删除系统中,已有研究对去重后的数据放置问题进行了研究,提出了具有请求感知的数据放置方法,并以此为基础构建了RE-Dedupe来提升文件的读性能。该方法通过将同一个请求下的多个数据分块尽可能独立地放置在不同的节点上,尽可能多地利用存储节点间的并行性,从而提高读性能。该方法引入了一定量的写延迟,而且无法应用于存在重删和纠删的混合系统中。
由于重复数据删除和纠删码的结合是比较新的课题,针对其数据放置的研究并不多。在多节点的分布式环境下,有基于容量感知的数据放置策略,以实现节点间存储容量的负载均衡,但并不考虑性能问题;因此有研究采用EDP(Even Data Placement)算法对放置后的数据进行迁移,从而达到读负载的均衡提升系统性能。但是,EDP算法需要多项式的时间对数据进行迁移从而达到均衡读性能的目的,因此工作量和开销都很大。
另外,数据的连续读取作为读操作中的重要类型,其性能直接关系着系统吞吐率的大小。然而,上述研究都未针对重删纠删的混合系统中的数据连续读取问题进行针对性研究。具体而言,数据在经过去重之后,需要分组进行编码,生成冗余,然而由于分组大小的限制和冗余分块的产生,会在各分组间穿插放置对应的冗余分块,中断编码前连续放置的数据分块。由于冗余分块不会被用户访问,因此数据分块中夹杂冗余分块的布局会造成数据连续读取时的负载不均衡现象,导致无法最大限度地利用节点间的并行性。
发明内容
本发明所要解决的技术问题是面向各类分布式重复数据删除和纠删码并存的混合存储系统,通过改变对数据分块和校验分块的放置策略,在保证系统可靠性不受任何影响的前提下,进一步提升数据连续读取时的读性能。其特征在于,不改变各条带的构成,通过将多个条带中所有的数据元素和所有校验元素分别连续放置,从而保证所有数据元素放置的连续性,消除原校验元素中断数据元素放置所带来的负载瓶颈,从而最大限度地提升数据连续读取时的并行度,提升连续读时的系统读性能。
本发明的技术方案是:由于现有的重删纠删混合存储系统继承了简单放置策略或者传统的轮转放置策略,对原来数据分块和编码后产生的冗余分块统一进行放置,使得不会被用户访问的冗余分块中断了数据分块的连续性,导致出现对数据连续读取时的负载不均衡现象,无法最大限度地利用节点间的并行性。所以本发明针对重删纠删混合存储系统中的数据连续读取的问题进行优化,提出了将多个分组的全部数据分块和全部冗余分块分别进行独立连续放置的方法,用以提升数据连续读取时的系统性能。
所以,本发明中对于重复数据删除后的数据分块和分组之后编码产生的冗余分块放置的关键在于如何在保证不影响系统可靠性和重删率的前提下,尽可能地保证更多的数据分块连续独立地放置在相对独立的存储节点上,尽可能多地有效地利用多节点的并行性实现读负载均衡,提升读性能。
具体技术方案为:
第一步,数据分块:采用定长分块的方式将文件或数据流进行分割,将其分割为若干个chunk(数据分块)。分块粒度的大小应当根据应用场景来进行选择。如果分块粒度越大,则后期计算开销越小,但是重删效果不够明显,反之,如果粒度过小,则会引入过多的计算开销,影响系统性能;
第二步,计算特征值:计算每一块chunk的特征值,该特征值将作为该chunk的唯一标识,并作为下一步判断是否重复的依据。通常特征值的计算采用抗冲突能力较强的hash加密算法,如MD5、SHA-1等;
第三步,查询索引表:将计算好的特征值与现有的索引表中的特征值逐一对比,用以判断其代表的chunk是否重复。该索引表会随着数据量的增大而增大,因此当数据量庞大时会降低系统性能;
第四步,去除重复数据:根据查询结果,如果是重复的chunk则可以直接丢弃,但需要将节点号保存下来,将其元数据指针指向重复的chunk,以便后面需要访问时找到数据;
第五步,冗余编码:查询后判断是不重复的chunk,则将其特征值作为一个新的条目追加到索引表中,并根据分组大小对k个此类唯一块进行冗余编码,生成m个冗余分块。所使用的具体的编码和编码参数应该根据系统的可靠性需求进行选择;
第六步,放置存储分块:根据节点数和冗余编码参数确定多个分组内数据和冗余的放置位置,根据放置算法为每个数据分块和冗余分块分配适当的地址,并进行存储。
本发明涉及的重复数据删除原理、纠删码编码原理和具体流程,以及面向数据连续读取的重删纠删数据放置方法的具体过程详见附图说明;
使用本发明能达到以下有益效果:
1、保证系统原有的重删率。重删率由数据查询比对过程决定,本发明针对的是数据放置过程,因此不会对系统原有的重删率造成任何影响;
2、保证系统原有的可靠性。系统的可靠性由冗余编码参数和放置策略共同决定。本发明在对放置策略的修改过程中,严格保证分组内部的元素放置节点的互斥性,从而保证系统的可靠性。
3、提升系统的连续读性能。由于本发明尽可能地保证更多的数据分块连续独立地放置在相对独立的存储节点上,在数据连续读取时,能够尽可能多地有效地利用多节点的并行性实现读负载均衡,尽可能多地并发地读取多个数据分块,从而消除读负载瓶颈,提升读性能。
附图说明
图1是重复数据删除原理图;
图2是重复数据删除和纠删码混合系统的基本流程图(简单放置策略和轮转放置);
图3是本发明面向数据连续读取的重删纠删混合系统的数据放置方法的示意图;
图4本发明面向数据连续读取的重删纠删混合系统的数据放置方法的流程图。
具体实施方式
图1是仅采用重复数据删除的存储系统原理示意图。文件首先进行分块,然后对每一分块通过计算哈希值生成对应的指纹,将指纹与索引表中的指纹进行比对,去除重复数据,最后将唯一数据分块按照节点号依次轮转进行放置并存储到相应节点。
图2是重复数据删除和纠删码混合系统的基本流程图,包括数据分块、计算特征值、查询索引表、删除重复块、冗余编码和放置并存储分块。其放置策略为不区分冗余分块和数据分块的前提下,按条带分组依次顺序轮转放置分块。
图3是本发明面向数据连续读取的重删纠删混合系统的数据放置方法的示意图。具体的执行过程为:(假设为纠删码编码参数为(n,k),即条带stripe大小为n个元素(分块),其中k个数据元素(分块)经编码生成n-k个冗余分块)
第一步,定义变量整型变量r=gcd(n,k),其中gcd(n,k)为n和k的最大公约数。设Cij表示第i个条带stripe中的第j个元素(分块),其中i∈[0,+∞),j∈[0,n-1];
第二步,设条带stripe的编号为i,当第一条条带生成时,初始化i=0;
第三步,令临时变量temp=i/(n/r)。对于第i条带stripe中的第j个元素(分块)Cij,计算其放置的节点编号NodeAssigned=(temp*k+j)/n,其中
第四步,将元素(分块)Cij分发给指定的第NodeAssigned个节点进行存储;
第五步,判断是否有新条带生成,如果有,则i=i+1,并进入第三步,否则结束。
图4为本发明面向数据连续读取的重删纠删混合系统的数据放置方法的流程图。
对于现有的重删纠删混合系统,其分块放置策略为不区分冗余分块和数据分块的前提下,按条带分组依次简单放置或者顺序轮转放置分块,使得单个文件的多个数据块可能位于同一个节点上,如图2中不管是简单放置策略还是轮转放置策略中的文件File1,其数据分块A和E都存储在Node#0上,造成File1读取时的负载瓶颈,无法尽可能地利用系统的并发性,制约读性能。
本发明针对上述情况,在放置时有区别地对待数据分块和冗余分块,在保证原系统重删率和可靠性不变的前提下,根据节点数目和编码参数选定特定数目的条带构成一个分组,在一个分组内保证所有数据分块和冗余分块分别独立连续放置,解决条带间冗余分块中断数据分块的问题,最大限度地消除数据连续读取时的负载瓶颈,实现各独立节点并行性的最大化利用,提升系统读性能。
由此可以看出,本发明能够针对重删纠删混合系统中的数据连续读问题,在保证系统可靠性的前提下,最大可能地保证更多数目的数据分块顺序连续放置,从而在连续读取数据时尽可能地利用节点间的并行性,消除读负载的不均衡,达到了提升连续读性能的效果。

Claims (2)

1.一种面向数据连续读取的重删纠删混合系统的数据放置方法,基于各类分布式重复数据删除和纠删码混合存储系统,通过改变对数据分块和冗余分块的放置策略,在保证系统可靠性不受任何影响的前提下,进一步提升数据连续读取时的读性能,其特征在于,不改变各条带的构成,通过将多个条带中所有的数据元素和所有冗余元素分别连续放置,从而保证所有数据元素放置的连续性,消除原冗余元素中断数据元素放置所带来的负载瓶颈,从而最大限度地提升数据连续读取时的并行度,提升连续读时的系统读性能, 具体步骤为:
第一步,数据分块:采用定长分块的方式将文件或数据流进行分割,将其分割为若干个chunk数据分块,分块粒度的大小应当根据应用场景来进行选择,如果分块粒度越大,则后期计算开销越小,但是重删效果不够明显,反之,如果粒度过小,则会引入过多的计算开销,影响系统系能;
第二步,计算特征值:计算每一块chunk的特征值,该特征值将作为该chunk的唯一标识,并作为下一步判断是否重复的依据,通常特征值的计算采用抗冲突能力较强的hash加密算法,如MD5、SHA-1;
第三步,查询索引表:将计算好的特征值与现有的索引表中的特征值逐一对比,用以判断其代表的chunk是否重复,该索引表随着数据量的增大而增大,因此当数据量庞大时降低系统性能;
第四步,去除重复数据:根据查询结果,如果是重复的chunk则可以直接丢弃,但需要将节点号保存下来,将其元数据指针指向重复的chunk,以便后面需要访问时找到数据;
第五步,冗余编码:查询后判断是不重复的chunk,则将其特征值作为一个新的条目追加到索引表中,并根据分组大小对k个此类唯一块进行冗余编码,生成m个冗余分块,所使用的具体的编码和编码参数应该根据系统的可靠性需求进行选择;
第六步,放置存储分块:根据节点数和冗余编码参数确定多个分组内数据和冗余的放置位置,根据放置算法为每个数据分块和冗余分块分配适当的地址,并进行存储。
2.根据权利要求1所述的一种面向数据连续读取的重删纠删混合系统的数据放置方法,其特征在于,所述第六步放置存储唯一的数据分块和冗余分块时,在保证系统重删率和可靠性不变的前提下,根据节点数目和编码参数选定特定数目的条带构成一个分组,在一个分组内保证所有数据分块和冗余分块分别独立连续放置,解决条带间冗余分块中断数据分块的问题,最大限度地消除数据连续读取时的负载瓶颈,实现各独立节点并行性的最大化利用,提升系统读性能,其具体流程为:
设纠删码编码参数为(n,k),即条带stripe大小为n个元素,其中k个数据元素经编码生成n-k个冗余分块,
第6.1步:定义变量整型变量r=gcd(n,k),其中gcd(n,k)为n和k的最大公约数,设Cij表示第i个条带stripe中的第j个元素,其中i∈[0,+∞),j∈[0,n-1];
第6.2步:设条带stripe的编号为i,当第一条条带生成时,初始化i=0;
第6.3步:令临时变量temp=i/(n/r),对于第i条带stripe中的第j个元素Cij,计算其放置的节点编号NodeAssigned=(temp*k+j)/n,其中NodeAssigned∈[0,n-1];
第6.4步:将元素Cij分发给指定的第NodeAssigned个节点进行存储;
第6.5步:判断是否有新条带生成,如果有,则i=i+1,并进入第6.3步,否则结束。
CN201610135198.3A 2016-03-10 2016-03-10 一种面向数据连续读取的重删纠删混合系统的数据放置方法 Expired - Fee Related CN105824720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610135198.3A CN105824720B (zh) 2016-03-10 2016-03-10 一种面向数据连续读取的重删纠删混合系统的数据放置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610135198.3A CN105824720B (zh) 2016-03-10 2016-03-10 一种面向数据连续读取的重删纠删混合系统的数据放置方法

Publications (2)

Publication Number Publication Date
CN105824720A CN105824720A (zh) 2016-08-03
CN105824720B true CN105824720B (zh) 2018-11-20

Family

ID=56987100

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610135198.3A Expired - Fee Related CN105824720B (zh) 2016-03-10 2016-03-10 一种面向数据连续读取的重删纠删混合系统的数据放置方法

Country Status (1)

Country Link
CN (1) CN105824720B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951340B (zh) * 2017-03-14 2019-07-09 华中科技大学 一种基于局部性优先的rs纠删码数据布局方法及系统
CN107094186B (zh) * 2017-06-15 2019-10-01 深圳市云舒网络技术有限公司 一种分布式存储系统的纠删码优化方法
CN108763589B (zh) * 2018-06-20 2021-12-07 程慧泉 一种分布式文件系统的目录系统及其实现方法
EP3866016A4 (en) * 2018-11-20 2021-11-10 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR DELETING INDEX ENTRY IN MEMORY
CN110191187A (zh) * 2019-06-04 2019-08-30 湖北五五互联科技有限公司 Cdn服务器数据管理方法、设备及计算机可读存储介质
CN111177092A (zh) * 2019-12-09 2020-05-19 成都信息工程大学 一种基于纠删码的重复数据删除方法及装置
CN111414271B (zh) * 2020-03-17 2023-10-13 上海爱数信息技术股份有限公司 一种基于自适应存储冗余策略的存储方法
CN111949660B (zh) * 2020-08-12 2024-04-12 光大兴陇信托有限责任公司 一种基于HashMap数据结构的分布式比较方法
CN113504874B (zh) * 2021-06-24 2023-08-29 中国科学院计算技术研究所 基于负载感知的自适应粒度纠删码编解码加速方法及系统
CN113704260B (zh) * 2021-08-25 2023-09-29 中山大学 一种基于改进lsm树结构的数据存储方法及系统
CN117473538B (zh) * 2023-12-27 2024-03-12 成都智慧锦城大数据有限公司 提升业务数据存储安全性的方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225006B1 (en) * 2007-08-30 2012-07-17 Virident Systems, Inc. Methods for data redundancy across three or more storage devices
CN102999605A (zh) * 2012-11-21 2013-03-27 重庆大学 一种通过优化数据放置来减少数据碎片的方法和装置
CN103502956A (zh) * 2011-04-29 2014-01-08 国际商业机器公司 运行时动态性能偏斜消除
CN103793336A (zh) * 2012-10-29 2014-05-14 国际商业机器公司 在存储系统中实现丢失保护的数据放置的方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346734B2 (en) * 2005-05-25 2008-03-18 Microsoft Corporation Cluster storage collection based data management
US9600558B2 (en) * 2013-06-25 2017-03-21 Google Inc. Grouping of objects in a distributed storage system based on journals and placement policies

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225006B1 (en) * 2007-08-30 2012-07-17 Virident Systems, Inc. Methods for data redundancy across three or more storage devices
CN103502956A (zh) * 2011-04-29 2014-01-08 国际商业机器公司 运行时动态性能偏斜消除
CN103793336A (zh) * 2012-10-29 2014-05-14 国际商业机器公司 在存储系统中实现丢失保护的数据放置的方法和系统
CN102999605A (zh) * 2012-11-21 2013-03-27 重庆大学 一种通过优化数据放置来减少数据碎片的方法和装置

Also Published As

Publication number Publication date
CN105824720A (zh) 2016-08-03

Similar Documents

Publication Publication Date Title
CN105824720B (zh) 一种面向数据连续读取的重删纠删混合系统的数据放置方法
Wang et al. Forkbase: An efficient storage engine for blockchain and forkable applications
US11144507B2 (en) System and method for balancing compression and read performance in a storage system
US10474631B2 (en) Method and apparatus for content derived data placement in memory
Goodrich et al. Oblivious RAM simulation with efficient worst-case access overhead
US9767154B1 (en) System and method for improving data compression of a storage system in an online manner
US9727573B1 (en) Out-of core similarity matching
CN105824881B (zh) 一种基于负载均衡的重复数据删除数据放置方法
AU2010265954B2 (en) File system
CN113302584A (zh) 基于云的存储系统的存储管理
CN103262066B (zh) 有效存储分层
US10152481B1 (en) Technique to scale out namespace
Wu et al. GSR: A global stripe-based redistribution approach to accelerate RAID-5 scaling
CN102831222A (zh) 一种基于重复数据删除的差量压缩方法
CN103384884A (zh) 一种文件压缩方法、文件解压缩方法、装置及服务器
CN103152430B (zh) 一种缩减数据占用空间的云存储方法
US11656942B2 (en) Methods for data writing and for data recovery, electronic devices, and program products
CN103034591A (zh) 虚拟机内存共享方法及装置
Chen et al. A high-throughput FPGA accelerator for short-read mapping of the whole human genome
Kumar et al. Bucket based data deduplication technique for big data storage system
US10838990B1 (en) System and method for improving data compression of a storage system using coarse and fine grained similarity
US11775477B1 (en) Stable file system
Kumar et al. Genetic optimized data deduplication for distributed big data storage systems
Nicolae Leveraging naturally distributed data redundancy to reduce collective I/O replication overhead
Goodrich et al. Auditable data structures

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181120

Termination date: 20190310