CN102467458B - 建立数据区块的索引方法 - Google Patents

建立数据区块的索引方法 Download PDF

Info

Publication number
CN102467458B
CN102467458B CN201010544374.1A CN201010544374A CN102467458B CN 102467458 B CN102467458 B CN 102467458B CN 201010544374 A CN201010544374 A CN 201010544374A CN 102467458 B CN102467458 B CN 102467458B
Authority
CN
China
Prior art keywords
block
index file
field number
cryptographic hash
conflict list
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
CN201010544374.1A
Other languages
English (en)
Other versions
CN102467458A (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.)
Hunan Zhongke Electric Co., Ltd.
Original Assignee
Inventec Corp
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 Inventec Corp filed Critical Inventec Corp
Priority to CN201010544374.1A priority Critical patent/CN102467458B/zh
Publication of CN102467458A publication Critical patent/CN102467458A/zh
Application granted granted Critical
Publication of CN102467458B publication Critical patent/CN102467458B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种建立数据区块的索引方法,应用在重复数据删除程序之中。建立索引方法包括:加载索引文件,在索引文件包括多个位置区块,每一位置区块中更包括多个存储字段,每一存储字段记录数据区块所相应的主哈希值;对数据区块的一主哈希值进行第一哈希程序,计算区块编号;对同一数据区块的主哈希值进行第二哈希程序,计算字段编号;加载位置冲突列表;将字段编号与位置冲突列表中的字段编号进行比对,查找位置冲突列表中是否已经存储有相同的字段编号;若位置冲突列表中不存在字段编号时,则将主哈希值写入相应的区块编号与字段编号之中。

Description

建立数据区块的索引方法
技术领域
本发明公开了一种建立数据区块的索引方法,特别有关于一种应用在重复数据删除程序之中,将经过重复数据删除的切分程序后所产生的数据区块相应的建立数据区块的索引方法。
背景技术
重复数据删除是一种数据缩减技术,通常用于基于磁盘的备份系统,主要目的在于减少存储系统中使用的存储容量。它的工作方式是在某个时间周期内查找不同文件中不同位置的重复可变大小数据块。重复的数据块用指示符取代。由于存储系统中总是充斥着大量的冗余数据。为了解决这个问题,节省更多空间,“重复删除”技术便顺理成章地成了人们关注的焦点。采用“重复删除”技术可以将存储的数据缩减为原来的1/20,从而让出更多的备份空间,不仅可以使存储系统上的备份数据保存更长的时间,而且还可以节约离线存储时所需的大量的带宽。
请参考图1所示,其为现有技术的重复数据删除的存取的示意图。为能有效的掌控已储存的文件数据,因此在服务器端中会透过哈希(Hash)列表来记录各输入文件的数据区块。在哈希列表中记录了数据区块所相应的哈希值。由于哈希算法具有单向转换(One-Way transform)的特点,所以每一个数据区块必然只有一组唯一的哈希值。重复删除程序也藉此特性,将相同哈希值的数据区块视为相同的。所以在储存设备中只要存储一份数据区块,并记录不同文件中相同的数据区块的对应关系即可。
然而,面对日益增加的数据量,也将使得哈希列表的长度也随之增加。这样一来,将哈希列表加载内存的时间与查找哈希列表的时间也会拉长。
发明内容
鉴于以上的问题,本发明在于提供一种建立数据区块的索引方法,应用在重复数据删除程序之中,将经过重复数据删除中的切分程序后,所产生的数据区块建立相应的索引文件。
为达上述目的,本发明所公开的建立数据区块的索引方法包括以下步骤:加载索引文件,在索引文件包括多个位置区块,每一位置区块中更包括多个存储字段,每一存储字段记录数据区块所相应的主哈希值;对数据区块的一主哈希值进行第一哈希程序,计算区块编号;对同一数据区块的主哈希值进行第二哈希程序,计算字段编号;加载位置冲突列表;将字段编号与位置冲突列表中的字段编号进行比对,查找位置冲突列表中是否已经存储有相同的字段编号;若位置冲突列表中不存在字段编号时,则将主哈希值写入相应的区块编号与字段编号之中。
本发明所提出的阶层式索引文件用以记录数据区块的所在位置,藉以提高重复数据删除程序在内存(或硬盘中)查找索引文件的存取效率。
有关本发明的特征与实作,配合附图作最佳实施例详细说明如下。
附图说明
图1为现有技术的重复数据删除的存取的示意图;
图2为本发明的架构示意图;
图3A为本发明的索引文件建立流程示意图;
图3B为本发明的索引文件架构示意图;
图4为本发明的查询索引文件的流程示意图。
其中,附图标记:
客户端210 服务器端220
索引文件221
位置冲突列表222
具体实施方式
请参考图2所示,其为本发明的架构示意图。本发明包括客户端210与服务器端220。客户端210可以通过因特网(Internet)或企业内网(intranet)的方式连接于服务器端220,也可以将客户端210与服务器端220同时运行于同一台计算器装置上。而客户端210用以对所输入的文件进行重复数据删除程序,并透过服务器端根据本发明将产生相应的输入文件的该些数据区块的索引文件221。
在服务器端220中存储索引文件221与位置冲突列表222。索引文件221记录多组数据区块的哈希值。为能提高索引文件221的查找效率,并降低索引文件221在内存或高速缓存间的存取时间。因此提出索引文件221的建立方法,请同时参考图3A与图3B所示,其分别为本发明的索引文件建立流程示意图与索引文件架构示意图。
步骤S310:加载索引文件,在索引文件包括多个位置区块,每一位置区块中更包括多个存储字段,每一存储字段记录数据区块所相应的主哈希值;
步骤S320:对数据区块的主哈希值进行第一哈希程序,计算区块编号;
步骤S330:对同一数据区块的主哈希值进行第二哈希程序,计算字段编号;
步骤S340:建立位置冲突列表,用以记录字段编号相同者;
步骤S350:将字段编号与位置冲突列表中的字段编号进行比对,查找位置冲突列表中是否已经存储有相同的字段编号;以及
步骤S360:若位置冲突列表中不存在字段编号时,则将主哈希值写入相应的区块编号与字段编号之中。
如图3B所示,索引文件221包括多个位置区块,每一位置区块中更包括多个存储字段,每一存储字段记录数据区块所相应的主哈希值。在索引文件221中的存储字段均是定长。在本发明中存储字段的数量透过下式1所产生:
N=位置区块的容量/存储字段的容量 式1
N:存储字段的数量。
而位置区块的数量由式2所产生:
M=数据区块的数量/N 式2
M:位置区块的数量。
索引文件221被划分成多个容量为固定大小的位置区块(以下以M个位置区块作为说明)。数据区块对应的主哈希值(可透过SHA 1或SHA 256算法得到)进行第一哈希程序的处理,使区块编号能散列于M个区块编号的范围之内。为能达成散落于M个区块编号的范围的目的,可以将主哈希值透过模数计算(mod),使得主哈希值的余数可以确定落于M个区块编号的范围之内(如图3B所示,用以选择相应的位置区块)。第一哈希程序所产生的哈希值只用于分配主哈希值的存储分配,所以其计算结果(区块编号)是不会占用实际的内存和硬盘空间。
接着,再对主哈希值的做第二哈希程序,用以将所产生的第二哈希值作为相应数据区块的字段编号。字段编号用以标示在区块编号中的特定字段。同理,为能使字段标号散落在N个存储字段的范围之内(如图3B所示,用以选择相应的存储字段),可以将主哈希值透过模数计算(mod)。当主哈希值经过N的模数计算后,主哈希值的余数将仅会分布于N个存储字段的范围之内。如此一来,则完成索引文件221的建立。
请参考图4所示,其为本发明的查询索引文件221的流程示意图。查询索引文件221包括以下步骤:
步骤S410:客户端接收区块查询请求,用以查询索引文件中是否存在相应的数据区块;
步骤S420:若索引文件中不存在区块查询请求所要查询的数据区块时,则在内存中产生暂存索引文件,并在暂存索引文件中记录数据区块被查询的次数;以及
步骤S430:当数据区块被查询的次数符合门坎值时,则于索引文件中建立数据区块的相应区块编号与字段编号。
首先,客户端210向服务器端220发出对一输入文件的查询要求时,服务器端220根据索引文件221对输入文件进行比对是否在服务器端220中已经存在有相同的数据区块。
如果欲查询的第二哈希值已见于索引文件221之中(意即经过第二哈希程序的主哈希值),则把主哈希值的字段编号都保存在位置冲突列表222中。将字段编号记录于位置冲突列表222中并且利用地址指针记录字段编号所相应的数据区块。换言之,就是以链表的记录方式,将每一条记录都有一个字段记录与主哈希值相同的下一条记录的记录号。如果在记录号的后面没有冲突的记录这个字段值时,则可以将此一记录号设置成无效值。
当第二哈希值出现与之前的主哈希值重复冲突时,对主哈希值再进行一次哈希将其散列在位置冲突列表222中。在本发明中炼表的处理程序可以透过下述方式所实现:假设对主哈希值取N的模数运算(mod),则位置冲突列表222的项次数量即为N个,并请同时参考表1。
记录号码 主哈希值 记录号
1 主哈希值1 N+1
2 主哈希值2 无效值0
3 主哈希值3 无效值0
N 主哈希值N 无效值0
N+1 主哈希值N+1 N+3
N+2 主哈希值N+2 无效值0
N+3 主哈希值N+3 无效值0
表1.位置冲突列表
首先对“主哈希值1”取N的余数后并将其第二哈希值存入位置冲突列表222的第一条记录中。然而,“主哈希值N+1”取N的余数后的第二哈希值是也会对应第一条记录,因此就会产生了重复的冲突。
这时该第一条记录已有内容(其内容为“主哈希值1”),并且两个主哈希值不同(分别为“主哈希值1”与“主哈希值N+1”)。因此“主哈希值N+1”的第二哈希值会被添加到位置冲突列表222的尾部,并将其记录号“主哈希值N+1”记入第一条记录中,以进行关联。
同理,假设“主哈希值N+3”对N取余后同样与“主哈希值1”会发生冲突,而其记录的冲突记录号“N+1”找到“主哈希值N+1”比较后,主哈希值也不相同,则又被添加到位置冲突列表222。并且将记录号“主哈希值N+3”记录在记录“主哈希值N+1”中用以关联。记录“N+2”添加过程相同。而在位置冲突列表222中的“无效值0”的记录号用以表示此记录后面不存在冲突记录。
当查询的主哈希值是新数据时则不立即进行写入硬盘的动作,而是先将主哈希值保存在高速缓存中。服务器端220会执行计数的动作,等待新数据的超过门坎值或者高速缓存的容量超过一定大小时才进行写入硬盘的动作。这样就能避免频繁的写盘动作。
本发明所提出的阶层式索引文件221用以记录数据区块的所在位置,藉以提高重复数据删除程序在内存(或硬盘中)查找索引文件221的存取效率。

