CN106557571A - 一种基于k‑v存储引擎的数据去重方法及装置 - Google Patents

一种基于k‑v存储引擎的数据去重方法及装置 Download PDF

Info

Publication number
CN106557571A
CN106557571A CN201611034583.5A CN201611034583A CN106557571A CN 106557571 A CN106557571 A CN 106557571A CN 201611034583 A CN201611034583 A CN 201611034583A CN 106557571 A CN106557571 A CN 106557571A
Authority
CN
China
Prior art keywords
data
data block
storage engines
stored
storage
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
CN201611034583.5A
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.)
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
State Grid Zhejiang Electric Power Co Ltd
Fujian Yirong Information Technology Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
State Grid Zhejiang Electric Power Co Ltd
Fujian Yirong Information Technology Co Ltd
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 State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, State Grid Zhejiang Electric Power Co Ltd, Fujian Yirong Information Technology Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201611034583.5A priority Critical patent/CN106557571A/zh
Publication of CN106557571A publication Critical patent/CN106557571A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于K‑V存储引擎的数据去重方法及装置,其中方法包括如下步骤,将文件分割成定长的数据块,对各数据块进行哈希计算,得到数据块摘要数组,将数组中摘要逐个与已存储在K‑V存储引擎中的数据块摘要进行比对,若存在相同的摘要,则不进行存储,否则以数据块摘要为Key,待存储数据块为Value存入K‑V存储引擎。

Description

