CN113126879A - 一种数据存储方法、装置和电子设备 - Google Patents
一种数据存储方法、装置和电子设备 Download PDFInfo
- Publication number
- CN113126879A CN113126879A CN201911391011.6A CN201911391011A CN113126879A CN 113126879 A CN113126879 A CN 113126879A CN 201911391011 A CN201911391011 A CN 201911391011A CN 113126879 A CN113126879 A CN 113126879A
- Authority
- CN
- China
- Prior art keywords
- data
- value
- target data
- module
- fingerprint
- 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.)
- Granted
Links
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
- G06F3/0641—De-duplication techniques
-
- 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)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例公开了一种数据存储方法、装置和电子设备,用以解决现有技术中重复数据删除效率较低的问题。该方案包括:基于数据分块算法对目标数据进行切割,得到多个数据块;然后基于目标数据的安全等级为目标数据匹配初始输入值以确定填充值,该初始输入值与目标数据的安全等级呈正相关;之后基于填充值对多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块的数据指纹;如果数据指纹在指纹索引表中,则在逻辑视图中添加数据指纹;否则,在指纹索引表中添加相应数据块的指纹索引。从而,通过为目标数据匹配合适的初始输入值来应对不同安全等级的目标数据,尤其当数据较为庞大时,可有效提升重复数据的删除效率。
Description
技术领域
本说明书涉及计算机软件技术领域,尤其涉及一种数据存储方法、装置和电子设备。
背景技术
在信息快速发展的今天,数据存储已经成为比较成熟的技术。然而,面对数据的急剧膨胀,减少存储资源浪费,提高存储利用效率,是当前较为迫切的高效存储理念需求。其中,重复数据删除就是实现数据缩减的关键技术,主要侧重于删除重复数据块,从而实现数据容量缩减的目的。这种技术可以很大程度上减少对物理存储空间的需求,减少传输过程中的网络带宽,有效节约设备采购与维护成本。同时它也是一种绿色存储技术,能有效降低能耗。
目前,重复数据删除技术主要通过数据块的数据指纹来判定相同数据块。数据指纹通常采用MD5算法(Message-Digest Algorithm 5)及SHA-2算法(Secure HashAlgorithm 2)等进行计算,但是,这两类算法作为主流算法在性能以及安全防护方面已经达到瓶颈。
因此,亟需找到一种新的数据存储方案来提升重复数据删除的效率。
发明内容
本说明书实施例的目的是提供一种数据存储方法、装置和电子设备,以提升重复数据删除的效率。
为解决上述技术问题,本说明书实施例是这样实现的:
第一方面,提出了一种数据存储方法,包括:
基于数据分块算法对目标数据进行切割,得到多个数据块;
基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,其中,所述初始输入值与所述目标数据的安全等级呈正相关;
基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块的数据指纹;
如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。
第二方面,提出了一种数据存储装置,包括:
切割模块,用于基于数据分块算法对目标数据进行切割,得到多个数据块;
匹配模块,用于基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,其中,所述初始输入值与所述目标数据的安全等级呈正相关;
计算模块,用于基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块数据指纹;
处理模块,用于如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。
第三方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如第一方面所述的数据存储方法。
第四方面,提出了一种计算机可读存储介质,当所述指令在计算机上运行时,使得计算机执行时实现如第一方面所述的数据存储方法。
由本说明书实施例提供的以上技术方案可见,基于数据分块算法对目标数据进行切割,得到多个数据块;然后基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,该初始输入值与所述目标数据的安全等级呈正相关;之后基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块的数据指纹;如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。从而,通过为目标数据匹配合适的初始输入值来应对不同安全等级的目标数据,尤其当数据较为庞大时,可有效提升重复数据的删除效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书的一个实施例提供的数据存储方法的步骤示意图。
图2a和图2b是本说明书的一个实施例提供的两种数据分块算法的示例图。
图3是本说明书的一个实施例提供的Keccak加密算法的海绵体结构示意图。
图4a和图4b是本说明书的一个实施例提供的预设函数的两种内部模块结构示意图。
图5是本说明书的一个实施例提供的数据存储装置200的结构示意图。
图6是本说明书的一个实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例提供一种数据存储方法和装置,以解决现有技术中进行数据存储时,删除重复数据的效率不高,存在存储瓶颈的问题。而本说明书实施例采用改进的Keccak加密算法来计算数据指纹,尤其当数据较为庞大时,可以基于数据安全等级来匹配合适的初始输入值以确定填充值,这样,可以有效提升删除重复数据的效率。
参照图1所示,为本说明书实施例提供的一种数据存储方法的步骤示意图,应理解,该数据存储方法的执行主体可以是终端、服务器等具有数据存储功能的数据存储装置,或者,集成有这类数据存储装置的电子产品等。所述数据存储方法可以包括以下步骤:
步骤102:基于数据分块算法对目标数据进行切割,得到多个数据块。
在本说明书实施例中,所述目标数据可以理解为本地接收到的新数据,对于该新数据是否为重复数据并不知晓。为了获取目标数据的数据指纹,可以对目标数据进行切割,得到多个数据块。
在本说明书实施例中,在对目标数据进行切割时,所使用的数据分块算法可以至少包括:定长分块算法或变长分块算法。此外,还可以包括其它可实现数据切割且用于计算数据指纹的算法,例如,滑动块切分算法等,在此不做赘述。
下面以定长分块算法和变长分块算法为例进行说明。
1、定长分块算法
定长分块算法是指采用预先定义好的数据块大小对数据进行切割,并进行弱校验值和md5强校验值。定长分块算法示例可参照图2a所示,其优点是简单、性能较高,但是对数据的增加和删除非常敏感,导致重删率非常低下。
2、变长分块算法
变长分块CDC算法通常基于文件内容进行数据块切分,数据块大小是可变化的,在切分执行过程中,CDC使用一个固定大小(如48字节)的滑动窗口对文件数据计算数据指纹。如果指纹满足某个条件,如当它的值模特定的整数等于预先设定的数时,则把窗口位置作为块的边界。具体切分时可以对数据块的大小进行限定,设定上下限。变长分块算法示例可参照图2b所示,这种算法对文件内容变化不敏感,***或删除数据只会影响到较少的数据块,其余数据块不受影响,因此重删率相对定长分块而言高很多。但是对性能和算法要求都很高,处理速度较慢。
步骤104:基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,其中,所述初始输入值与所述目标数据的安全等级呈正相关。
应理解,在本说明书实施例中,所述目标数据的安全等级可用于表征目标数据的安全性、重要性等与安全相关的属性。
由于本说明书实施例中采用改进的Keccak加密算法计算目标数据的数据指纹,因此,必然涉及到为数据块补入填充值以达到相应的字节长度。而在本说明书实施例中,首先需要根据目标数据的安全等级,为目标数据匹配合适的填充值。具体实现时可根据历史数据设定预设等级阈值,即根据历史数据的安全等级,将数据划分为不同安全等级的类别。如果所述目标数据的安全等级大于预设等级阈值,则从第一类初始值中匹配初始输入值;否则,从第二类初始值中匹配初始输入值;其中,所述第一类初始值中初始输入值的字节长度大于所述第二类初始值中初始输入值的字节长度。
以第一类初始值包括1600bit、800bit、400bit,第二类初始值包括:25bit、50bit、100bit为例。考虑到在Keccak加密算法时,预设函数f的输出效率与初始输入值b相关,当b为1600bit时,填充数值最多,安全性最高,相应输出效率也最低;当b为25bit时,填充数值最少,安全性最低,相应输出效率也最高。因此,在备份***正常运行情况下,初始输入值b一方面可以填充为第一类初始值,一方面可以填充为第二类初始值,同时进行计算,保留两份索引。在新数据存储时,通过***工具自动判断***繁忙程度或者人工对数据重要性和安全性进行分级,换言之,确定目标数据的安全等级。如果***空闲、或者数据重要性、安全性较低,则确定安全等级小于预设等级阈值,可以将目标数据填充为25bit、50bit、100bit中任一值进行计算;如果***繁忙或者数据重要性、安全性较高,则确定安全等级大于等于预设等级阈值,将目标数据填充为1600bit、800bit、400bit中的任一值进行计算。这样,当数据足够庞大的时候,可以有效地提升重复数据删除效率。另外,在***空闲时,还可以创建多份基础数据索引,来应对不同情况所需。
步骤106:基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块的数据指纹。
在确定了填充值之后,可以采用该填充值对步骤102切分得到的多个数据块依次进行数据吸收和挤出处理,其实,该过程可以理解为图3所示的海绵体结构,该海绵体结构主要包括数据吸收过程和数据挤出过程。
一种可实现的方案,当所述目标数据的安全等级不大于预设等级阈值时,基于所述填充值对所述多个数据块依次进行数据吸收处理,具体包括:
为所述多个数据块中第一个数据块直接填充所述填充值,得到一个固定长度的输出值;将所述输出值作为预设函数的输入值,计算得到所述预设函数的输出值;将所述预设函数的输出值与第二个数据块进行异或处理后,为异或处理后的结果填充所述填充值;将填充后的结果再次作为所述预设函数的输入值,重复计算直至最后一个数据块得到输出值,完成数据吸收处理。
具体实现时,在数据吸收过程,当判定目标数据重要性、安全性较低时,可以将第一个数据块P1直接填充一个填充值c,使其得到一个固定长度的初始输入值b(b可以为25,50,100,200,400,800,1600bit);此处的初始输入值b也就是步骤104中匹配到的初始输入值。将初始输入值b与预设函数f进行计算,输出值与P2进行异或处理,将其结果填充c,作为新的输入值再次输入函数f。重复上述步骤,直到最后一个数据块Pn处理完成,至此结束数据吸收阶段,进入挤出阶段。
将数据吸收阶段函数f的输出值保存为z0,并将整个输出值填充c后,作为函数f的输入值。将函数f的输入值中的前r个比特保存为z1,并将整个输出值填充c后,再次作为函数f的输入值。重复上述步骤,直到获得所需长度散列值的函数,至此结束数据挤出阶段。
由于Keccak算法是加密领域使用的算法,它对安全性的要求往往会高于重复数据删除上对安全性的要求。因此在数据安全性可以得到保证的前提下,可以采用上述方式,即不再与r进行异或处理,而直接填充一个填充值c,作为函数f的输入值,从而,提升重复数据删除的效率。
另一种可实现的方案,当所述目标数据的安全等级大于预设等级阈值时,基于所述填充值对所述多个数据块依次进行数据吸收处理,具体包括:
将所述多个数据块中第一个数据块与运算值进行异或处理,并对异或处理后的结果填充所述填充值,得到一个固定长度的初始输入值,其中,所述运算值与所述第一个数据块的字节长度相等;将所述初始输入值输入预设函数,计算得到所述预设函数的输出值;将所述预设函数的输出值与第二个数据块进行异或处理后,为异或处理后的结果填充所述填充值;将填充后的结果再次作为所述预设函数的输入值,重复计算直至最后一个数据块得到输出值,完成数据吸收处理。应理解,这里的初始输入值可根据步骤104中匹配得到。
一种可实现的方案,在基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理时,多次调用预设函数;当所述目标数据的安全等级不大于预设等级阈值时,调用所述预设函数包括:连续调用θ模块、ρ模块和π模块;参照图4a所示,其中,所述θ模块用于构建数组,所述数组中每个元素的字节位数相等;具体地,θ模块可把r+c转化为5x5的每个元素为64位的数组,计算每列中同位的部分,然后使用异或操作符对它们进行组合。最后把获得的同位结果和每个状态位异或。所述ρ模块用于按照三角数的排列对所述数组中元素进行循环移位;所述π模块用于变换所述数组中元素。通过该方案,在使用预设函数时仅连续调用部分模块,可以减少计算过程,提高重复数据删除效率。
另一种可实现的方案,当所述目标数据的安全等级不大于预设等级阈值时,继连续调用θ模块、ρ模块和π模块之后,所述方法还包括:调用χ模块和/或ι模块;参照图4b所示,其中,所述χ模块用于为变换循环后的数组增加非线性特性;具体可使用与、非和异或等来组合行元素,然后把结果写入状态数组里。所述ι模块用于消除所述数组的对称性,具体可以把数组中的一个元素与一个循环常量异或;该模块有24个循环常量供选择,这些常量由Keccak内部来定义。通过该方案,在使用预设函数时可连续调用全部的模块,可提升挤出结果的安全性。
应理解,在整个算法过程中,预设函数f的作用是将输入的数据进行复杂的搅拌操作并输出结果。预设函数f的输入长度不是r,而是r+c,这意味着其中有c个容量不会受到输入分组内容直接影响的,这样可以有效防止输入信息中的一些特征泄露出去。由于Keccak算法使用了全新的结构,使得以往针对MD结构(MD5)的攻击手段难以奏效,从而提升安全性。通过Keccak算法可以得到任意长度的输出值,能够有效缓解SHA-2只能存在固定长度所带来的循环碰撞冲突问题。
步骤108:如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。
在得到目标数据的多个数据块的数据指纹后,可以分别判断每个数据块的数据指纹是否在指纹索引表中,如果针对任一数据块而言,其数据指纹在指纹索引表中,则认为该数据指纹对应的数据块是重复的,反之,如果不在指纹索引表中,则认为该数据指纹对应的数据块是新的。
对于重复的数据块:将在逻辑视图中添加重复数据块的数据指针或者数据指纹。从逻辑上看,***存在多个数据块副本,而从物理上看,***只保存有单一的数据块副本。
对于新数据块:***需要保存新数据块,这是实际储存的数据块。在更新指纹索引表时,将新数据块的数据指纹和元数据添加到指纹索引表中,从而保持指纹索引表和储存数据块的一致性。
这样,就在数据存储阶段完成了重复数据的删除操作。当需要恢复一个数据时,先读取其元数据,根据元数据记录的数据块指针从数据区读出数据块,从而将数据块重新组装成文件。
通过上述技术方案,基于数据分块算法对目标数据进行切割,得到多个数据块;然后基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,该初始输入值与所述目标数据的安全等级呈正相关;之后基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块的数据指纹;如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。从而,通过为目标数据匹配合适的初始输入值来应对不同安全等级的目标数据,尤其当数据较为庞大时,可有效提升重复数据的删除效率。
图5为本说明书的一个实施例提供的数据存储装置200的结构示意图。请参考图5,在一种软件实施方式中,数据存储装置200可包括:
切割模块202,用于基于数据分块算法对目标数据进行切割,得到多个数据块;
匹配模块204,用于基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,其中,所述初始输入值与所述目标数据的安全等级呈正相关;
计算模块206,用于基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块数据指纹;
处理模块208,用于如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。
通过本说明书技术方案,基于数据分块算法对目标数据进行切割,得到多个数据块;然后基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,该初始输入值与所述目标数据的安全等级呈正相关;之后基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块的数据指纹;如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。从而,通过为目标数据匹配合适的初始输入值来应对不同安全等级的目标数据,尤其当数据较为庞大时,可有效提升重复数据的删除效率。
作为一个实施例,所述匹配模块204在基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值时,具体用于:如果所述目标数据的安全等级大于预设等级阈值,则从第一类初始值中匹配初始输入值以确定填充值;否则,从第二类初始值中匹配初始输入值以确定填充值;其中,所述第一类初始值中初始输入值的字节长度大于所述第二类初始值中初始输入值的字节长度。
作为另一个实施例,当所述目标数据的安全等级不大于预设等级阈值时,所述计算模块206基于所述填充值对所述多个数据块依次进行数据吸收处理,具体用于:为所述多个数据块中第一个数据块直接填充所述填充值,得到一个固定长度的初始输入值;将所述初始输入值输入预设函数,计算得到所述预设函数的输出值;将所述预设函数的输出值与第二个数据块进行异或处理后,为异或处理后的结果填充所述填充值;将填充后的结果作为新的输入值输入所述预设函数,重复计算直至最后一个数据块得到输出值,完成数据吸收处理。
作为另一个实施例,当所述目标数据的安全等级大于预设等级阈值时,所述计算模块206基于所述填充值对所述多个数据块依次进行数据吸收处理,具体用于:将所述多个数据块中第一个数据块与运算值进行异或处理,并对异或处理后的结果填充所述填充值,得到一个固定长度的初始输入值,其中,所述运算值与所述第一个数据块的字节长度相等;将所述初始输入值输入预设函数,计算得到所述预设函数的输出值;将所述预设函数的输出值与第二个数据块进行异或处理后,为异或处理后的结果填充所述填充值;将填充后的结果作为新的输入值输入所述预设函数,重复计算直至最后一个数据块得到输出值,完成数据吸收处理。
作为另一个实施例,所述计算模块206在基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理时,多次调用预设函数;相应地,
当所述目标数据的安全等级不大于预设等级阈值时,所述计算模块206调用所述预设函数,具体用于连续调用θ模块、ρ模块和π模块;其中,所述θ模块用于构建数组,所述数组中每个元素的字节位数相等;所述ρ模块用于按照三角数的排列对所述数组中元素进行循环移位;所述π模块用于变换所述数组中元素。
作为另一个实施例,当所述目标数据的安全等级不大于预设等级阈值时,所述计算模块206继连续调用θ模块、ρ模块和π模块之后,还用于调用χ模块和/或ι模块;其中,所述χ模块用于为变换循环后的数组增加非线性特性;所述ι模块用于消除所述数组的对称性。
作为另一个实施例,所述处理模块208在所述指纹索引表中添加相应数据块的指纹索引时,具体用于:在所述指纹索引表中添加相应数据块的数据指纹和元数据。
应理解,本说明书实施例的数据存储装置还可执行图1中数据存储装置(或设备)执行的方法,并实现数据存储装置(或设备)在图1所示实施例的功能,在此不再赘述。
图6是本说明书的一个实施例电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-AccessMemory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponentInterconnect,外设部件互连标准)总线或EISA(Extended IndustryStandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
基于数据分块算法对目标数据进行切割,得到多个数据块;
基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,其中,所述初始输入值与所述目标数据的安全等级呈正相关;
基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块的数据指纹;
如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。
通过本说明书技术方案,基于数据分块算法对目标数据进行切割,得到多个数据块;然后基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,该初始输入值与所述目标数据的安全等级呈正相关;之后基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块的数据指纹;如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。从而,通过为目标数据匹配合适的初始输入值来应对不同安全等级的目标数据,尤其当数据较为庞大时,可有效提升重复数据的删除效率。
上述如本说明书图1所示实施例揭示的数据存储装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1的方法,并实现数据存储装置在图1所示实施例的功能,本说明书实施例在此不再赘述。
当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下方法:
基于数据分块算法对目标数据进行切割,得到多个数据块;
基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,其中,所述初始输入值与所述目标数据的安全等级呈正相关;
基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块的数据指纹;
如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。
通过本说明书技术方案,基于数据分块算法对目标数据进行切割,得到多个数据块;然后基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,该初始输入值与所述目标数据的安全等级呈正相关;之后基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的多个数据块的数据指纹;如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。从而,通过为目标数据匹配合适的初始输入值来应对不同安全等级的目标数据,尤其当数据较为庞大时,可有效提升重复数据的删除效率。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
基于数据分块算法对目标数据进行切割,得到多个数据块;
基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,其中,所述初始输入值与所述目标数据的安全等级呈正相关;
基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的每个数据块的数据指纹;
如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。
2.如权利要求1所述的方法,其特征在于,基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,具体包括:
如果所述目标数据的安全等级大于预设等级阈值,则从第一类初始值中匹配初始输入值以确定填充值;
否则,从第二类初始值中匹配初始输入值以确定填充值;
其中,所述第一类初始值中初始输入值的字节长度大于所述第二类初始值中初始输入值的字节长度。
3.如权利要求1或2所述的方法,其特征在于,当所述目标数据的安全等级不大于预设等级阈值时,基于所述填充值对所述多个数据块依次进行数据吸收处理,具体包括:
为所述多个数据块中第一个数据块直接填充所述填充值,得到一个固定长度的初始输入值;
将所述初始输入值输入预设函数,计算得到所述预设函数的输出值;
将所述预设函数的输出值与第二个数据块进行异或处理后,为异或处理后的结果填充所述填充值;
将填充后的结果作为新的输入值输入所述预设函数,重复计算直至最后一个数据块得到输出值,完成数据吸收处理。
4.如权利要求3所述的方法,其特征在于,当所述目标数据的安全等级大于预设等级阈值时,基于所述填充值对所述多个数据块依次进行数据吸收处理,具体包括:
将所述多个数据块中第一个数据块与运算值进行异或处理,并对异或处理后的结果填充所述填充值,得到一个固定长度的初始输入值,其中,所述运算值与所述第一个数据块的字节长度相等;
将所述初始输入值输入预设函数,计算得到所述预设函数的输出值;
将所述预设函数的输出值与第二个数据块进行异或处理后,为异或处理后的结果填充所述填充值;
将填充后的结果作为新的输入值输入所述预设函数,重复计算直至最后一个数据块得到输出值,完成数据吸收处理。
5.如权利要求1或2所述的方法,其特征在于,在基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理时,多次调用预设函数;
当所述目标数据的安全等级不大于预设等级阈值时,调用所述预设函数包括:连续调用θ模块、ρ模块和π模块;
其中,所述θ模块用于构建数组,所述数组中每个元素的字节位数相等;所述ρ模块用于按照三角数的排列对所述数组中元素进行循环移位;所述π模块用于变换所述数组中元素。
6.如权利要求5所述的方法,其特征在于,当所述目标数据的安全等级不大于预设等级阈值时,继连续调用θ模块、ρ模块和π模块之后,所述方法还包括:调用χ模块和/或ι模块;
其中,所述χ模块用于为变换循环后的数组增加非线性特性;所述ι模块用于消除所述数组的对称性。
7.如权利要求4所述的方法,其特征在于,在所述指纹索引表中添加相应数据块的指纹索引,具体包括:
在所述指纹索引表中添加相应数据块的数据指纹和元数据。
8.一种数据存储装置,其特征在于,包括:
切割模块,用于基于数据分块算法对目标数据进行切割,得到多个数据块;
匹配模块,用于基于所述目标数据的安全等级为所述目标数据匹配初始输入值以确定填充值,其中,所述初始输入值与所述目标数据的安全等级呈正相关;
计算模块,用于基于所述填充值对所述多个数据块依次进行数据吸收和挤出处理,计算得到对应所述目标数据的每个数据块的数据指纹;
处理模块,用于如果所述数据指纹在指纹索引表中,则在逻辑视图中添加所述数据指纹;否则,在所述指纹索引表中添加相应数据块的指纹索引。
9.一种电子设备,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1-7任一项所述的数据存储方法。
10.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行时实现如权利要求1-7任一项所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911391011.6A CN113126879B (zh) | 2019-12-30 | 2019-12-30 | 一种数据存储方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911391011.6A CN113126879B (zh) | 2019-12-30 | 2019-12-30 | 一种数据存储方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113126879A true CN113126879A (zh) | 2021-07-16 |
CN113126879B CN113126879B (zh) | 2022-11-29 |
Family
ID=76767545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911391011.6A Active CN113126879B (zh) | 2019-12-30 | 2019-12-30 | 一种数据存储方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113126879B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356212A (zh) * | 2021-11-23 | 2022-04-15 | 阿里巴巴(中国)有限公司 | 数据处理方法、***及计算机可读存储介质 |
WO2023108360A1 (zh) * | 2021-12-13 | 2023-06-22 | 华为技术有限公司 | 一种存储***中数据管理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104871155A (zh) * | 2012-10-01 | 2015-08-26 | 西部数据技术公司 | 优化用于去重的数据块大小 |
EP3076584A1 (en) * | 2015-03-31 | 2016-10-05 | Université De Reims Champagne-Ardenne | Hashed data retrieval method |
CN109844750A (zh) * | 2016-09-30 | 2019-06-04 | 国际商业机器公司 | 填充操作状态确定 |
CN109918018A (zh) * | 2017-12-13 | 2019-06-21 | 华为技术有限公司 | 一种数据存储方法及存储设备 |
-
2019
- 2019-12-30 CN CN201911391011.6A patent/CN113126879B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104871155A (zh) * | 2012-10-01 | 2015-08-26 | 西部数据技术公司 | 优化用于去重的数据块大小 |
EP3076584A1 (en) * | 2015-03-31 | 2016-10-05 | Université De Reims Champagne-Ardenne | Hashed data retrieval method |
CN109844750A (zh) * | 2016-09-30 | 2019-06-04 | 国际商业机器公司 | 填充操作状态确定 |
CN109918018A (zh) * | 2017-12-13 | 2019-06-21 | 华为技术有限公司 | 一种数据存储方法及存储设备 |
Non-Patent Citations (7)
Title |
---|
MUTOUREND: "《strobe——面向IoT物联网应用的密码学协议框架》", 《CSDN》 * |
PANASAYYA YALLA ET., AL.: "《Comparison of multi-purpose cores of Keccak and AES》", 《DATE "15: PROCEEDINGS OF THE 2015 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITIONMARCH 2015》 * |
吴武飞等: "可重构Keccak算法设计及FPGA实现", 《计算机应用》 * |
吴涛等: "一种基于变参级联混沌的Hash函数算法", 《计算机研究与发展》 * |
李梦东,杜飞: "《SHA-3第三轮候选算法简评》", 《北京电子科技学院学报》 * |
赵太飞; 尹航; 李永明: "《基于Sponge结构的轻量级Hash函数设计》", 《小型微型计算机***》 * |
钱凯: "《云存储中快速安全的数据去重方法》", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356212A (zh) * | 2021-11-23 | 2022-04-15 | 阿里巴巴(中国)有限公司 | 数据处理方法、***及计算机可读存储介质 |
WO2023108360A1 (zh) * | 2021-12-13 | 2023-06-22 | 华为技术有限公司 | 一种存储***中数据管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113126879B (zh) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108846749B (zh) | 一种基于区块链技术的分片化的交易执行***及方法 | |
US11537304B2 (en) | Data verification method and apparatus, and storage medium | |
CN111966649B (zh) | 一种高效去重的轻量级在线文件存储方法及装置 | |
CN113126879B (zh) | 一种数据存储方法、装置和电子设备 | |
CN110061930B (zh) | 一种数据流量的限制、限流值的确定方法和装置 | |
US11249987B2 (en) | Data storage in blockchain-type ledger | |
CN112613053B (zh) | 一种数据加解密方法及装置 | |
CN111858520A (zh) | 一种区块链节点数据分离存储的方法和装置 | |
CN107391761B (zh) | 一种基于重复数据删除技术的数据管理方法及装置 | |
CN109145651B (zh) | 一种数据处理方法及装置 | |
KR101953548B1 (ko) | 네트워크 트래픽 기록 장치 및 그 방법 | |
US10489244B2 (en) | Systems and methods for detecting and correcting memory corruptions in software | |
CN111274245B (zh) | 一种用于优化数据存储的方法和装置 | |
CN111861744A (zh) | 一种实现区块链交易并行化的方法及区块链节点 | |
CN115129728A (zh) | 一种文件校验的方法及装置 | |
CN108123804B (zh) | 一种数据解密的执行方法、装置及介质 | |
CN116865766A (zh) | 一种波形数据压缩方法、***、设备及介质 | |
CN110658994B (zh) | 一种基于hdd和ssd混合磁盘阵列的数据处理方法及装置 | |
KR20210126773A (ko) | 파티셔닝 방법 및 그 장치 | |
CN111459937A (zh) | 数据表关联方法、装置、服务器及存储介质 | |
WO2024021491A1 (zh) | 一种数据切片方法、装置和*** | |
CN107368281B (zh) | 一种数据处理方法及装置 | |
CN113806071B (zh) | 一种边缘计算应用的数据同步方法与*** | |
CN113721986B (zh) | 一种数据压缩方法、装置及电子设备和存储介质 | |
CN104933010A (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 |