Claims (2)

1.一种建立数据区块的索引方法,应用在一重复数据删除程序之中,将经过该重复数据删除程序的一切分程序后所产生的一数据区块建立相应的索引文件,其特征在于,该建立数据区块的索引方法包括以下步骤:
加载一索引文件,在该索引文件包括多个位置区块,每一该位置区块中更包括多个存储字段,每一该存储字段记录该数据区块所相应的一主哈希值;
对该数据区块的该主哈希值进行一第一哈希程序,计算并产生一区块编号;
对同一该数据区块的该主哈希值进行一第二哈希程序,计算并产生一字段编号;
建立一位置冲突列表,用以记录该字段编号相同者;
将该字段编号与该位置冲突列表中的该些字段编号进行比对,查找该位置冲突列表中是否已经存储有相同的该字段编号;
若该位置冲突列表中不存在该字段编号时,则将该主哈希值写入相应的该区块编号与该字段编号之中;以及
若该位置冲突列表中存在该字段编号时,将该字段编号记录于该位置冲突列表中并且利用一地址指针记录该字段编号所相应的该数据区块。
2.如权利要求1所述的建立数据区块的索引方法,其特征在于,在完成该索引文件后还包括:
接收一区块查询请求,用以查询该索引文件中是否存在相应的该数据区块;
若该索引文件中不存在该区块查询请求所要查询的该数据区块时,则在一内存中产生一暂存索引文件,并在该暂存索引文件中记录该数据区块被查询的次数;以及
当该数据区块被查询的次数符合一门坎值时,则于该索引文件中建立该数据区块的相应该区块编号与该字段编号。
CN201010544374.1A 2010-11-05 2010-11-05 建立数据区块的索引方法 Expired - Fee Related CN102467458B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010544374.1A CN102467458B (zh) 2010-11-05 2010-11-05 建立数据区块的索引方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010544374.1A CN102467458B (zh) 2010-11-05 2010-11-05 建立数据区块的索引方法

Publications (2)

Publication Number Publication Date
CN102467458A CN102467458A (zh) 2012-05-23
CN102467458B true CN102467458B (zh) 2014-08-06

Family

ID=46071116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010544374.1A Expired - Fee Related CN102467458B (zh) 2010-11-05 2010-11-05 建立数据区块的索引方法

Country Status (1)

Country Link
CN (1) CN102467458B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729342B (zh) * 2012-10-12 2016-09-28 中国银联股份有限公司 文件比对方法及装置
CN104424220B (zh) * 2013-08-23 2018-07-13 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN106844477B (zh) * 2016-12-23 2018-05-01 北京众享比特科技有限公司 区块链系统、区块查找方法和区块链后向同步方法
CN108572958B (zh) * 2017-03-07 2022-07-29 腾讯科技(深圳)有限公司 数据处理方法及装置
CN111723266A (zh) * 2019-03-19 2020-09-29 北京沃东天骏信息技术有限公司 海量数据处理方法和装置
CN109951490A (zh) * 2019-03-27 2019-06-28 远光软件股份有限公司 基于区块链的网页防篡改方法、系统及电子设备
CN112241336A (zh) * 2019-07-19 2021-01-19 伊姆西Ip控股有限责任公司 用于备份数据的方法、设备和计算机程序产品
CN112148738B (zh) * 2020-09-24 2024-06-11 苏州盛科通信股份有限公司 哈希冲突处理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751990A (en) * 1994-04-26 1998-05-12 International Business Machines Corporation Abridged virtual address cache directory
CN1716215A (zh) * 2004-06-30 2006-01-04 深圳市朗科科技有限公司 减少存储介质中的数据冗余的方法
CN101788935A (zh) * 2009-01-23 2010-07-28 英业达集团(天津)电子技术有限公司 冗余磁盘数组系统的坏块处理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US9275067B2 (en) * 2009-03-16 2016-03-01 International Busines Machines Corporation Apparatus and method to sequentially deduplicate data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751990A (en) * 1994-04-26 1998-05-12 International Business Machines Corporation Abridged virtual address cache directory
CN1716215A (zh) * 2004-06-30 2006-01-04 深圳市朗科科技有限公司 减少存储介质中的数据冗余的方法
CN101788935A (zh) * 2009-01-23 2010-07-28 英业达集团(天津)电子技术有限公司 冗余磁盘数组系统的坏块处理方法

Also Published As

Publication number Publication date
CN102467458A (zh) 2012-05-23

Similar Documents

Publication Publication Date Title
CN102467458B (zh) 建立数据区块的索引方法
US8271462B2 (en) Method for creating a index of the data blocks
CN102467572B (zh) 支持重复数据删除程序的数据区块查询方法
CN102364474B (zh) 用于机群文件系统的元数据存储系统和管理方法
US9851917B2 (en) Method for de-duplicating data and apparatus therefor
CN101963982B (zh) 基于位置敏感哈希的删冗存储系统元数据管理方法
CN102663086B (zh) 一种数据块索引的检索方法
CN103019887B (zh) 数据备份方法及装置
CN103516369A (zh) 一种自适应数据压缩和解压缩的方法和系统及存储装置
CN102622434B (zh) 数据存储方法、查找方法及装置
JP2015512604A (ja) 暗号ハッシュ・データベース
CN102833298A (zh) 分布式的重复数据删除系统及其处理方法
US8255406B2 (en) Data management using multi-state bloom filter
CN103186652A (zh) 分布式的重复数据删除系统及其方法
CN107153707A (zh) 一种针对非易失内存的哈希表构建方法及系统
CN102799598A (zh) 重复数据删除的数据复原方法
CN103914483B (zh) 文件存储方法、装置及文件读取方法、装置
CN112486994B (zh) 一种基于日志结构合并树的键值存储的数据快速读取方法
CN101478608A (zh) 基于二维散列的海量数据的快速操作方法
CN109407985B (zh) 一种数据管理的方法以及相关装置
KR101226600B1 (ko) 메모리 시스템 및 그의 메모리 맵핑 방법
WO2013075306A1 (zh) 数据访问方法和装置
WO2010084754A1 (ja) データベースシステム、データベース管理方法、データベース構造および記憶媒体
CN112882663B (zh) 一种随机写的方法、电子设备及存储介质
CN106055679A (zh) 一种多层次缓存感知型索引方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CB03 Change of inventor or designer information

Inventor after: Zou Deyi

Inventor after: Li Aiwu

Inventor after: Yang Lijun

Inventor after: Xiao Hong

Inventor after: Tang Sai

Inventor after: Zhu Jingliang

Inventor after: Zhang Bin

Inventor before: Wang Yunsong

Inventor before: Zhu Mingsheng

Inventor before: Chen Zhifeng

CB03 Change of inventor or designer information
TR01 Transfer of patent right

Effective date of registration: 20170417

Address after: Yueyang economic and Technological Development Zone, Yueyang Road, Hunan branch of Industrial Park

Patentee after: Hunan Zhongke Electric Co., Ltd.

Address before: Taipei City, Taiwan, China

Patentee before: Inventec Corporation

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140806

Termination date: 20171105

CF01 Termination of patent right due to non-payment of annual fee