CN113495901B - 一种面向可变长数据块的快速检索方法 - Google Patents
一种面向可变长数据块的快速检索方法 Download PDFInfo
- Publication number
- CN113495901B CN113495901B CN202110424974.2A CN202110424974A CN113495901B CN 113495901 B CN113495901 B CN 113495901B CN 202110424974 A CN202110424974 A CN 202110424974A CN 113495901 B CN113495901 B CN 113495901B
- Authority
- CN
- China
- Prior art keywords
- data block
- length
- fingerprints
- current
- block
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向可变长数据块的快速检索方法,包括提取数据块长度及部分位置字节值;构建索引树;计算并比对数据块指纹等步骤;本发明通过提取可变长的数据块的长度和字节构建索引,实现了先检索冲突再计算指纹的检索方式,从而减少指纹计算的过程,提高检索效率。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种面向可变长数据块的快速检索方法。
背景技术
衡量重复数据删除能力的一个重要指标为***开销,***开销主要包括指纹计算的开销和指纹检索的开销。在存储***中,随着时间的迁移,所存储的数据会越来越大,此时指纹检索与比对不仅会占用大量的计算资源,同时也会提高磁盘IO,导致检索效率降低。因此,检索效率优化是降低***开销的主要手段。
检索效率优化目前主要借助的手段有布隆过滤器快速判断、利用数据的局部性预先加载数据、利用数据的相似性构建分层索引、根据存储介质的不同优化索引结构、根据存储的数据类型进行优化索引结构等。
目前,重复数据检索方式主要是:先计算数据块指纹,然后比对指纹索引表,判断数据块是否重复。但是,数据块的指纹一般采用安全哈希函数如SHA256、SHA-3等,而先计算指纹则会占用大量的计算时间。
发明内容
本发明的目的在于提出一种面向可变长数据块的快速检索方法,通过提取可变长的数据块的长度和字节构建索引,实现先检索冲突再计算指纹的检索方式,从而减少指纹计算的过程,提高检索效率。
本发明采用的技术方案是:
一种面向可变长数据块的快速检索方法,包括以下步骤:
步骤S1、读取一个待检索的可变长数据块组;
步骤S2.1、输入一个所述可变长数据块组的数据块;
步骤S2.2、若当前输入为空,则输出判断结果并终止检索,否则提取当前数据块的长度L以及部分位置的字节值A0、A1、A2、…;
步骤S3、将当前数据块长度映射到[0,255]区间上,并以映射后的值作为索引树的第一个子节点,构建索引树;
步骤S4、计算数据块指纹,再比对指纹,将数据块信息添加为当前节点的子节点,返回步骤S1。
进一步的,所述步骤S3,具体为:
步骤S3.1、计算K=min(L,65536)mod 256,其中,K表示将当前数据块长度映射到[0,255]区间上的值,L表示数据块长度,min(L,65536)表示取L与65536中较小值,用于将长度超过64KB的数据块划分为同一子节点,mod表示取模运算;
步骤S3.2、依次以K,A0,A1,A2,…为键,构建索引树S-K-A0-A1-A2-…,其中,S表示索引树的根节点。
进一步的,所述步骤S4,具体为:
步骤S4.1、若当前索引下无其他数据块,则当前检测的数据块为唯一块,返回步骤S2;否则,进入步骤S4.2;
步骤S4.2、分别计算当前索引下未计算指纹的数据块的指纹和当前检测的数据块的指纹;
步骤S4.3、将当前检测的数据块指纹与索引下其他数据块指纹比对,若存在,则当前检测的数据块为重复块,否则为非重复块;
步骤S4.4、将数据块信息添加为当前节点的子节点,返回步骤S2。
进一步的,所述数据块指纹为数据块的安全哈希函数值。
进一步的,所述提取的部分位置字节值定义为第1个字节值、最后1个字节值、第[L/2]个字节值、第2n个字节值,其中,L表示数据块长度,n为自然数且2n≤L。
与现有技术相比,本发明所达到的有益效果为:
(1)本发明引入块尺寸作为索引之一,能应用于基于内容的分块方法;
(2)本发明先根据块内容构建索引,当索引下存在多个块时,才需要计算指纹比对,能够降低指纹计算的次数,从而提高检索效率。
附图说明
图1为本发明的流程图;
图2为实施例2的具体步骤示意图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例1
如图1所示,一种面向可变长数据块的快速检索方法:
(1)输入一组需要重复检测的一组块;
(2)输入一个块。若当前输入为空,则终止搜索;否则进入步骤(3)
(3)提取块的长度L,第一个字节A,最后一个字节B,第[L/2]个字节C;
(4)计算K=min(L,65536)mod 256;
(5)依次以K,A,B,C为节点,构建索引树S-K-A-B-C,其中S表示索引树的根节点;
(6)若当前索引下无其他块,则当前检测块为唯一块,返回步骤(2);否则,进入下一步;
(7)计算当前索引下未计算指纹的数据块与当前检测的数据块的指纹;
(8)将当前检测的数据块指纹与索引下其他块指纹比对,若存在,则当前检测的块为重复块,否则为非重复块,返回步骤(2)。
实施例2
如图2所示,一种面向可变长数据块的快速检索方法:
(1)读取一个待检索的可变长数据块组;
(2)输入一个所述可变长数据块组的数据块1;
(3)提取数据块1的长度L以及部分位置的字节值1D、34、50;
(4)将数据块1长度映射到[0,255]区间上,计算K=min(L,65536)mod 256,其中,K表示将当前数据块长度映射到[0,255]区间上的值,L表示数据块长度,min(L,65536)表示取L与65536中较小值,用于将长度超过64KB的数据块划分为同一子节点,mod表示取模运算;
(5)依次以K,1D,34,50为键,构建索引树S-K-1D-34-50,其中,S表示索引树的根节点;
(6)当前索引下无其他数据块,数据块1为唯一块;
(7)输入一个所述可变长数据块组的数据块2;
(8)提取数据块2的长度L以及部分位置的字节值1D、34、50;
(9)将数据块2长度映射到[0,255]区间上,计算K=min(L,65536)mod 256;
(10)依次以K,1D,34,50为键,构建索引树S-K-1D-34-50;
(11)当前索引下有其他数据块,数据块2不是唯一块,需要比对指纹;
(12)分别计算数据块2的索引下未计算指纹的数据块的指纹和当前检测的数据块的指纹;
(13)将数据块2的指纹与索引下其他数据块指纹比对,若存在,则当前检测的数据块为重复块,否则为非重复块;
(14)将数据块2信息添加为当前节点的子节点;
(15)输入一个所述可变长数据块组的数据块3;
(16)提取数据块3的长度L以及部分位置的字节值82、9D、12;
(17)将数据块3长度映射到[0,255]区间上,计算K=min(L,65536)mod 256;
(18)依次以K,82,9D,12为键,构建索引树S-K-82-9D-12;
(19)当前索引下无其他数据块,数据块3为唯一块。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (2)
1.一种面向可变长数据块的快速检索方法,其特征在于,包括以下步骤:
步骤S1、读取一个待检索的可变长数据块组;
步骤S2、提取数据块组中的数据块的长度及部分位置字节值;
所述提取的部分位置字节值定义为第1个字节值、最后1个字节值、第[L/2]个字节值、第2n个字节值,其中,L表示数据块长度,n为自然数且2n≤L;
所述步骤S2,具体为:
步骤S2.1、输入一个所述可变长数据块组的数据块;
步骤S2.2、若当前输入为空,则输出判断结果并终止检索,否则提取当前数据块的长度L以及部分位置的字节值A0、A1、A2、…;
步骤S3、将当前数据块长度映射到[0,255]区间上,并以映射后的值作为索引树的第一个子节点,构建索引树;
所述步骤S3,具体为:
步骤S3.1、计算K=min(L,65536)mod 256,其中,K表示将当前数据块长度映射到[0,255]区间上的值,L表示数据块长度,min(L,65536)表示取L与65536中较小值,用于将长度超过64KB的数据块划分为同一子节点,mod表示取模运算;
步骤S3.2、依次以K,A0,A1,A2,…为键,构建索引树S-K-A0-A1-A2-…,其中,S表示索引树的根节点;
步骤S4、计算数据块指纹,再比对指纹,将数据块信息添加为当前节点的子节点,返回步骤S1;
所述步骤S4,具体为:
步骤S4.1、若当前索引下无其他数据块,则当前检测的数据块为唯一块,返回步骤S2;否则,进入步骤S4.2;
步骤S4.2、分别计算当前索引下未计算指纹的数据块的指纹和当前检测的数据块的指纹;
步骤S4.3、将当前检测的数据块指纹与索引下其他数据块指纹比对,若存在,则当前检测的数据块为重复块,否则为非重复块;
步骤S4.4、将数据块信息添加为当前节点的子节点,返回步骤S2。
2.根据权利要求1所述的一种面向可变长数据块的快速检索方法,其特征在于,所述数据块指纹为数据块的安全哈希函数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110424974.2A CN113495901B (zh) | 2021-04-20 | 2021-04-20 | 一种面向可变长数据块的快速检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110424974.2A CN113495901B (zh) | 2021-04-20 | 2021-04-20 | 一种面向可变长数据块的快速检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113495901A CN113495901A (zh) | 2021-10-12 |
CN113495901B true CN113495901B (zh) | 2023-10-13 |
Family
ID=77997665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110424974.2A Active CN113495901B (zh) | 2021-04-20 | 2021-04-20 | 一种面向可变长数据块的快速检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113495901B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023108360A1 (zh) * | 2021-12-13 | 2023-06-22 | 华为技术有限公司 | 一种存储***中数据管理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289518A (zh) * | 2011-09-13 | 2011-12-21 | 盛乐信息技术(上海)有限公司 | 音频指纹检索库的更新方法及*** |
CN103959256A (zh) * | 2011-11-28 | 2014-07-30 | 国际商业机器公司 | 基于指纹的数据重复删除 |
CN105338297A (zh) * | 2014-08-11 | 2016-02-17 | 杭州海康威视***技术有限公司 | 一种视频数据存储及回放***、装置和方法 |
CN111091118A (zh) * | 2019-12-31 | 2020-05-01 | 北京奇艺世纪科技有限公司 | 图像的识别方法、装置及电子设备和存储介质 |
CN112347272A (zh) * | 2020-09-18 | 2021-02-09 | 国家计算机网络与信息安全管理中心 | 一种基于音视频动态特征的流式匹配方法和装置 |
CN112470140A (zh) * | 2018-06-06 | 2021-03-09 | 吴英全 | 基于块的重复数据删除 |
-
2021
- 2021-04-20 CN CN202110424974.2A patent/CN113495901B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289518A (zh) * | 2011-09-13 | 2011-12-21 | 盛乐信息技术(上海)有限公司 | 音频指纹检索库的更新方法及*** |
CN103959256A (zh) * | 2011-11-28 | 2014-07-30 | 国际商业机器公司 | 基于指纹的数据重复删除 |
CN105338297A (zh) * | 2014-08-11 | 2016-02-17 | 杭州海康威视***技术有限公司 | 一种视频数据存储及回放***、装置和方法 |
CN112470140A (zh) * | 2018-06-06 | 2021-03-09 | 吴英全 | 基于块的重复数据删除 |
CN111091118A (zh) * | 2019-12-31 | 2020-05-01 | 北京奇艺世纪科技有限公司 | 图像的识别方法、装置及电子设备和存储介质 |
CN112347272A (zh) * | 2020-09-18 | 2021-02-09 | 国家计算机网络与信息安全管理中心 | 一种基于音视频动态特征的流式匹配方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113495901A (zh) | 2021-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6028567B2 (ja) | データ格納プログラム、データ検索プログラム、データ格納装置、データ検索装置、データ格納方法及びデータ検索方法 | |
WO2017065885A1 (en) | Distributed pipeline optimization data preparation | |
US10642814B2 (en) | Signature-based cache optimization for data preparation | |
CN109376196B (zh) | 一种redo日志批量同步方法及装置 | |
JP2017517082A (ja) | 並列ディシジョン・ツリー・プロセッサー・アーキテクチャ | |
CN102129458A (zh) | 关系型数据库的存储方法及装置 | |
CN106778079A (zh) | 一种基于MapReduce的DNA序列k‑mer频次统计方法 | |
CN102169491B (zh) | 一种多数据集中重复记录动态检测方法 | |
WO2016043757A1 (en) | Data to be backed up in a backup system | |
CN108205571B (zh) | 键值数据表的连接方法及装置 | |
EP3362808B1 (en) | Cache optimization for data preparation | |
WO2017065888A1 (en) | Step editor for data preparation | |
CN110019205B (zh) | 一种数据存储、还原方法、装置及计算机设备 | |
CN106557571A (zh) | 一种基于k‑v存储引擎的数据去重方法及装置 | |
CN113495901B (zh) | 一种面向可变长数据块的快速检索方法 | |
WO2022199400A1 (zh) | 持久内存文件***元数据的检索方法和装置、存储结构 | |
Holt et al. | Constructing Burrows-Wheeler transforms of large string collections via merging | |
CN111026736B (zh) | 数据血缘管理方法及装置、数据血缘解析方法及装置 | |
WO2024078122A1 (zh) | 数据库表扫描的方法、装置以及设备 | |
CN110532284B (zh) | 海量数据存储和检索方法、装置、计算机设备及存储介质 | |
US20070239794A1 (en) | Method and system for updating logical information in databases | |
CN112214494B (zh) | 检索方法及装置 | |
CN111752954B (zh) | 一种大规模特征数据存储的方法及装置 | |
CN107729518A (zh) | 一种关系型数据库的全文检索方法及装置 | |
JP2018136640A (ja) | 検出方法、検出装置および検出プログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |