CN113076059B - 一种基于ram分块算法的控制分块大小的方法 - Google Patents
一种基于ram分块算法的控制分块大小的方法 Download PDFInfo
- Publication number
- CN113076059B CN113076059B CN202110242764.1A CN202110242764A CN113076059B CN 113076059 B CN113076059 B CN 113076059B CN 202110242764 A CN202110242764 A CN 202110242764A CN 113076059 B CN113076059 B CN 113076059B
- Authority
- CN
- China
- Prior art keywords
- size
- block
- scaling
- bytes
- controlling
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000003491 array Methods 0.000 claims description 8
- 230000000903 blocking effect Effects 0.000 claims description 7
- 230000003247 decreasing effect Effects 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims 1
- 238000004364 calculation method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于RAM分块算法的控制分块大小的方法,包括,对于需要备份的数据流按照顺序读取2个字节,并组合成长度为16位的新数,新数参与后续比较操作,根据当前分块阶段读取的字节长度确定缩放比例,对固定窗口中的最大值进行放缩;根据读取的新数与放缩后的最大值,确定是否分块。本发明将块尺寸主要控制在期望区间内,减少尺寸较小的块与尺寸较大的块生成,避免大尺寸块造成存储空间冗余与大量小尺寸块造成的元数据占用大量存储空间的情况。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种基于RAM分块算法的控制分块大小的方法。
背景技术
随着大量的数据需要存储,通过重复数据删除技术实现冗余数据查询与删除,对提高存储效率具有重要意义。在重复数据删除技术中,基于内容的分块技术对进一步检测冗余块的精度以及重删效率十分关键,分出的块尺寸越大,则数据冗余就越难以检测出;分出的小块数量越多,则存储块的元数据的所需要的存储空间则越多。RAM是一种分块速率较高的基于内容的分块算法,分成的块的尺寸服从于指数分布,即存在大量尺寸小的块,同时也会存在一部分尺寸极长的块。
为了解决块尺寸过大或过小的问题,控制分块大小成为重复数据删除领域中的一个重要的研究方向。
发明内容
本发明的目的在于提出一种基于RAM算法的控制分块大小的方法,根据数据长度对算法参数进行改变,减少了小尺寸块生成的数量与大尺寸块的数量,并使块尺寸主要分布在期望长度区间内。
为达到上述目的,本发明采用以下技术方案:
本发明提供一种基于RAM算法的控制分块大小的方法,包括:
(1)新建一个块,在新块开端设置一个固定窗口;
(2)对于需要备份的数据流按照顺序读取2个字节,分别为Byte1和Byte2,并组合成新的16位的数Y;
(3)若数据流读取未结束,进入步骤(4);否则,进入步骤(8);
(4)若当前固定窗口未填满,则将读取的字节 Byte1和Byte2填入当前固定窗口中,进入步骤(5);否则进入步骤(6);
(5)比较当前固定窗口中的字节在步骤(2)中组合形成的数的大小,得到最大值X,返回步骤(2);
(6)根据当前块尺寸选择缩放比例数组a,进入步骤(7);
(7)从缩放比例数组a中选取一个数作为A,比较是否满足Y≥A×X,若满足条件,则将Byte2作为分块边界,保存当前块,回到步骤(1);若不满足条件,则继续读取2个字节,组合后回到步骤(6);
(8)保存分块结果。
进一步的,还包括,
预设固定窗口长度。
进一步的,还包括,
预先设置缩放比例数组;
所述缩放比例数组有两组,缩放比例数组中为都大于0且依次递减的数;一组都大于1,另一组小于1。
进一步的,所述缩放比例数组中的数不超过4。
进一步的,所述步骤(6)中,根据当前块尺寸选择缩放比例数组,包括:
判断当前块尺寸是否在预设的期望区间内,若当前块尺寸小于期望区间的下限,选择都大于1的一组缩放比例数组作为a;若当前块尺寸在期望区间内,选择a=1;若当前块尺寸超过期望区间的上限,选择都小于1的一组缩放比例数组作为a。
进一步的,所述期望区间设置为[1024, 8192]。
进一步的,所述步骤(7)中,从缩放比例数组a中选取一个数作为A,包括,
在进行比较时,从缩放比例数组a中选取一个数值作为A,并且当读取一定数量的字节时,改用缩放比例数组a中下一个数值作为A。
进一步的,所述读取一定数量的字节根据固定窗口长度和缩放比例数组中数的数量决定。
本发明与原RAM分块算法相比,具有以下优点和有益效果:
(1)本发明根据读取字节长度不同确定缩放比例,将分出的块的尺寸控制在合理区间内,避免产生大量的小块与极大块。
(2)本发明一次性读取两个字节,减少了因放缩产生的计算代价产生的额外的计算时间。
附图说明
图1是本发明的基于RAM算法的控制块大小的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。
参见图1,本发明实施例提供一种基于RAM算法的控制分块大小的方法,包括以下步骤:
步骤S1:设置相关参数,包括:固定窗口长度、期望主要的分布区间和放缩比例。
固定窗口长度:确定一个窗口,用于获取在分块过程中需要比较的两个值中的一个;
当前的块尺寸:块的开端到当前读取的字节所在位置的长度;
期望主要的分布区间:实验过程中,一般设置为[1024, 8192](字节),用于判断当前块尺寸是否在分布区间内;
缩放比例:分为两组都大于0且依次递减的数。其中一组都大于1,用于放大最大值;另一组小于1,用于缩小最大值。
本发明实施例中用于放大的值不超过4。
步骤S2:读取需要备份的数据流;
步骤S3:开始分块,包括:
(3.1)新建一个块,在新块开端设置一个固定窗口;
(3.2)对于需要备份的数据流按照顺序读取2个字节,分别为Byte1和Byte2,组合成新的16位的数Y。
(3.3)若数据流读取未结束,进入步骤(3.4);否则,进入步骤(3.8);
(3.4)若当前固定窗口未填满,则将读取的字节 Byte1和Byte2填入该固定窗口中,进入步骤(3.5);否则进入步骤(3.6);
(3.5)比较当前固定窗口中的字节在步骤(3.2)中组合形成的数的大小,得到最大值X,返回步骤(3.2);
(3.6)判断当前块尺寸是否在期望区间内,若当前块尺寸小于期望区间的下限,选择都大于1的一组缩放比例数组作为a,并根据尺寸增加而减小;若当前块尺寸在期望区间内,选择1为缩放值,即a=1;当块尺寸超过期望区间的上限时,选择都小于1的一组缩放比例数组作为a,并根据尺寸增加而减小,进入步骤(3.7);
(3.7)从a中选取一个数a[i],比较是否满足Y≥a[i]×X,若满足条件,则将Byte2作为分块边界,保存该块,回到步骤(3.1);若不满足条件,则继续读取2个字节,组合后回到步骤(3.6);
(3.8)保存分块结果。
应该理解,本发明实施例的步骤(3.7)中,在进行比较时,缩放比例数组a中选取一个数值a[i],并且每当读取一定数量的字节时,缩放比例改用a[i+1](这个一定数量根据这一组缩放比例的数量确定,如固定窗口长度为512,期望下限为1024,缩放比例数量为3个,那可以每读取128个字节就选用下一个缩放比例数值)。
应该理解,本发明实施例中,块的尺寸是动态大小,包含两个部分:固定窗口部分和可变长度部分。确认分块的条件是可变长部分中的Byte不小于固定窗口中的Byte。
在本实施方式中,通过每次读取2个字节组合,并对实际参与比较的最大值进行放缩,控制块大小主要分布在期望区间内。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (6)
1.一种基于RAM算法的控制分块大小的方法,其特征在于,包括:
(1)新建一个块,在新块开端设置一个固定窗口;
(2)对于需要备份的数据流按照顺序读取2个字节,分别为Byte1和Byte2,并组合成新的16位的数Y;
(3)若数据流读取未结束,进入步骤(4);否则,进入步骤(8);
(4)若当前固定窗口未填满,则将读取的字节Byte1和Byte2填入当前固定窗口中,进入步骤(5);否则进入步骤(6);
(5)比较当前固定窗口中的字节在步骤(2)中组合形成的数的大小,得到最大值X,返回步骤(2);
(6)根据当前块尺寸选择缩放比例数组a,具体为,判断当前块尺寸是否在预设的期望区间内,若当前块尺寸小于期望区间的下限,选择都大于1的一组缩放比例数组作为a;若当前块尺寸在期望区间内,选择a=1;若当前块尺寸超过期望区间的上限,选择都小于1的一组缩放比例数组作为a;
然后进入步骤(7);
(7)从缩放比例数组a中选取一个数作为A,比较是否满足Y≥A×X,若满足条件,则将Byte2作为分块边界,保存当前块,回到步骤(1);若不满足条件,则继续读取2个字节,组合后回到步骤(6);在进行比较时,从缩放比例数组a中选取一个数值作为A,并且当读取一定数量的字节时,改用缩放比例数组a中下一个数值作为A;
(8)保存分块结果。
2.根据权利要求1所述的一种基于RAM算法的控制分块大小的方法,其特征在于,还包括,
预设固定窗口长度。
3.根据权利要求1所述的一种基于RAM算法的控制分块大小的方法,其特征在于,还包括,
预先设置缩放比例数组;
所述缩放比例数组有两组,缩放比例数组中为都大于0且依次递减的数;一组都大于1,另一组小于1。
4.根据权利要求3所述的一种基于RAM算法的控制分块大小的方法,其特征在于,所述缩放比例数组中的数不超过4。
5.根据权利要求1所述的一种基于RAM算法的控制分块大小的方法,其特征在于,所述期望区间设置为[1024,8192]。
6.根据权利要求1所述的一种基于RAM算法的控制分块大小的方法,其特征在于,所述读取一定数量的字节根据固定窗口长度和缩放比例数组中数的数量决定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110242764.1A CN113076059B (zh) | 2021-03-05 | 2021-03-05 | 一种基于ram分块算法的控制分块大小的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110242764.1A CN113076059B (zh) | 2021-03-05 | 2021-03-05 | 一种基于ram分块算法的控制分块大小的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113076059A CN113076059A (zh) | 2021-07-06 |
CN113076059B true CN113076059B (zh) | 2022-08-02 |
Family
ID=76610034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110242764.1A Expired - Fee Related CN113076059B (zh) | 2021-03-05 | 2021-03-05 | 一种基于ram分块算法的控制分块大小的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113076059B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049263A (zh) * | 2012-12-12 | 2013-04-17 | 华中科技大学 | 一种基于相似性的文件分类方法 |
CN103324699A (zh) * | 2013-06-08 | 2013-09-25 | 西安交通大学 | 一种适应大数据应用的快速重复数据删除方法 |
-
2021
- 2021-03-05 CN CN202110242764.1A patent/CN113076059B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049263A (zh) * | 2012-12-12 | 2013-04-17 | 华中科技大学 | 一种基于相似性的文件分类方法 |
CN103324699A (zh) * | 2013-06-08 | 2013-09-25 | 西安交通大学 | 一种适应大数据应用的快速重复数据删除方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113076059A (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8375182B2 (en) | System and method for segmenting a data stream | |
CN103020255B (zh) | 分级存储方法和装置 | |
CN103150260B (zh) | 重复数据删除方法和装置 | |
JP3416502B2 (ja) | 配列維持方法 | |
CN107341267A (zh) | 一种分布式文件系统访问方法及平台 | |
WO2014067063A1 (zh) | 重复数据检索方法及设备 | |
CN113535706A (zh) | 两阶段布谷鸟过滤器及基于两阶段布谷鸟过滤器的重复数据删除方法 | |
EP2178003A2 (en) | Methods and apparatus for content-defined node splitting | |
US9378214B2 (en) | Method and system for hash key memory reduction | |
CN101783740A (zh) | 消息文件管理方法及装置 | |
CN104753539A (zh) | 一种数据压缩方法及装置 | |
CN103914483A (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN113076059B (zh) | 一种基于ram分块算法的控制分块大小的方法 | |
CN112784120B (zh) | 一种基于范围分片方式的kv内存数据库存储管理方法 | |
WO2022037015A1 (zh) | 一种基于持久性内存的列式存储方法、装置及设备 | |
CN102214360B (zh) | 一种位图构建方法及装置、求交的方法及装置 | |
CN112434085A (zh) | 基于Roaring Bitmap的用户数据统计方法 | |
CN117573676A (zh) | 基于存储系统的地址处理方法、装置、存储系统及介质 | |
WO2024021491A1 (zh) | 一种数据切片方法、装置和系统 | |
CN112579597B (zh) | 一种压缩敏感的数据库文件存储方法及系统 | |
CN112445795A (zh) | 一种时序数据库的分布式存储扩容方法及数据查询方法 | |
KR20210154596A (ko) | 해시 테이블을 이용하는 데이터 관리 장치 및 방법 | |
CN104734726A (zh) | 一种支持编辑的时序数据在线压缩方法 | |
KR101693687B1 (ko) | 데이터베이스의 컬럼 단위 압축 방법 | |
CN113486021B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220802 |
|
CF01 | Termination of patent right due to non-payment of annual fee |