一种基于K-V存储引擎的数据去重方法及装置
技术领域
本发明涉及数据存储领域,尤其涉及一种基于K-V存储引擎的数据去重方法及装置。
背景技术
随着电子计算机、科学计算、互联网以及移动互联网的迅速普及,全球的数据信息量呈爆炸式的增长。人们越来越深切地感觉到,如何存储和管理这些海量数据信息已经成为一个相当棘手的问题。虽然存储设备的售价一直在不停地下降,但也远远赶不上用户需要存储和处理数据量的攀升速度。据IDC权威统计,2010年全球数据总量达到了1.2ZB,2011年全球数据总量达到了1.8ZB,2020年全球的数据总量预计将达到40ZB。
然而,在这些海量数据中重复数据占据了相当大的比重。微软研究院于2011年公布了其收集的将近900个用户桌面文件系统的重复数据负载个人的文件系统中平均存在着约40%的重复数据、用户之间共享的重复数据也高达68%、数据块级去重往往比文件级去重多找到约20%的重复数据。微软研究院于2012年公布的微软桌面服务器文件系统的重复数据负载,显示了微软服务器文件系统中的重复数据更为丰富,约为15-90%。德国美因茨大学(全称:德国美因茨约翰内斯-古腾堡大学,Johannes Gutenberg-university Mainz,Germany)也于2012年公布了其调查的欧洲四个高性能计算数据中心的重复数据负载,其显示重复数据在科学计算这种数据中心场合也占有约20-30%的比例。
上述各大研究机构公布的数据表明,现在的大规模的存储系统中广泛地存在重复数据。因此有效地积极地消除存储系统中重复数据有着极大的意义:
高效地节约有限的存储空间:消除重复数据(数据削减)极大地提高了存储系统的空间利用率,节省了存储系统的硬件成本。
减少网络中冗余数据的传输:在网络存储系统中,消除重复数据可以减少重复数据的网络传输,优化网络带宽使用率。
帮助用户节约时间和成本:具体体现在帮助用户加快数据传输和节省存储设备空间上,从而帮助用户简化数据存储管理和改进用户体验。
发明内容
为此,需要提供一种新的去重方法,解决简化数据管理的问题。
为实现上述目的,发明人提供了一种基于K-V存储引擎的数据去重方法,包括如下步骤,将文件分割成定长的数据块,对各数据块进行哈希计算,得到数据块摘要数组,将数组中摘要逐个与已存储在K-V存储引擎中的数据块摘要进行比对,若存在相同的摘要,则不进行存储,否则以数据块摘要为Key,待存储数据块为Value存入K-V存储引擎。
进一步地,还包括步骤,将各数据块计算得到的数据摘要数组及文件的基本属性信息作为元数据信息保存到K-V存储引擎,元数据的Key值包括自增数字、UUID或GUID。
具体地,文件分割后的数据块定长为4KB-128KB。
具体地,所述算法包括MD5或SHA-1算法。
一种基于K-V存储引擎的数据去重装置,包括分割模块、计算模块、对比模块、存储模块,
所述分割模块用于将文件分割成定长的数据块;
所述计算模块用于对各数据块进行哈希计算,得到数据块摘要数组,
所述对比模块用于对待存储数据块的摘要数组中摘要逐个与已存储在K-V存储引擎中的数据块摘要进行比对,
所述存储模块用于在存在相同的摘要时不进行存储,否则以数据块摘要为Key,待存储数据块为Value存入K-V存储引擎。
进一步地,所述存储模块还用于,将各数据块计算得到的数据摘要数组及文件的基本属性信息作为元数据信息保存到K-V存储引擎,元数据的Key值包括自增数字、UUID或GUID。
具体地,文件分割后的数据块定长为4KB-128KB。
具体地,所述算法包括MD5或SHA-1算法。
区别于现有技术,上述技术方案通过结合K-V引擎进行存储,提高了文件存取的效率,同时也减少了对资源的消耗。
附图说明
图1为本发明具体实施方式所述的方法流程图;
图2为本发明具体实施方式所述的数据关系结构图;
图3为本发明实施方式所述的装置模块图。
附图标记说明:
300、分割模块;
302、计算模块;
304、对比模块;
306、存储模块。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,为本发明一种基于K-V存储引擎的数据去重方法流程图,包括如下步骤,S100将文件分割成定长的数据块,S102对各数据块进行哈希计算,得到数据块摘要数组,S104对待存储数据块摘要数组中摘要逐个与已存储数据块的摘要数组进行比对,若存在相同的摘要,则不对该摘要对应的数据块进行存储,若不存在相同的摘要则进行步骤S106以数据块摘要为Key,对应的待存储数据块为Value存入K-V存储引擎。
对比现在的一些去重技术,人们一般使用数据块的哈希摘要来唯一标识和识别该数据块,存储文件时根据数据块的摘要查找匹配,如果有两个数据块的摘要匹配相等,那么它们所表示的数据块也相等。数据存储时,将非重复数据块直接写入存储系统,如果是重复数据块,则将重复的数据块地址信息记录下来。在小规模的数据去重系统中,所有的指纹索引信息可以存储在内存里,可使用普通的哈希表快速索引。但是随着数据规模的持续增长,这些指纹的数据量会变得异常庞大,所以只能放在磁盘上存储和索引。众所周知,磁盘访问速度远远低于内存访问速度,这使得数据去重的指纹查找非常缓慢。也就是说,每输入一个数据块,都需要访问磁盘指纹索引,这严重影响了数据去重的系统吞吐率。
因此在本发明中,提出了基于K-V存储引擎的数据去重方法,将数据分割为若干数据块,利用K-V存储引擎的特性,将各数据块的摘要作为K值,与对应数据块作为V值进行直接的对应存储。对比传统方案去除了存储数据块摘要与数据块存储地址之间的映射关系的步骤,在同等去重效果下减少了对资源的消耗,提高系统吞吐量。现有技术通常在内存中记录数据链接,将数据块存储在硬盘中,在我们的方案中,由于省掉了数据链接,节省了空间。另一些实施例中在数据量大的情况下,K-V存储引擎的特性能够根据使用热度,将部分热度高的数据块存储在内存中,从而达到很高的读写效率。在其他一些实施例中,如频繁写入的场景就可以采用leveldb存储引擎(写入速度是读取的7~9倍),在读写均衡的场景可以采用bitcast存储引擎等等。我们的方法还可以通过不同的K-V存储引擎灵活适配不同的应用场景,提高了系统的灵活性。
进一步地一些实施例中,还包括步骤,将各数据块计算得到的数据摘要数组及文件的基本属性信息作为元数据信息保存到K-V存储引擎,元数据的Key值包括自增数字、UUID或GUID。如图3所示,为K-V存储引擎内数据关系结构图,如图所示,存储引擎中包括元数据区和数据块区,数据块区用于存储Key值摘要数组及Value值数据块,在元数据区中,以文件为单位存储元数据作为Value值,其对应的Key值只要不重复,一一对应即可,在图中我们可以看到,不同文件的数据块中的摘要数组可能指向数据块区中的同一份数据,从而达到去重的目的,通过上述方案,形成了每个文件元数据与其包含数据块之间的对应关系,可以看到摘要值相同的数据块只保存了一份数据,存在多个指向它的引用,达到数据去重的目的。
在另一些具体的实施例中,文件分割后的数据块定长为4KB-128KB。将数据块定为4KB-128KB较为合适,既不会产生过量的计算冗余,还能够保证足够的读取、写入速度。
在另一些具体的实施例中,所述算法包括MD5或SHA-1算法,这两种典型的哈希算法能够有效提高本发明的应用速度。
一种基于K-V存储引擎的数据去重装置,包括分割模块300、计算模块302、对比模块304、存储模块306,
所述分割模块用于将文件分割成定长的数据块;
所述计算模块用于对各数据块进行哈希计算,得到数据块摘要数组,
所述对比模块用于对待存储数据块摘要数组中摘要逐个与已存储在K-V存储引擎中的数据块摘要进行比对,
所述存储模块用于在存在相同的摘要时不进行存储,否则以数据块摘要为Key,待存储数据块为Value存入K-V存储引擎。上述装置减少了对资源的消耗,提高系统吞吐量,达到更高读写效率的效果,解决了大数据量情况下去重的问题。
进一步地,所述存储模块还用于,将各数据块计算得到的数据摘要数组及文件的基本属性信息作为元数据信息保存到K-V存储引擎,元数据的Key值包括自增数字、UUID或GUID。通过上述方案,形成了每个文件元数据与其包含数据块之间的对应关系,可以看到摘要值相同的数据块只保存了一份数据,存在多个指向它的引用,达到数据去重的目的。
在某些具体的实施例中,文件分割后的数据块定长为4KB-128KB。上述方案既不会产生过量的计算冗余,还能够保证足够的读取、写入速度。
在其他一些实施例中,具体地,所述算法包括MD5或SHA-1算法。上述方案有效提高本发明的应用速度。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

Claims (8)

1.一种基于K-V存储引擎的数据去重方法,其特征在于,包括如下步骤:
将文件分割成定长的数据块;
对各数据块进行哈希计算,得到数据块摘要数组;
将数组中摘要逐个与已存储在K-V存储引擎中的数据块摘要进行比对,若存在相同的摘要,则不进行存储,否则以数据块摘要为Key,待存储数据块为Value存入K-V存储引擎。
2.根据权利要求1所述的基于K-V存储引擎的数据去重方法,其特征在于,还包括步骤,将各数据块计算得到的数据块摘要数组及文件的基本属性信息作为元数据信息保存到K-V存储引擎,元数据的Key值包括自增数字、UUID或GUID。
3.根据权利要求1所述的基于K-V存储引擎的数据去重方法,其特征在于,文件分割后的数据块定长为4KB-128KB。
4.根据权利要求1所述的基于K-V存储引擎的数据去重方法,其特征在于,所述哈希计算包括MD5或SHA-1算法。
5.一种基于K-V存储引擎的数据去重装置,其特征在于,包括分割模块、计算模块、对比模块、存储模块,
所述分割模块用于将文件分割成定长的数据块;
所述计算模块用于对各数据块进行哈希计算,得到数据块摘要数组,
所述对比模块用于对待存储数据块的摘要数组中摘要逐个与已存储在K-V存储引擎中的数据块摘要进行比对,
所述存储模块用于在存在相同的摘要时不进行存储,否则以数据块摘要为Key,待存储数据块为Value存入K-V存储引擎。
6.根据权利要求5所述的基于K-V存储引擎的数据去重装置,其特征在于,所述存储模块还用于,将各数据块计算得到的数据摘要数组及文件的基本属性信息作为元数据信息保存到K-V存储引擎,元数据的Key值包括自增数字、UUID或GUID。
7.根据权利要求5所述的基于K-V存储引擎的数据去重装置,其特征在于,文件分割后的数据块定长为4KB-128KB。
8.根据权利要求5所述的基于K-V存储引擎的数据去重装置,其特征在于,所述算法包括MD5或SHA-1算法。
CN201611034583.5A 2016-11-23 2016-11-23 一种基于k‑v存储引擎的数据去重方法及装置 Pending CN106557571A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611034583.5A CN106557571A (zh) 2016-11-23 2016-11-23 一种基于k‑v存储引擎的数据去重方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611034583.5A CN106557571A (zh) 2016-11-23 2016-11-23 一种基于k‑v存储引擎的数据去重方法及装置

Publications (1)

Publication Number Publication Date
CN106557571A true CN106557571A (zh) 2017-04-05

Family

ID=58443402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611034583.5A Pending CN106557571A (zh) 2016-11-23 2016-11-23 一种基于k‑v存储引擎的数据去重方法及装置

Country Status (1)

Country Link
CN (1) CN106557571A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107133329A (zh) * 2017-05-09 2017-09-05 腾讯科技(深圳)有限公司 数据处理方法、数据处理装置及存储介质
CN111506268A (zh) * 2020-04-17 2020-08-07 北京百度网讯科技有限公司 代码文件存储方法、装置和电子设备
CN112860644A (zh) * 2021-02-05 2021-05-28 深圳市木浪云数据有限公司 基于云存储的数据存储方法及装置
CN113849194A (zh) * 2021-08-20 2021-12-28 荣耀终端有限公司 烧录方法和终端设备
CN114157611A (zh) * 2021-12-15 2022-03-08 苏州盛科通信股份有限公司 一种报文去重方法、装置及存储介质
WO2023245942A1 (zh) * 2022-06-24 2023-12-28 苏州忆联信息系统有限公司 Ssd有限窗口数据去重识别方法、装置和计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484471A (zh) * 2014-12-31 2015-04-01 天津南大通用数据技术股份有限公司 一种高性能数据存储引擎的实现方法
US20150160862A1 (en) * 2013-12-09 2015-06-11 Xilinx, Inc. Memory arrangement for implementation of high-throughput key-value stores
CN106066896A (zh) * 2016-07-15 2016-11-02 中国人民解放军理工大学 一种应用感知的大数据重复删除存储系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150160862A1 (en) * 2013-12-09 2015-06-11 Xilinx, Inc. Memory arrangement for implementation of high-throughput key-value stores
CN104484471A (zh) * 2014-12-31 2015-04-01 天津南大通用数据技术股份有限公司 一种高性能数据存储引擎的实现方法
CN106066896A (zh) * 2016-07-15 2016-11-02 中国人民解放军理工大学 一种应用感知的大数据重复删除存储系统及方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107133329A (zh) * 2017-05-09 2017-09-05 腾讯科技(深圳)有限公司 数据处理方法、数据处理装置及存储介质
CN107133329B (zh) * 2017-05-09 2022-03-08 腾讯科技(深圳)有限公司 数据处理方法、数据处理装置及存储介质
CN111506268A (zh) * 2020-04-17 2020-08-07 北京百度网讯科技有限公司 代码文件存储方法、装置和电子设备
CN111506268B (zh) * 2020-04-17 2023-07-18 北京百度网讯科技有限公司 代码文件存储方法、装置和电子设备
CN112860644A (zh) * 2021-02-05 2021-05-28 深圳市木浪云数据有限公司 基于云存储的数据存储方法及装置
CN113849194A (zh) * 2021-08-20 2021-12-28 荣耀终端有限公司 烧录方法和终端设备
CN114157611A (zh) * 2021-12-15 2022-03-08 苏州盛科通信股份有限公司 一种报文去重方法、装置及存储介质
CN114157611B (zh) * 2021-12-15 2023-12-08 苏州盛科通信股份有限公司 一种报文去重方法、装置及存储介质
WO2023245942A1 (zh) * 2022-06-24 2023-12-28 苏州忆联信息系统有限公司 Ssd有限窗口数据去重识别方法、装置和计算机设备

Similar Documents

Publication Publication Date Title
CN106557571A (zh) 一种基于k‑v存储引擎的数据去重方法及装置
CN106874348B (zh) 文件存储和索引方法、装置及读取文件的方法
CN102629258B (zh) 重复数据删除方法和装置
Xia et al. DARE: A deduplication-aware resemblance detection and elimination scheme for data reduction with low overheads
Esuli Use of permutation prefixes for efficient and scalable approximate similarity search
US20170177597A1 (en) Biological data systems
CN103955530B (zh) 一种在线重复数据删除系统的数据重建优化方法
CN105824720B (zh) 一种面向数据连续读取的重删纠删混合系统的数据放置方法
CN102799647A (zh) 网页去重方法和设备
CN106611035A (zh) 一种云存储中重复数据删除的检索算法
CN105677904B (zh) 基于分布式文件系统的小文件存储方法及装置
US9430503B1 (en) Coalescing transactional same-block writes for virtual block maps
KR20130087850A (ko) 데이터 디듀플리케이션 시스템 및 그 방법
US11461182B2 (en) Storage system backup and de-duplication
US9886561B2 (en) Efficient encoding and storage and retrieval of genomic data
CN113407785A (zh) 一种基于分布式储存系统的数据处理方法和系统
WO2021082926A1 (zh) 一种数据压缩的方法及装置
CN109271456A (zh) 主机数据库文件导出方法及装置
EP2856359B1 (en) Systems and methods for storing data and eliminating redundancy
CN111158606B (zh) 存储方法、装置、计算机设备和存储介质
CN116842012A (zh) 一种Redis集群的分片存储方法、装置、设备及存储介质
CN112347055A (zh) 一种基于云计算的医疗数据处理方法及系统
CN106934066A (zh) 一种元数据处理方法、装置和存储设备
US11709798B2 (en) Hash suppression
CN113590535B (zh) 一种用于去重存储系统的高效数据迁移方法和装置

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20170405

RJ01 Rejection of invention patent application after publication