CN105302495B - 数据存储方法及装置 - Google Patents
数据存储方法及装置 Download PDFInfo
- Publication number
- CN105302495B CN105302495B CN201510810721.3A CN201510810721A CN105302495B CN 105302495 B CN105302495 B CN 105302495B CN 201510810721 A CN201510810721 A CN 201510810721A CN 105302495 B CN105302495 B CN 105302495B
- Authority
- CN
- China
- Prior art keywords
- data
- function
- data block
- parameter information
- correlation relation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000003860 storage Methods 0.000 title claims abstract description 31
- 230000006870 function Effects 0.000 claims abstract description 230
- 238000013500 data storage Methods 0.000 claims description 13
- 230000000694 effects Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 238000005192 partition Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种数据存储方法及装置,该方法包括:网络设备确定至少两个数据块之间的数据关联关系;若根据数据关联关系在函数库中成功匹配到数据关联关系对应的函数;则网络设备根据数据块和函数确定待输入的参数信息,并将每个数据块存储为一个数据结构;或者,根据至少两个数据块和函数确定待输入的参数信息,并将至少两个数据块存储为一个数据结构;其中,数据结构包括:函数索引和参数信息,函数索引与函数一一对应;参数信息用于代入所述函数中,得到对应的数据块。该数据存储方法只需要存储函数索引和参数信息即可,无需将整个数据块中的所有数据进行存储,从而达到降低占用存储空间的效果。
Description
技术领域
本发明实施例涉及数据存储技术,尤其涉及一种数据存储方法及装置。
背景技术
随着信息化技术的发展和深入,企业对数据的依赖不断增强。与此同时,急速增长的数据量也给管理和使用带来了全新的挑战。面对数据的爆炸性增长,仅仅提高网络设备的运算能力和增加存储介质容量已经不能满足高速发展的各种数据应用,因此,对高效数据缩减技术的需求已经逐步显现出来,并且越来越迫切。
其中,数据缩减技术主要包括的是重复数据删除的方法,所谓重复数据删除则是着眼于删除重复出现的数据。重复数据删除的实现由三个基本操作组成:首先,待处理数据(文件)被分割成固定或可变大小的数据块,然后计算各数据块的指纹,其中,指纹是对一个数据块通过某种算法处理后得到的一个数值,数据块的任何变化都会导致指纹的不同,因此指纹可以有效标识数据块。最后,丢弃重复出现的数据块。比如:各个数据块对应的指纹分别为:A、B、C、B、A、D、A和C,那么,网络设备最后应该丢弃重复重现的A、B和C它们对应的数据块。
然而,现有技术中,当数据块完全相同时,采用上述方法可以进行重复数据的删除,当两个数据块仅有少量数据不一样,则必然导致这两个数据块的指纹也不相同,这时网络设备根据指纹确定不进行重复数据删除。针对这种情况,并不能达到降低占用存储空间的效果。
发明内容
本发明实施例提供一种数据存储方法及装置,从而达到降低占用存储空间的效果。
第一方面,本发明实施例提供一种数据存储方法,包括:网络设备确定至少两个数据块之间的数据关联关系;若网络设备根据数据关联关系在函数库中成功匹配到数据关联关系对应的函数;则该网络设备根据数据块和函数确定待输入的参数信息,该参数信息用于代入函数中,得到对应的数据块。并将每个数据块存储为一个数据结构;或者,网络设备根据至少两个数据块和函数确定待输入的参数信息,并将至少两个数据块存储为一个数据结构;其中,该数据结构包括:函数索引和参数信息,该函数索引与函数一一对应。由于该数据存储方法只需要存储函数索引和参数信息即可,无需将整个数据块中的所有数据进行存储,从而达到降低占用存储空间的效果。
可选地,该网络设备将每个数据块存储为一个数据结构,具体包括:
若至少两个数据块之间存在的数据关联关系为第一数据块和第二数据块之间存在相同的数据段,并将相同的数据段作为基准段;
则网络设备将第一数据块存储为第一数据结构,第二数据块存储为第二数据结构;
其中,第一数据结构包括:第一函数索引和第一参数信息;该第一参数信息包括:第一数据和第一位置信息,该第一数据为该述第一数据块中除上述基准段之外的数据,该位置信息用于表示所述第一数据和所述基准段的位置关系;
第二数据结构包括:第一函数索引和第二参数信息;该第二参数信息包括:第二数据和第二位置信息,该第二数据为该第二数据块中除上述基准段之外的数据,该位置信息用于表示第二数据和基准段的位置关系;此外,第一函数索引对应的函数包括上述基准段。
通过将原来的两个数据块分别存储为上述的第一数据结构和第二数据结构,由于第一数据结构和第二数据结构中只是包括对应的函数索引和参数信息,从而大大较少了存储的数据量,从而达到降低占用存储空间的效果。
进一步地,网络设备读取上述第一数据结构和第二数据结构过程包括:只需要根据第一位置信息组合第一数据和基准段,得到第一数据块;同样,根据第二位置信息组合第二数据和基准段,得到第二数据块。从而可以准确地读取数据结构对应的原始数据块。
更进一步地,上述第一参数信息和上述第二参数信息都包括:基准段索引,该基准段索引与上述基准段对应;因此,网络设备根据第一位置信息组合第一数据和基准段,得到第一数据块之前,还包括:网络设备根据基准段索引在第一函数索引对应的函数中进行基准段匹配。
通过建立基准段索引的方式,可以使得网络设备快速匹配到索引对应的基准段。
可选的,该网络设备将至少两个数据块存储为一个数据结构,具体包括:
若至少两个数据块之间存在的数据关联关系为至少两个数据块中的所有数据构成等差数列;
则网络设备将至少两个数据块存储为一个数据结构;
其中,参数信息包括:该等差数列的首项、公差和项数。
从而使得数据存储时只需存储等差数列的首项、公差和项数,无需存储等差数列的每一项,大大较少了存储的数据量,从而达到降低占用存储空间的效果。
进一步地,针对具有等差数列特征的各个数据块,网络设备读取过程包括:网络设备将等差数列的首项、公差和项数参数信息代入函数中,得到等差数列的每一项。从而可以准确地读取数据结构对应的原始数据块。
网络设备根据所述数据关联关系在函数库中匹配所述数据关联关系对应的函数,包括:网络设备扫描函数库中的各个函数;若存在一个函数中包括数据关联关系,则匹配成功。从而实现函数与数据关联关系的匹配过程。
可选地,若该网络设备根据该数据关联关系在网络设备上的函数库中未成功匹配到函数;则该网络设备根据该数据关联关系建立函数,并将函数存入函数库中。通过建立函数不断的完善函数库,从而可以提高数据关联关系与函数的匹配效率。
下面将介绍发明实施例提供一种数据存储装置,其中装置部分与上述方法对应,对应内容技术效果相同,在此不再赘述。
第二方面,本发明实施例提供一种数据存储装置,包括:确定模块、匹配模块和存储模块;该确定模块,用于确定至少两个数据块之间的数据关联关系;若该匹配模块根据数据关联关系在函数库中成功匹配到数据关联关系对应的函数;则确定模块根据数据块和函数确定待输入的参数信息,并且存储模块将每个数据块存储为一个数据结构;或者,确定模块根据至少两个数据块和函数确定待输入的参数信息,并且存储模块将至少两个数据块存储为一个数据结构;其中,数据结构包括:函数索引和参数信息,函数索引与函数一一对应;该参数信息用于代入所述函数中,得到对应的数据块。
可选地,该存储模块具体用于:若至少两个数据块之间存在的数据关联关系为第一数据块和第二数据块之间存在相同的数据段,并将相同的数据段作为基准段;则存储模块将第一数据块存储为第一数据结构,第二数据块存储为第二数据结构;
第一数据结构包括:第一函数索引和第一参数信息;第一参数信息包括:第一数据和第一位置信息,第一数据为第一数据块中除基准段之外的数据,位置信息用于表示第一数据和所述基准段的位置关系;
第二数据结构包括:第一函数索引和第二参数信息;第二参数信息包括:第二数据和第二位置信息,第二数据为第二数据块中除所述基准段之外的数据,位置信息用于表示所述第二数据和所述基准段的位置关系;其中,第一函数索引对应的函数包括基准段。
进一步地,该装置还包括:第一获得模块;第一获得模块用于根据第一位置信息组合第一数据和所述基准段,获得第一数据块;第一获得模块还用于根据第二位置信息组合第二数据和所述基准段,获得第二数据块。
更进一步地,第一参数信息和第二参数信息都包括:基准段索引,基准段索引与基准段对应;则匹配模块还用于根据基准段索引在第一函数索引对应的函数中进行基准段匹配。
可选地,该存储模块具体用于:若至少两个数据块之间存在的数据关联关系为至少两个数据块中的所有数据构成等差数列;则存储模块将至少两个数据块存储为一个数据结构;其中,参数信息包括:等差数列的首项、公差和项数。
进一步地,该装置还包括:第二获得模块,用于将等差数列的首项、公差和项数参数信息代入所述函数中,获得等差数列的每一项。
可选地,匹配模块具体用于扫描函数库中的各个函数;若存在一个函数中包括数据关联关系,则匹配成功。
可选地,该装置还包括:建立模块:若存储模块根据数据关联关系在函数库中未成功匹配到函数;则建立模块根据数据关联关系建立函数,并且存储模块将建立的函数存入函数库中。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种数据存储方法的流程图;
图2A为本发明一实施例提供的Windows NTFS的示意图;
图2B为本发明一实施例提供的用户1与用户2的NTFS分区的示意图;
图2C为现有技术与基于本发明存储方法的重复数据删除示意图;
图3A为本发明一实施例提供的写处理流程图;
图3B为本发明一实施例提供的读处理流程图;
图4为本发明一实施例提供的一种数据存储装置的结构示意图;
图5为本发明另一实施例提供的一种数据存储装置的结构示意图;
图6为本发明再一实施例提供的一种数据存储装置的结构示意图。
具体实施方式
现有技术中重复数据删除的方法具体包括:网络设备将待处理数据分割成固定或者可变大小的数据块,然后计算各数据块的指纹,比如:计算出的两个数据块的指纹不同,网络设备则判断这两个数据块不同,则不会进行重复数据的删除,但是这两个数据块之间可能会存在一定的数据关联关系,比如:一个数据块中的数据为1100000000,另一个数据块中的数据为111100000000,虽然两个数据块不同,但是它们都包括有8个“0”,仍然可以进行重复数据删除。为了达到降低占用存储空间的效果,本发明提供一种数据存储方法及装置,具体如下:
图1为本发明一实施例提供的一种数据存储方法的流程图,其中该方法的执行主体为网络设备,该网络设备可以是计算机、手机等,只要具有存储功能的设备均可以作为该数据存储方法的执行主体,其中该方法包括:
S101:网络设备确定至少两个数据块之间的数据关联关系;
具体地,网络设备会对每个待存储的数据块进行扫描,通过扫描可以确定出数据块之间的数据关联关系,至少两个数据块之间存在的数据关联关系可能是数据块之间存在相同的数据段,比如:第一数据块中的数据为1100000000,第二数据块中的数据为111100000000,它们之间存在的相同数据段为“00000000”;
或者,至少两个数据块之间存在的数据关联关系可能是至少两个数据块中的所有数据构成等差数列,这里所谓的等差数列是基于十进制的等差数列,当然,实际上数据在进行存储时采用的是二进制,假设:第一数据块中的数据为“123”,第二数据块中的数据为“456”,因此,两个数据块中的所有数据“123456”构成等差数列。需要说明的是本发明对至少两个数据块之间存在的数据关联关系不做限制。
S102:若网络设备根据数据关联关系在函数库中成功匹配到数据关联关系对应的函数;则根据该数据块和该函数确定待输入的参数信息,并将每个数据块存储为一个数据结构;或者,根据至少两个数据块和函数确定待输入的参数信息,并将至少两个数据块存储为一个数据结构。其中,上述数据结构包括:函数索引和参数信息,该函数索引与函数一一对应;该参数信息用于代入该函数中,得到对应的数据块。
具体地,网络设备将每个数据块存储为一个数据结构,具体包括:若至少两个数据块之间存在的数据关联关系为第一数据块和第二数据块之间存在相同的数据段,并将相同的数据段作为基准段;则网络设备将第一数据块存储为第一数据结构,第二数据块存储为第二数据结构;所述第一数据结构包括:第一函数索引和第一参数信息;所述第一参数信息包括:第一数据和第一位置信息,所述第一数据为所述第一数据块中除所述基准段之外的数据,所述位置信息用于表示所述第一数据和所述基准段的位置关系;所述第二数据结构包括:所述第一函数索引和第二参数信息;所述第二参数信息包括:第二数据和第二位置信息,所述第二数据为所述第二数据块中除所述基准段之外的数据,所述位置信息用于表示所述第二数据和所述基准段的位置关系;其中,所述第一函数索引对应的函数包括所述基准段。网络设备读取数据的过程是:网络设备根据第一位置信息组合第一数据和所述基准段,得到所述第一数据块;所述网络设备根据所述第二位置信息组合所述第二数据和所述基准段,得到所述第二数据块。
比如:A函数是用于根据数据块除基准段之外的数据和该数据与基准段的位置关系,得到对应的数据块。具体地,该A函数的参数信息包括:a和b,其中a表示数据块中除基准段之外的数据,b表示位置信息,假设该位置信息确定的是基准段在a参数之后,当B数据块中的数据为1100000000,C数据块中的数据为111100000000,它们之间存在的相同数据段为“00000000”,可以将该相同数据段作为基准段,这种情况,网络设备会匹配到A函数。因此,B数据块被存储为一个数据结构,该数据结构包括:A函数对应的索引和输入参数a和b,其中a为11,b表示基准段在a参数之后,那么网络设备在读取B对应的数据结构得出的结果则是1100000000,同样,针对C数据块,输入参数a为1111,b表示基准段在a参数之后,那么得出的结果则是111100000000。
进一步地,第一参数信息和第二参数信息都包括:基准段索引,基准段索引与所述基准段对应;则网络设备根据所述第一位置信息组合所述第一数据和所述基准段,得到所述第一数据块之前,还包括:所述网络设备根据所述基准段索引在所述第一函数索引对应的函数中进行基准段匹配。继续结合上面的例子,假设上述基准段“00000000”对应的索引为1,那么第一参数信息还包括索引1,使得网络设备在读取数据时,直接可以匹配索引1对应的基准段。
又比如:以Windows新技术文件系统(New Technology File System,简称NTFS)为列,图2A为本发明一实施例提供的Windows NTFS的示意图,如图2A所示,一个NTFS分区包括:主控文件表(Master File Table,简称MFT)区域,一个MFT区域至少占NTFS分区的1/8,即至少占2.5G,一个MFT区域包括多个1KB块,每个1KB块包括若干个文件属性如下:
当多个用户各自的系统盘中某个相同的文件被各个用户在不同时间访问时,1KB块中的文件存取时间将发生变化,但是1KB中的其他属性完全相同,由于现有技术中计算的各个1KB块对应的指纹不同,因此无法去重。本发明将每个1KB块存储为一个数据结构,该数据结构包括函数索引和参数信息,对应模式如表1:
表1
因此,比如其中一个1KB块可以存储为(298,32,8:00),298为函数索引,32对应函数参数n,8:00对应函数参数T。
本发明所采用的上述存储方法从去重的角度可以理解为:对于两个1KB块,它们的区别仅在于文件存取时间,它们的相同部分为基准段,因此,可以去掉文件存取时间,针对基准段则可以采用现有的重复数据删除方法。
具体地,图2B为本发明一实施例提供的用户1与用户2的NTFS分区的示意图,如图2B所示,用户1的NFTS分区中存在一个1KB块(图中用1K表示)中存储的是元数据块A,用户2的NFTS分区中存在一个1KB块(图中用1K表示)中存储的是元数据块B,而元数据块A和元数据块B中仅仅是文件存取时间不同,其他文件属性完全相同。
图2C为现有技术与基于本发明存储方法的重复数据删除示意图,如图2C所示,对于元数据块A和元数据块B,现有技术计算它们的指纹不同,因此无法实现去重。但基于本发明的存储方法,首先,元数据块A可以分为基准段和元数据块A的文件存取时间,元数据块B可以分为基准段和元数据块B的文件存取时间。那么可以采用索引为298的函数进行存储,因此,对应的去重处理可以理解为只需存储基准段、元数据块A的文件存取时间和元数据块B的文件存取时间,其中基准段本身已经内置在函数中。
下面以网络设备将所述至少两个数据块存储为一个数据结构为例:比如:待写的原始数据大小为4G(4294967296),前4KB的最后8个字节表示原始数据大小4294967296;其余数据全为0。网络设备对该原始数据进行扫描时发现原始数据可以划分为三个数据部分,第一数据部分:前0-4087Byte全是0;第二数据部分:从4088-4096Byte则是原始数据大小4294967296,第三数据部分:最后剩下的字节全部为0。由于第一数据部分中是全0,可以理解第一数据部分中还可以继续划分为更小的数据块,比如:可以将每个数据看作一个更小的数据块,这些更小的数据块之间存在相同的数据0,可以根据这些更小的数据块的数据关联关系将第一数据部分(包括至少两个数据块)存储为一个数据结构,即写为一个数据结构。同样地,第二、第三数据部分也可以分别对应一个数据结构。假设将函数、该函数对应的索引和参数信息称为一个模式,下面举出几个模式列子,如表2:
表2
图3A为本发明一实施例提供的写处理流程图,如图3A所示,第一数据部分可以写成数据结构{0,n=4088Byte,value=0},其中第一个0表示函数索引为0。同样的,第三数据部分可以写成数据结构{0,n=4294963200,value=0},第二数据部分可以写成数据结构{1,k=4088,value=4294967296},其中1表示函数索引为1。图3B为本发明一实施例提供的读处理流程图,实质上它与写过程为可逆过程,通过读取第一数据部分、第二数据部分和第三数据部分分别对应的数据结构,最后获得原始数据。
假设针对上述的原始数据,网络设备对该原始数据进行扫描时发现原始数据可以划分为两个数据部分,第一数据部分:前0-4087Byte全是0,从4088-4096Byte则是原始数据大小4294967296,第二数据部分:最后剩下的字节全部为0。那么针对第一数据部分中有部分相同的数据,即第一数据部分中部分更小的数据块之间存在相同的数据0,可以将第一数据部分存储为一个数据结构,即写为一个数据结构。同样地,第二数据部分也可以对应一个数据结构。结合上面的模式例子,这种情况下第一数据部分(包括至少两个数据块)为(3,0,4088,4096,0,4294967296)其中,3表示函数索引,第一个0对应函数参数k1,4088对应函数参数k2,4096对应函数参数k3,第二个0对应函数参数value1,4294967296对应函数参数value2。第二个数据部分可以存储为(0,4087Byte,4294963200)。
继续以网络设备将所述至少两个数据块存储为一个数据结构为例:所述网络设备将所述至少两个数据块存储为一个数据结构,具体包括:若所述至少两个数据块之间存在的数据关联关系为所述至少两个数据块中的所有数据构成等差数列;则所述网络设备将所述至少两个数据块存储为一个数据结构;其中,所述参数信息包括:所述等差数列的首项、公差和项数。所述网络设备将所述等差数列的首项、公差和项数所述参数信息代入所述函数中,得到所述等差数列的每一项。比如:第一数据块中的数据为“123”,第二数据块中的数据为“456”,因此,网络设备确定两个数据块中的所有数据“123456”构成等差数列;这种情况下,网络设备将第一数据块和第二数据块存储为一个数据结构;该数据结构包括:等差数列函数对应的索引和参数信息,具体为:{2,a0=1,d=1,n=6},其中该参数信息包括:函数索引为2,等差数列的首项为1,公差为1,项数为6,因此,最终根据该等差数列的函数即可计算出每一项。
进一步地,网络设备根据数据关联关系在函数库中匹配所述数据关联关系对应的函数,包括:网络设备扫描所述函数库中的各个函数;若存在一个函数中包括数据关联关系,则匹配成功。
更进一步地,若网络设备根据数据关联关系在函数库中未成功匹配到函数;则网络设备根据数据关联关系建立函数,并将函数存入函数库中。
具体地,网络设备建立函数库的方式可以有手工方式或者是人工智能的方式。其中,手工的方式比如是通过人工总结方式,然后将根据总结结果建立函数,并将该函数存入函数库中。人工智能的方式则是网络设备进行验算和回归发现出有效的算法,然后网络设备将该算法编辑为函数,最后将该函数存入函数库中。
本发明提供一种数据存储方法,该方法包括:网络设备确定至少两个数据块之间的数据关联关系;若根据该数据关联关系在函数库中成功匹配到数据关联关系对应的函数;则所述网络设备根据数据块和函数确定待输入的参数信息,并将每个数据块存储为一个数据结构;或者,网络设备根据至少两个数据块和函数确定待输入的参数信息,并将至少两个数据块存储为一个数据结构;其中,该数据结构包括:函数索引和参数信息,函数索引与函数一一对应;该参数信息用于代入所述函数中,得到对应的数据块。由于本发明所提供的数据存储方法只需要存储函数索引和参数信息即可,从而达到降低占用存储空间的效果。
图4为本发明一实施例提供的一种数据存储装置的结构示意图,该装置包括:确定模块401、匹配模块402和存储模块403;其中,该确定模块401,用于确定至少两个数据块之间的数据关联关系;若匹配模块402根据所述数据关联关系在函数库中成功匹配到所述数据关联关系对应的函数;则所述确定模块401根据所述数据块和所述函数确定待输入的参数信息,并且所述存储模块403将每个所述数据块存储为一个数据结构;或者,所述确定模块401根据至少两个数据块和函数确定待输入的参数信息,并且所述存储模块403将所述至少两个数据块存储为一个数据结构;其中,所述数据结构包括:函数索引和参数信息,所述函数索引与所述函数一一对应;所述参数信息用于代入所述函数中,得到对应的数据块。
可选地,所述存储模块403具体用于:
若所述至少两个数据块之间存在的数据关联关系为第一数据块和第二数据块之间存在相同的数据段,并将所述相同的数据段作为基准段;
则所述存储模块403将第一数据块存储为第一数据结构,所述第二数据块存储为第二数据结构;
所述第一数据结构包括:第一函数索引和第一参数信息;所述第一参数信息包括:第一数据和第一位置信息,所述第一数据为所述第一数据块中除所述基准段之外的数据,所述位置信息用于表示所述第一数据和所述基准段的位置关系;
所述第二数据结构包括:所述第一函数索引和第二参数信息;所述第二参数信息包括:第二数据和第二位置信息,所述第二数据为所述第二数据块中除所述基准段之外的数据,所述位置信息用于表示所述第二数据和所述基准段的位置关系;其中,所述第一函数索引对应的函数包括所述基准段。
进一步地,图5为本发明另一实施例提供的一种数据存储装置的结构示意图,该装置除包括确定模块401、匹配模块402和存储模块403之外,还包括:第一获得模块404;所述第一获得模块404用于根据所述第一位置信息组合所述第一数据和所述基准段,获得所述第一数据块;所述第一获得模块404还用于根据所述第二位置信息组合所述第二数据和所述基准段,获得所述第二数据块。
进一步地,所述第一参数信息和所述第二参数信息都包括:基准段索引,所述基准段索引与所述基准段对应;则所述匹配模块402还用于根据所述基准段索引在所述第一函数索引对应的函数中进行基准段匹配。
可选地,所述存储模块403具体用于:
若所述至少两个数据块之间存在的数据关联关系为所述至少两个数据块中的所有数据构成等差数列;
则所述存储模块403将所述至少两个数据块存储为一个数据结构;
其中,所述参数信息包括:所述等差数列的首项、公差和项数。
进一步地,该装置还包括:第二获得模块405;所述第二获得模块405用于将所述等差数列的首项、公差和项数所述参数信息代入所述函数中,获得所述等差数列的每一项。
更进一步地,所述匹配模块402具体用于:扫描所述函数库中的各个函数;若存在一个函数中包括所述数据关联关系,则匹配成功。
该装置还包括:建立模块406:若所述存储模块403根据所述数据关联关系在所述函数库中未成功匹配到函数;则所述建立模块406根据所述数据关联关系建立函数,并且所述存储模块403将建立的函数存入所述函数库中。
本发明提供一种数据存储装置,该装置可以用于执行图1所示实施例中的方法步骤,其实现原理和技术效果类似,此处不再赘述。
图6为本发明再一实施例提供的一种数据存储装置的结构示意图,该装置包括:处理器601和存储器602;其中,该处理器601用于确定至少两个数据块之间的数据关联关系;若处理器601根据所述数据关联关系在函数库中成功匹配到所述数据关联关系对应的函数;则所述处理器601根据所述数据块和所述函数确定待输入的参数信息,并且所述存储器602将每个所述数据块存储为一个数据结构;或者,所述处理器601根据至少两个数据块和函数确定待输入的参数信息,并且所述存储器602将所述至少两个数据块存储为一个数据结构;其中,所述数据结构包括:函数索引和参数信息,所述函数索引与所述函数一一对应;所述参数信息用于代入所述函数中,得到对应的数据块。
可选地,所述存储器602具体用于:
若所述至少两个数据块之间存在的数据关联关系为第一数据块和第二数据块之间存在相同的数据段,并将所述相同的数据段作为基准段;
则所述存储模块将第一数据块存储为第一数据结构,所述第二数据块存储为第二数据结构;
所述第一数据结构包括:第一函数索引和第一参数信息;所述第一参数信息包括:第一数据和第一位置信息,所述第一数据为所述第一数据块中除所述基准段之外的数据,所述位置信息用于表示所述第一数据和所述基准段的位置关系;
所述第二数据结构包括:所述第一函数索引和第二参数信息;所述第二参数信息包括:第二数据和第二位置信息,所述第二数据为所述第二数据块中除所述基准段之外的数据,所述位置信息用于表示所述第二数据和所述基准段的位置关系;其中,所述第一函数索引对应的函数包括所述基准段。
进一步地,所述处理器601用于根据所述第一位置信息组合所述第一数据和所述基准段,获得所述第一数据块;所述处理器601还用于根据所述第二位置信息组合所述第二数据和所述基准段,获得所述第二数据块。
进一步地,所述第一参数信息和所述第二参数信息都包括:基准段索引,所述基准段索引与所述基准段对应;则所述处理器601还用于根据所述基准段索引在所述第一函数索引对应的函数中进行基准段匹配。
可选地,所述存储器602具体用于:
若所述至少两个数据块之间存在的数据关联关系为所述至少两个数据块中的所有数据构成等差数列;
则所述存储模块将所述至少两个数据块存储为一个数据结构;
其中,所述参数信息包括:所述等差数列的首项、公差和项数。
进一步地,处理器601用于将所述等差数列的首项、公差和项数所述参数信息代入所述函数中,获得所述等差数列的每一项。
更进一步地,所述处理器601具体用于:扫描所述函数库中的各个函数;若存在一个函数中包括所述数据关联关系,则匹配成功。
若所述存储器602根据所述数据关联关系在函数库中未成功匹配到函数;则所述处理器601根据所述数据关联关系建立函数,并且所述存储器602将建立的函数存入所述函数库中。
本发明提供一种数据存储装置,该装置可以用于执行图1所示实施例中的方法步骤,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种数据存储方法,其特征在于,包括:
网络设备确定至少两个数据块之间的数据关联关系,所述数据关联关系为可函数的关系;
若所述网络设备根据所述数据关联关系在函数库中成功匹配到所述数据关联关系对应的第一函数,则所述网络设备根据所述至少两个数据块中的每个数据块和所述第一函数确定待输入的第一参数信息,并将所述每个数据块存储为一个第一数据结构,所述每个数据块对应的第一数据结构包括:第一函数索引和所述每个数据块对应的第一参数信息,所述第一函数索引与所述第一函数一一对应;所述每个数据块对应的第一参数信息用于代入所述第一函数中,得到所述每个数据块;
若所述网络设备根据所述数据关联关系在函数库中成功匹配到所述数据关联关系对应的第二函数,则所述网络设备根据所述至少两个数据块和所述第二函数确定待输入的第二参数信息,并将所述至少两个数据块存储为一个第二数据结构,所述第二数据结构包括:第二函数索引和所述第二参数信息,所述第二函数索引与所述第二函数一一对应;所述第二参数信息用于代入所述第二函数中,得到所述至少两个数据块。
2.根据权利要求1所述的方法,其特征在于,所述网络设备将所述每个数据块存储为一个第一数据结构,具体包括:
若所述至少两个数据块之间存在的数据关联关系为第一数据块和第二数据块之间存在相同的数据段,并将所述相同的数据段作为基准段;
则所述网络设备将第一数据块存储为一个第一数据结构,所述第二数据块存储为另一第一数据结构;
所述第一数据块对应的第一数据结构包括:所述第一函数索引和所述第一数据块对应的第一参数信息;所述第一数据块对应的第一参数信息包括:第一数据和第一位置信息,所述第一数据为所述第一数据块中除所述基准段之外的数据,所述位置信息用于表示所述第一数据和所述基准段的位置关系;
所述第二数据块对应的第一数据结构包括:所述第一函数索引和所述第二数据块对应的第一参数信息;所述第二数据块对应的第一参数信息包括:第二数据和第二位置信息,所述第二数据为所述第二数据块中除所述基准段之外的数据,所述位置信息用于表示所述第二数据和所述基准段的位置关系;
其中,所述第一函数包括所述基准段。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述网络设备根据所述第一位置信息组合所述第一数据和所述基准段,得到所述第一数据块;
所述网络设备根据所述第二位置信息组合所述第二数据和所述基准段,得到所述第二数据块。
4.根据权利要求3所述的方法,其特征在于,所述第一数据块对应的第一参数信息和所述第二数据块对应的第一参数信息都包括:基准段索引,所述基准段索引与所述基准段对应;
则所述网络设备根据所述第一位置信息组合所述第一数据和所述基准段,得到所述第一数据块之前,还包括:
所述网络设备根据所述基准段索引在所述第一函数中进行基准段匹配。
5.根据权利要求1所述的方法,其特征在于,所述网络设备将所述至少两个数据块存储为一个第二数据结构,具体包括:
若所述至少两个数据块之间存在的数据关联关系为所述至少两个数据块中的所有数据构成等差数列;
则所述网络设备将所述至少两个数据块存储为一个所述第二数据结构;
其中,所述第二参数信息包括:所述等差数列的首项、公差和项数。
6.根据权利要求5所述的方法,其特征在于,还包括:
所述网络设备将所述等差数列的首项、公差和项数代入所述第二函数中,得到所述等差数列的每一项。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
所述网络设备扫描所述函数库中的各个函数;
若所述第一函数包括所述数据关联关系,则匹配成功到所述第一函数;
所述第二函数包括所述数据关联关系,则匹配成功到所述第二函数。
8.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
若所述网络设备根据所述数据关联关系在所述函数库中未成功匹配到所述第一函数和所述第二函数;
则所述网络设备根据所述数据关联关系建立第三函数,并将所述第三函数存入所述函数库中。
9.一种数据存储装置,其特征在于,包括:确定模块、匹配模块和存储模块;
所述确定模块,用于确定至少两个数据块之间的数据关联关系,所述数据关联关系为可表示为函数的关系;
若所述匹配模块根据所述数据关联关系在函数库中成功匹配到所述数据关联关系对应的第一函数,则所述确定模块根据所述至少两个数据块中的每个数据块和所述第一函数确定待输入的第一参数信息,并且所述存储模块将所述每个数据块存储为一个第一数据结构,所述每个数据块对应的第一数据结构包括:第一函数索引和所述每个数据块对应的第一参数信息,所述第一函数索引与所述第一函数一一对应;所述每个数据块对应的第一参数信息用于代入所述第一函数中,得到所述每个数据块;
若所述匹配模块根据所述数据关联关系在函数库中成功匹配到所述数据关联关系对应的第二函数,则所述确定模块根据所述至少两个数据块和所述第二函数确定待输入的第二参数信息,并且所述存储模块将所述至少两个数据块存储为一个第二数据结构,所述第二数据结构包括:第二函数索引和所述第二参数信息,所述第二函数索引与所述第二函数一一对应;所述第二参数信息用于代入所述第二函数中,得到所述至少两个数据块。
10.根据权利要求9所述的装置,其特征在于,所述存储模块具体用于:
若所述至少两个数据块之间存在的数据关联关系为第一数据块和第二数据块之间存在相同的数据段,并将所述相同的数据段作为基准段;
则所述存储模块将第一数据块存储为一个第一数据结构,所述第二数据块存储为另一第一数据结构;
所述第一数据块对应的第一数据结构包括:所述第一函数索引和所述第一数据块对应的第一参数信息;所述第一数据块对应的第一参数信息包括:第一数据和第一位置信息,所述第一数据为所述第一数据块中除所述基准段之外的数据,所述位置信息用于表示所述第一数据和所述基准段的位置关系;
所述第二数据块对应的第一数据结构包括:所述第一函数索引和所述第二数据块对应的第一参数信息;所述第二数据块对应的第一参数信息包括:第二数据和第二位置信息,所述第二数据为所述第二数据块中除所述基准段之外的数据,所述位置信息用于表示所述第二数据和所述基准段的位置关系;
其中,所述第一函数包括所述基准段。
11.根据权利要求10所述的装置,其特征在于,还包括:第一获得模块;
所述第一获得模块用于根据所述第一位置信息组合所述第一数据和所述基准段,获得所述第一数据块;
所述第一获得模块还用于根据所述第二位置信息组合所述第二数据和所述基准段,获得所述第二数据块。
12.根据权利要求11所述的装置,其特征在于,所述第一数据块对应的第一参数信息和所述第二数据块对应的第一参数信息都包括:基准段索引,所述基准段索引与所述基准段对应;
则所述匹配模块还用于根据所述基准段索引在所述第一函数索引对应的函数中进行基准段匹配。
13.根据权利要求9所述的装置,其特征在于,所述存储模块具体用于:
若所述至少两个数据块之间存在的数据关联关系为所述至少两个数据块中的所有数据构成等差数列;
则所述存储模块将所述至少两个数据块存储为一个所述第二数据结构;
其中,所述第二参数信息包括:所述等差数列的首项、公差和项数。
14.根据权利要求13所述的装置,其特征在于,还包括:第二获得模块;
所述第二获得模块用于将所述等差数列的首项、公差和项数代入所述第二函数中,获得所述等差数列的每一项。
15.根据权利要求9-14任一项所述的装置,其特征在于,所述匹配模块具体用于:
扫描所述函数库中的各个函数;
若所述第一函数包括所述数据关联关系,则匹配成功到所述第一函数;
所述第二函数包括所述数据关联关系,则匹配成功到所述第二函数。
16.根据权利要求9-14任一项所述的装置,其特征在于,还包括:建立模块:
若所述存储模块根据所述数据关联关系在所述数据存储装置上的函数库中未成功匹配到所述第一函数和所述第二函数;
则所述建立模块根据所述数据关联关系建立第三函数,并且所述存储模块将所述第三函数存入所述函数库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510810721.3A CN105302495B (zh) | 2015-11-20 | 2015-11-20 | 数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510810721.3A CN105302495B (zh) | 2015-11-20 | 2015-11-20 | 数据存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302495A CN105302495A (zh) | 2016-02-03 |
CN105302495B true CN105302495B (zh) | 2019-05-28 |
Family
ID=55199808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510810721.3A Active CN105302495B (zh) | 2015-11-20 | 2015-11-20 | 数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302495B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234552B (zh) * | 2016-12-15 | 2021-11-05 | 腾讯科技(深圳)有限公司 | 一种数据存储方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0772139A2 (en) * | 1995-11-01 | 1997-05-07 | FileTek, Inc. | Method and apparatus for segmenting a database |
WO2012140686A1 (en) * | 2011-04-11 | 2012-10-18 | Hitachi, Ltd. | Data management method and data management system |
CN103678702A (zh) * | 2013-12-30 | 2014-03-26 | 优视科技有限公司 | 视频去重方法及装置 |
CN104484132A (zh) * | 2014-12-12 | 2015-04-01 | 华为技术有限公司 | 数据缩减的方法及装置 |
CN105069111A (zh) * | 2015-08-10 | 2015-11-18 | 广东工业大学 | 云存储中基于相似性的数据块级数据去重方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364716B2 (en) * | 2010-12-17 | 2013-01-29 | Netapp, Inc. | Methods and apparatus for incrementally computing similarity of data sources |
-
2015
- 2015-11-20 CN CN201510810721.3A patent/CN105302495B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0772139A2 (en) * | 1995-11-01 | 1997-05-07 | FileTek, Inc. | Method and apparatus for segmenting a database |
WO2012140686A1 (en) * | 2011-04-11 | 2012-10-18 | Hitachi, Ltd. | Data management method and data management system |
CN103678702A (zh) * | 2013-12-30 | 2014-03-26 | 优视科技有限公司 | 视频去重方法及装置 |
CN104484132A (zh) * | 2014-12-12 | 2015-04-01 | 华为技术有限公司 | 数据缩减的方法及装置 |
CN105069111A (zh) * | 2015-08-10 | 2015-11-18 | 广东工业大学 | 云存储中基于相似性的数据块级数据去重方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105302495A (zh) | 2016-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038206B (zh) | Lsm树的建立方法、lsm树的数据读取方法和服务器 | |
CN107391554B (zh) | 高效分布式局部敏感哈希方法 | |
EP4105793A1 (en) | Signature-based cache optimization for data preparation | |
CN106874348A (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN107305586A (zh) | 索引生成方法、索引生成装置及搜索方法 | |
CN106126486A (zh) | 时间信息编码方法、编码值检索方法、解码方法与装置 | |
CN103514210A (zh) | 小文件处理方法及装置 | |
CN102054509A (zh) | 一种随机播放方法和装置 | |
CN108205571A (zh) | 键值数据表的连接方法及装置 | |
WO2017065888A1 (en) | Step editor for data preparation | |
CN107368545B (zh) | 一种基于Merkle Tree变形算法的去重方法及装置 | |
CN108093024B (zh) | 一种基于数据频度的分类路由方法及装置 | |
CN117369731A (zh) | 一种数据的缩减处理方法、装置、设备及介质 | |
CN105302495B (zh) | 数据存储方法及装置 | |
CN107807793B (zh) | 分布式计算机存储系统中数据副本异构存储与访问方法 | |
CN113742580A (zh) | 目标类型数据的召回方法、装置、电子设备及存储介质 | |
US9235578B2 (en) | Data partitioning apparatus and data partitioning method | |
CN103761298A (zh) | 一种基于分布式架构的实体匹配方法 | |
CN116108752A (zh) | 模型压缩方法、装置、电子设备和存储介质 | |
CN115576947A (zh) | 一种数据管理方法、装置、组合库、电子设备及存储介质 | |
CN113656414B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN109597807A (zh) | 数仓表处理方法和装置 | |
CN105912404B (zh) | 一种基于磁盘的大规模图数据中寻找强连通分量的方法 | |
CN110377601B (zh) | 一种基于B树数据结构的MapReduce计算过程优化方法 | |
CN106980685A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220216 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |