CN111090397A - 一种数据重删方法、系统、设备及计算机可读存储介质 - Google Patents
一种数据重删方法、系统、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111090397A CN111090397A CN201911275091.9A CN201911275091A CN111090397A CN 111090397 A CN111090397 A CN 111090397A CN 201911275091 A CN201911275091 A CN 201911275091A CN 111090397 A CN111090397 A CN 111090397A
- Authority
- CN
- China
- Prior art keywords
- value
- data
- sub
- target data
- cycle
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004590 computer program Methods 0.000 claims description 41
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 230000000875 corresponding effect Effects 0.000 description 85
- 238000004891 communication Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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
本申请公开了一种数据重删方法、系统、设备及计算机可读存储介质,在目标存储设备中读取预设大小的目标数据;通过SSE指令集对目标数据进行运算,得到与预设大小相对应的运算数据;对运算数据进行哈希运算,得到相应的哈希值;获取目标数据在目标存储设备中的指纹值;判断哈希值与指纹值是否一致,若否,则不再将目标数据写入目标存储设备中。本申请提供的数据重删方法,实现了借助SSE指令集提高对目标数据进行运算的效率,进而提高了对哈希值的运算效率,并且只需通过判断哈希值与指纹值是否一致便可以判断目标数据是否为重复数据,可以降低对CPU的资源消耗。本申请提供的数据重删系统、设备及计算机可读存储介质也解决了相应技术问题。
Description
技术领域
本申请涉及存储技术领域,更具体地说,涉及一种数据重删方法、系统、设备及计算机可读存储介质。
背景技术
当前,在存储领域中,海量数据的查询和存储均需要占用超大的资源,严重影响了数据存储的性能。为了降低存储数据所需占用的资源,提高数据存储性能,现有的一种方法是对数据进行重删处理,重删处理也即对重复数据进行删除,使得存储设备中只保留有一份相同数据,在不影响数据一致性的前提下,减少盘上的数据存放量。
然而,判断数据是否为重复数据的核心思想是计算数据的指纹值,而指纹值的计算需要占用大量的CPU(central processing unit,中央处理器)资源,从而影响设备的性能。
综上所述,如何降低数据重删方法占用的CPU资源量是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据重删方法,其能在一定程度上解决如何降低数据重删方法占用的CPU资源量的技术问题。本申请还提供了一种数据重删系统、设备及计算机可读存储介质。
为了实现上述目的,本申请提供如下技术方案:
一种数据重删方法,包括:
在目标存储设备中读取预设大小的目标数据;
通过SSE指令集对所述目标数据进行运算,得到与所述预设大小相对应的运算数据;
对所述运算数据进行哈希运算,得到相应的哈希值;
获取所述目标数据在所述目标存储设备中的指纹值;
判断所述哈希值与所述指纹值是否一致,若否,则不再将所述目标数据写入所述目标存储设备中。
优选的,所述通过SSE指令集对所述目标数据进行运算,得到与所述预设大小相对应的运算数据,包括:
通过所述SSE指令集构建与所述预设大小相对应的初始数值;
对所述初始数值和所述目标数据进行并行运算,得到所述运算数据。
优选的,所述通过所述SSE指令集构建与所述预设大小相对应的初始数值,包括:
通过所述SSE指令集分别构建数据长度与所述预设大小相等的第一掩码值及第二掩码值;
构建数据长度与所述预设大小相等的循环值;
将所述第一掩码值、所述第二掩码值及所述循环值作为所述初始数值;
所述对所述初始数值和所述目标数据进行并行运算,得到所述运算数据,包括:
基于所述第一掩码值、所述第二掩码值、所述循环值及所述目标数据更新所述循环值;
判断所述循环值的数据长度是否与所述预设大小相对应,若是,则将所述循环值作为所述运算数据,若否,则返回执行所述在目标存储设备中读取预设大小的目标数据的步骤。
优选的,所述基于所述第一掩码值、所述第二掩码值、所述循环值及所述目标数据更新所述循环值,包括:
将所述循环值拆分为预设数量的子循环值;
将所述目标数据拆分为与所述子循环值一一对应的子目标数据;
基于所述子目标数据及所述第一掩码值、所述第二掩码值、对应的所述子循环值,更新所述子目标数据对应的所述子循环值。
优选的,所述基于所述子目标数据及所述第一掩码值、所述第二掩码值、对应的所述子循环值,更新所述子目标数据对应的所述子循环值,包括:
将所述子目标数据与所述第二掩码值相乘,得到第一乘值;
将所述第一乘值与所述子目标数据对应的所述子循环值相加的值,作为所述子目标数据对应的所述子循环值;
将所述子目标数据对应的所述子循环值左移31位与右移31位的数值做与操作,将与操作得到的值作为所述子目标数据对应的所述子循环值;
将所述子目标数据对应的所述子循环值与所述第一掩码值的乘积值,作为所述子目标数据对应的所述子循环值。
优选的,所述预设大小为128位,所述预设数量为4。
优选的,所述在所述目标存储设备中删除所述目标数据之后,还包括:
生成所述目标数据的删除信息并保存。
一种数据重删系统,包括:
第一读取模块,用于在目标存储设备中读取预设大小的目标数据;
第一运算模块,用于通过SSE指令集对所述目标数据进行运算,得到与所述预设大小相对应的运算数据;
第二运算模块,用于对所述运算数据进行哈希运算,得到相应的哈希值;
第一获取模块,用于获取所述目标数据在所述目标存储设备中的指纹值;
第一判断模块,用于判断所述哈希值与所述指纹值是否一致,若否,则不再将所述目标数据写入所述目标存储设备中。
一种数据重删设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述数据重删方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述数据重删方法的步骤。
本申请提供的一种数据重删方法,在目标存储设备中读取预设大小的目标数据;通过SSE指令集对目标数据进行运算,得到与预设大小相对应的运算数据;对运算数据进行哈希运算,得到相应的哈希值;获取目标数据在目标存储设备中的指纹值;判断哈希值与指纹值是否一致,若否,则不再将目标数据写入目标存储设备中。本申请提供的一种数据重删方法,通过SSE指令集对目标数据进行运算,实现了借助SSE指令集提高对目标数据进行运算的效率,进而提高了对哈希值的运算效率,并且只需通过判断哈希值与指纹值是否一致便可以判断目标数据是否为重复数据,提高对目标数据进行重删运算的效率,可以降低对CPU的资源消耗。本申请提供的一种数据重删系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据重删方法的流程图;
图2为本申请中得到运算数据的流程图;
图3为本申请中更新循环值的流程图;
图4为本申请中更新子循环值的流程图;
图5为本申请实施例提供的一种数据重删系统的结构示意图;
图6为本申请实施例提供的一种数据重删设备的结构示意图;
图7为本申请实施例提供的一种数据重删设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1为本申请实施例提供的一种数据重删方法的流程图。
本申请实施例提供的一种数据重删方法,可以应用于服务器、用户终端等设备中,包括以下步骤:
步骤S101:在目标存储设备中读取预设大小的目标数据。
实际应用中,可以先在目标存储设备中读取预设大小的目标数据,预设大小可以根据实际需要确定,比如根据运算效率、目标存储设备中存储的数据大小等确定。
步骤S102:通过SSE指令集对目标数据进行运算,得到与预设大小相对应的运算数据。
实际应用中,读取出目标数据后,便可以通过SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令集对目标数据进行运算,由于SSE指令集包含单指令多数据浮点计算以及额外的SIMD(Single Instruction Multiple Data,单指令多数据)整数和高速缓存控制指令,所以借助SSE指令集可以加快对目标数据的运算。具体应用场景中,运算数据的大小可以根据预设大小来确定。
步骤S103:对运算数据进行哈希运算,得到相应的哈希值。
步骤S104:获取目标数据在目标存储设备中的指纹值。
步骤S105:判断哈希值与指纹值是否一致,若否,则执行步骤S106:不再将目标数据写入目标存储设备中。
实际应用中,哈希值的大小可以根据SSE指令集的性能来确定,也可以根据具体的运算需求来确定等。此外,计算得到的哈希值便是目标数据在目标存储设备中的实际指纹值,因此可以通过哈希值与获取的指纹值来决定是否删除目标数据。
本申请提供的一种数据重删方法,在目标存储设备中读取预设大小的目标数据;通过SSE指令集对目标数据进行运算,得到与预设大小相对应的运算数据;对运算数据进行哈希运算,得到相应的哈希值;获取目标数据在目标存储设备中的指纹值;判断哈希值与指纹值是否一致,若否,则不再将目标数据写入目标存储设备中。本申请提供的一种数据重删方法,通过SSE指令集对目标数据进行运算,实现了借助SSE指令集提高对目标数据进行运算的效率,进而提高了对哈希值的运算效率,并且只需通过判断哈希值与指纹值是否一致便可以判断目标数据是否为重复数据,提高对目标数据进行重删运算的效率,可以降低对CPU的资源消耗。
本申请实施例提供的一种数据重删方法,在通过SSE指令集对目标数据进行运算,得到与预设大小相对应的运算数据时,可以先通过SSE指令集构建与预设大小相对应的初始数值;再对初始数值和目标数据进行并行运算,得到运算数据。
请参阅图2,图2为本申请中得到运算数据的流程图。
本申请实施例提供的一种数据重删方法中,步骤S102:通过SSE指令集对目标数据进行运算,得到与预设大小相对应的运算数据的步骤可以具体为:
步骤S111:通过SSE指令集分别构建数据长度与预设大小相等的第一掩码值及第二掩码值。
步骤S112:构建数据长度与预设大小相等的循环值。
步骤S113:将第一掩码值、第二掩码值及循环值作为初始数值。
步骤S114:基于第一掩码值、第二掩码值、循环值及目标数据更新循环值。
步骤S115:判断循环值的数据长度是否与预设大小相对应,若是,则执行步骤S116:将循环值作为运算数据;若否,则可以返回执行在目标存储设备中读取预设大小的目标数据的步骤。
也即本申请实施例提供的一种数据重删方法,在通过SSE指令集构建与预设大小相对应的初始数值时,可以通过SSE指令集分别构建数据长度与预设大小相等的第一掩码值及第二掩码值;构建数据长度与预设大小相等的循环值;将第一掩码值、第二掩码值及循环值作为初始数值;相应的,在对初始数值和目标数据进行并行运算,得到运算数据时,可以基于第一掩码值、第二掩码值、循环值及目标数据更新循环值;判断循环值的数据长度是否与预设大小相对应,若是,则将循环值作为运算数据,若否,则返回执行在目标存储设备中读取预设大小的目标数据的步骤。
请参阅图3,图3为本申请中更新循环值的流程图。
本申请实施例提供的一种数据重删方法中,步骤S114:基于第一掩码值、第二掩码值、循环值及目标数据更新循环值的步骤可以具体为:
步骤S121:将循环值拆分为预设数量的子循环值。
步骤S122:将目标数据拆分为与子循环值一一对应的子目标数据。
步骤S123:基于子目标数据及第一掩码值、第二掩码值、对应的子循环值,更新子目标数据对应的子循环值。
也即实际应用中,在基于第一掩码值、第二掩码值、循环值及目标数据更新循环值时,可以将循环值拆分为预设数量的子循环值;将目标数据拆分为与子循环值一一对应的子目标数据;基于子目标数据及第一掩码值、第二掩码值、对应的子循环值,更新子目标数据对应的子循环值。
请参阅图4,图4为本申请中更新子循环值的流程图。
本申请实施例提供的一种数据重删方法中,步骤S123:基于子目标数据及第一掩码值、第二掩码值、对应的子循环值,更新子目标数据对应的子循环值的步骤可以具体为:
步骤S131:将子目标数据与第二掩码值相乘,得到第一乘值。
步骤S132:将第一乘值与子目标数据对应的子循环值相加的值,作为子目标数据对应的子循环值。
步骤S133:将子目标数据对应的子循环值左移31位与右移31位的数值做与操作,将与操作得到的值作为子目标数据对应的子循环值。
步骤S134:将子目标数据对应的子循环值与第一掩码值的乘积值,作为子目标数据对应的子循环值。
也即具体应用场景中,在基于子目标数据及第一掩码值、第二掩码值、对应的子循环值,更新子目标数据对应的子循环值时,可以将子目标数据与第二掩码值相乘,得到第一乘值;将第一乘值与子目标数据对应的子循环值相加的值,作为子目标数据对应的子循环值;将子目标数据对应的子循环值左移31位与右移31位的数值做与操作,将与操作得到的值作为子目标数据对应的子循环值;将子目标数据对应的子循环值与第一掩码值的乘积值,作为子目标数据对应的子循环值。
本申请实施例提供的一种数据重删方法中,预设大小及预设数量的值均可以根据实际需要确定,比如预设大小可以为128位,预设数量可以为4。假设目标数据、循环值的结构分别为表1和表2,其中,Uint32 date_1、Uint32 date_2、Uint32 date_3、Uint32 date_4表示目标数据拆分得到的子目标数据,Uint32 v_1、Uint32 v_2、Uint32 v_3、Uint32 v_4表示循环值拆分得到的子循环值,且Uint32 date_x与Uint32 v_x一一对应,则基于子目标数据及第一掩码值、第二掩码值、对应的子循环值,更新子目标数据对应的子循环值的过程可以用公式表示为:V_x=v_x+date_x*P2;v_x=v_x<<31|v_x>>33;V_x=v_x*P1。其中,P1表示第一掩码值,P2表示第二掩码值。
表1目标数据的结构
Uint32 date_1 | Uint32 date_2 | Uint32 date_3 | Uint32 date_4 |
表2循环值的结构
Uint32 v_1 | Uint32 v_2 | Uint32 v_3 | Uint32 v_4 |
本申请实施例提供的一种数据重删方法,为了便于外界对目标数据进行管理,在目标存储设备中删除目标数据之后,还可以生成目标数据的删除信息并保存。
请参阅图5,图5为本申请实施例提供的一种数据重删系统的结构示意图。
本申请实施例提供的一种数据重删系统,可以包括:
第一读取模块101,用于在目标存储设备中读取预设大小的目标数据;
第一运算模块102,用于通过SSE指令集对目标数据进行运算,得到与预设大小相对应的运算数据;
第二运算模块103,用于对运算数据进行哈希运算,得到相应的哈希值;
第一获取模块104,用于获取目标数据在目标存储设备中的指纹值;
第一判断模块105,用于判断哈希值与指纹值是否一致,若否,则不再将目标数据写入目标存储设备中。
本申请实施例提供的一种数据重删系统,第一运算模块可以包括:
第一构建子模块,用于通过SSE指令集构建与预设大小相对应的初始数值;
第一运算子模块,用于对初始数值和目标数据进行并行运算,得到运算数据。
本申请实施例提供的一种数据重删系统,第一构建子模块可以包括:
第一构建单元,用于通过SSE指令集分别构建数据长度与预设大小相等的第一掩码值及第二掩码值;
第二构建单元,用于构建数据长度与预设大小相等的循环值;
第一设置单元,用于将第一掩码值、第二掩码值及循环值作为初始数值;
第一运算子模块可以包括:
第一更新子模块,用于基于第一掩码值、第二掩码值、循环值及目标数据更新循环值;
第一判断子模块,用于判断循环值的数据长度是否与预设大小相对应,若是,则将循环值作为运算数据,若否,则提示第一读取模块执行在目标存储设备中读取预设大小的目标数据的步骤。
本申请实施例提供的一种数据重删系统,第一更新子模块可以包括:
第一拆分子模块,用于将循环值拆分为预设数量的子循环值;
第二拆分子模块,用于将目标数据拆分为与子循环值一一对应的子目标数据;
第二更新子模块,用于基于子目标数据及第一掩码值、第二掩码值、对应的子循环值,更新子目标数据对应的子循环值。
本申请实施例提供的一种数据重删系统,第二更新子模块可以包括:
第一计算单元,用于将子目标数据与第二掩码值相乘,得到第一乘值;
第二计算单元,用于将第一乘值与子目标数据对应的子循环值相加的值,作为子目标数据对应的子循环值;
第三计算单元,用于将子目标数据对应的子循环值左移31位与右移31位的数值做与操作,将与操作得到的值作为子目标数据对应的子循环值;
第四计算单元,用于将子目标数据对应的子循环值与第一掩码值的乘积值,作为子目标数据对应的子循环值。
本申请实施例提供的一种数据重删系统,预设大小可以为128位,预设数量可以为4。
本申请实施例提供的一种数据重删系统,还可以包括:
第一生成模块,用于第一判断模块在目标存储设备中删除目标数据之后,生成目标数据的删除信息并保存。
本申请还提供了一种数据重删设备及计算机可读存储介质,其均具有本申请实施例提供的一种数据重删方法具有的对应效果。请参阅图6,图6为本申请实施例提供的一种数据重删设备的结构示意图。
本申请实施例提供的一种数据重删设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:
在目标存储设备中读取预设大小的目标数据;
通过SSE指令集对目标数据进行运算,得到与预设大小相对应的运算数据;
对运算数据进行哈希运算,得到相应的哈希值;
获取目标数据在目标存储设备中的指纹值;
判断哈希值与指纹值是否一致,若否,则不再将目标数据写入目标存储设备中。
本申请实施例提供的一种数据重删设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:通过SSE指令集构建与预设大小相对应的初始数值;对初始数值和目标数据进行并行运算,得到运算数据。
本申请实施例提供的一种数据重删设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:通过SSE指令集分别构建数据长度与预设大小相等的第一掩码值及第二掩码值;构建数据长度与预设大小相等的循环值;将第一掩码值、第二掩码值及循环值作为初始数值;基于第一掩码值、第二掩码值、循环值及目标数据更新循环值;判断循环值的数据长度是否与预设大小相对应,若是,则将循环值作为运算数据,若否,则返回执行在目标存储设备中读取预设大小的目标数据的步骤。
本申请实施例提供的一种数据重删设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:将循环值拆分为预设数量的子循环值;将目标数据拆分为与子循环值一一对应的子目标数据;基于子目标数据及第一掩码值、第二掩码值、对应的子循环值,更新子目标数据对应的子循环值。
本申请实施例提供的一种数据重删设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:将子目标数据与第二掩码值相乘,得到第一乘值;将第一乘值与子目标数据对应的子循环值相加的值,作为子目标数据对应的子循环值;将子目标数据对应的子循环值左移31位与右移31位的数值做与操作,将与操作得到的值作为子目标数据对应的子循环值;将子目标数据对应的子循环值与第一掩码值的乘积值,作为子目标数据对应的子循环值。
本申请实施例提供的一种数据重删设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:预设大小为128位,预设数量为4。
本申请实施例提供的一种数据重删设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如下步骤:在目标存储设备中删除目标数据之后,生成目标数据的删除信息并保存。
请参阅图7,本申请实施例提供的另一种数据重删设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现数据重删设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:
在目标存储设备中读取预设大小的目标数据;
通过SSE指令集对目标数据进行运算,得到与预设大小相对应的运算数据;
对运算数据进行哈希运算,得到相应的哈希值;
获取目标数据在目标存储设备中的指纹值;
判断哈希值与指纹值是否一致,若否,则不再将目标数据写入目标存储设备中。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:通过SSE指令集构建与预设大小相对应的初始数值;对初始数值和目标数据进行并行运算,得到运算数据。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:通过SSE指令集分别构建数据长度与预设大小相等的第一掩码值及第二掩码值;构建数据长度与预设大小相等的循环值;将第一掩码值、第二掩码值及循环值作为初始数值;基于第一掩码值、第二掩码值、循环值及目标数据更新循环值;判断循环值的数据长度是否与预设大小相对应,若是,则将循环值作为运算数据,若否,则返回执行在目标存储设备中读取预设大小的目标数据的步骤。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:将循环值拆分为预设数量的子循环值;将目标数据拆分为与子循环值一一对应的子目标数据;基于子目标数据及第一掩码值、第二掩码值、对应的子循环值,更新子目标数据对应的子循环值。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:将子目标数据与第二掩码值相乘,得到第一乘值;将第一乘值与子目标数据对应的子循环值相加的值,作为子目标数据对应的子循环值;将子目标数据对应的子循环值左移31位与右移31位的数值做与操作,将与操作得到的值作为子目标数据对应的子循环值;将子目标数据对应的子循环值与第一掩码值的乘积值,作为子目标数据对应的子循环值。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:预设大小为128位,预设数量为4。
本申请实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如下步骤:在目标存储设备中删除目标数据之后,生成目标数据的删除信息并保存。
本申请所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本申请实施例提供的一种数据重删系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种数据重删方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据重删方法,其特征在于,包括:
在目标存储设备中读取预设大小的目标数据;
通过SSE指令集对所述目标数据进行运算,得到与所述预设大小相对应的运算数据;
对所述运算数据进行哈希运算,得到相应的哈希值;
获取所述目标数据在所述目标存储设备中的指纹值;
判断所述哈希值与所述指纹值是否一致,若否,则不再将所述目标数据写入所述目标存储设备中。
2.根据权利要求1所述的方法,其特征在于,所述通过SSE指令集对所述目标数据进行运算,得到与所述预设大小相对应的运算数据,包括:
通过所述SSE指令集构建与所述预设大小相对应的初始数值;
对所述初始数值和所述目标数据进行并行运算,得到所述运算数据。
3.根据权利要求2所述的方法,其特征在于,所述通过所述SSE指令集构建与所述预设大小相对应的初始数值,包括:
通过所述SSE指令集分别构建数据长度与所述预设大小相等的第一掩码值及第二掩码值;
构建数据长度与所述预设大小相等的循环值;
将所述第一掩码值、所述第二掩码值及所述循环值作为所述初始数值;
所述对所述初始数值和所述目标数据进行并行运算,得到所述运算数据,包括:
基于所述第一掩码值、所述第二掩码值、所述循环值及所述目标数据更新所述循环值;
判断所述循环值的数据长度是否与所述预设大小相对应,若是,则将所述循环值作为所述运算数据,若否,则返回执行所述在目标存储设备中读取预设大小的目标数据的步骤。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一掩码值、所述第二掩码值、所述循环值及所述目标数据更新所述循环值,包括:
将所述循环值拆分为预设数量的子循环值;
将所述目标数据拆分为与所述子循环值一一对应的子目标数据;
基于所述子目标数据及所述第一掩码值、所述第二掩码值、对应的所述子循环值,更新所述子目标数据对应的所述子循环值。
5.根据权利要求4所述的方法,其特征在于,所述基于所述子目标数据及所述第一掩码值、所述第二掩码值、对应的所述子循环值,更新所述子目标数据对应的所述子循环值,包括:
将所述子目标数据与所述第二掩码值相乘,得到第一乘值;
将所述第一乘值与所述子目标数据对应的所述子循环值相加的值,作为所述子目标数据对应的所述子循环值;
将所述子目标数据对应的所述子循环值左移31位与右移31位的数值做与操作,将与操作得到的值作为所述子目标数据对应的所述子循环值;
将所述子目标数据对应的所述子循环值与所述第一掩码值的乘积值,作为所述子目标数据对应的所述子循环值。
6.根据权利要求5所述的方法,其特征在于,所述预设大小为128位,所述预设数量为4。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述在所述目标存储设备中删除所述目标数据之后,还包括:
生成所述目标数据的删除信息并保存。
8.一种数据重删系统,其特征在于,包括:
第一读取模块,用于在目标存储设备中读取预设大小的目标数据;
第一运算模块,用于通过SSE指令集对所述目标数据进行运算,得到与所述预设大小相对应的运算数据;
第二运算模块,用于对所述运算数据进行哈希运算,得到相应的哈希值;
第一获取模块,用于获取所述目标数据在所述目标存储设备中的指纹值;
第一判断模块,用于判断所述哈希值与所述指纹值是否一致,若否,则不再将所述目标数据写入所述目标存储设备中。
9.一种数据重删设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据重删方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据重删方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911275091.9A CN111090397B (zh) | 2019-12-12 | 2019-12-12 | 一种数据重删方法、系统、设备及计算机可读存储介质 |
PCT/CN2020/073400 WO2021114464A1 (zh) | 2019-12-12 | 2020-01-21 | 一种数据重删方法、系统、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911275091.9A CN111090397B (zh) | 2019-12-12 | 2019-12-12 | 一种数据重删方法、系统、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111090397A true CN111090397A (zh) | 2020-05-01 |
CN111090397B CN111090397B (zh) | 2021-10-22 |
Family
ID=70396318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911275091.9A Active CN111090397B (zh) | 2019-12-12 | 2019-12-12 | 一种数据重删方法、系统、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111090397B (zh) |
WO (1) | WO2021114464A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361346A (zh) * | 2023-06-02 | 2023-06-30 | 山东浪潮科学研究院有限公司 | 基于掩码计算的数据表解析方法、装置、设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114786141B (zh) * | 2022-04-29 | 2023-11-21 | 恒玄科技(上海)股份有限公司 | 一种蓝牙无线网格网络中的消息过滤方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629258A (zh) * | 2012-02-29 | 2012-08-08 | 浪潮(北京)电子信息产业有限公司 | 重复数据删除方法和装置 |
US20130332742A1 (en) * | 2012-06-07 | 2013-12-12 | Intel Corporation | Speed up secure hash algorithm (sha) using single instruction multiple data (simd) architectures |
CN103914506A (zh) * | 2012-12-28 | 2014-07-09 | 富士通株式会社 | 数据检索装置、数据存储方法和数据检索方法 |
CN104077380A (zh) * | 2014-06-26 | 2014-10-01 | 深圳信息职业技术学院 | 一种重复数据删除方法、装置及系统 |
KR20140131457A (ko) * | 2013-05-03 | 2014-11-13 | 인하대학교 산학협력단 | Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법 |
CN104462388A (zh) * | 2014-12-10 | 2015-03-25 | 上海爱数软件有限公司 | 一种基于级联式存储介质的冗余数据清理方法 |
CN104881470A (zh) * | 2015-05-28 | 2015-09-02 | 暨南大学 | 一种面向海量图片数据的重复数据删除方法 |
CN105930101A (zh) * | 2016-05-04 | 2016-09-07 | 中国人民解放军国防科学技术大学 | 一种基于闪存固态盘的弱指纹重复数据删除机制 |
CN107276745A (zh) * | 2017-06-23 | 2017-10-20 | 上海兆芯集成电路有限公司 | 实施安全哈希算法的处理器以及数字信号处理方法 |
CN107534445A (zh) * | 2016-04-19 | 2018-01-02 | 华为技术有限公司 | 用于分割哈希值计算的向量处理 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818356B2 (en) * | 2001-10-29 | 2010-10-19 | Intel Corporation | Bitstream buffer manipulation with a SIMD merge instruction |
JP6537202B2 (ja) * | 2016-04-19 | 2019-07-03 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ベクトル処理を使用する並行セグメント化 |
CN107644081A (zh) * | 2017-09-21 | 2018-01-30 | 锐捷网络股份有限公司 | 数据去重方法及装置 |
-
2019
- 2019-12-12 CN CN201911275091.9A patent/CN111090397B/zh active Active
-
2020
- 2020-01-21 WO PCT/CN2020/073400 patent/WO2021114464A1/zh active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102629258A (zh) * | 2012-02-29 | 2012-08-08 | 浪潮(北京)电子信息产业有限公司 | 重复数据删除方法和装置 |
US20130332742A1 (en) * | 2012-06-07 | 2013-12-12 | Intel Corporation | Speed up secure hash algorithm (sha) using single instruction multiple data (simd) architectures |
CN103914506A (zh) * | 2012-12-28 | 2014-07-09 | 富士通株式会社 | 数据检索装置、数据存储方法和数据检索方法 |
KR20140131457A (ko) * | 2013-05-03 | 2014-11-13 | 인하대학교 산학협력단 | Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법 |
CN104077380A (zh) * | 2014-06-26 | 2014-10-01 | 深圳信息职业技术学院 | 一种重复数据删除方法、装置及系统 |
CN104462388A (zh) * | 2014-12-10 | 2015-03-25 | 上海爱数软件有限公司 | 一种基于级联式存储介质的冗余数据清理方法 |
CN104881470A (zh) * | 2015-05-28 | 2015-09-02 | 暨南大学 | 一种面向海量图片数据的重复数据删除方法 |
CN107534445A (zh) * | 2016-04-19 | 2018-01-02 | 华为技术有限公司 | 用于分割哈希值计算的向量处理 |
CN105930101A (zh) * | 2016-05-04 | 2016-09-07 | 中国人民解放军国防科学技术大学 | 一种基于闪存固态盘的弱指纹重复数据删除机制 |
CN107276745A (zh) * | 2017-06-23 | 2017-10-20 | 上海兆芯集成电路有限公司 | 实施安全哈希算法的处理器以及数字信号处理方法 |
Non-Patent Citations (1)
Title |
---|
佚名: "SSE掩码运算测试", 《CSDN》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361346A (zh) * | 2023-06-02 | 2023-06-30 | 山东浪潮科学研究院有限公司 | 基于掩码计算的数据表解析方法、装置、设备及存储介质 |
CN116361346B (zh) * | 2023-06-02 | 2023-08-08 | 山东浪潮科学研究院有限公司 | 基于掩码计算的数据表解析方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021114464A1 (zh) | 2021-06-17 |
CN111090397B (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062512B (zh) | 一种分布式存储集群、数据读写方法、系统及相关装置 | |
EP3113043B1 (en) | Method, device and host for updating metadata stored in columns in distributed file system | |
CN107239392B (zh) | 一种测试方法、装置、终端及存储介质 | |
US20180107725A1 (en) | Data Storage Method and Apparatus, and Data Read Method and Apparatus | |
CN111737221B (zh) | 集群文件系统的数据读写方法、装置及设备和存储介质 | |
CN111090397B (zh) | 一种数据重删方法、系统、设备及计算机可读存储介质 | |
CN109542911B (zh) | 一种元数据组织方法、系统、设备及计算机可读存储介质 | |
CN112445729B (zh) | 操作地址确定方法、PCIe系统、电子设备及存储介质 | |
CN114816752A (zh) | 一种内存管理方法、系统、设备及计算机可读存储介质 | |
CN111241071A (zh) | 一种数据迁移方法、系统、设备及计算机可读存储介质 | |
CN111399857A (zh) | 一种fru数据烧录方法、系统、设备及计算机存储介质 | |
CN112486988A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN109697234B (zh) | 实体的多属性信息查询方法、装置、服务器和介质 | |
CN113111013B (zh) | 一种闪存数据块绑定方法、装置及介质 | |
US11567698B2 (en) | Storage device configured to support multi-streams and operation method thereof | |
CN113590666A (zh) | 一种ai集群中数据缓存方法、系统、设备及计算机介质 | |
CN110032445B (zh) | 大数据聚集计算方法及装置 | |
CN112527276A (zh) | 一种可视化编程工具中的数据更新方法、装置及终端设备 | |
CN104951406A (zh) | 一种分页式地址空间管理方法以及控制器 | |
CN112487111A (zh) | 基于kv数据库的数据表关联方法及装置 | |
EP3048541A1 (en) | File access method and device | |
WO2012138376A1 (en) | Method and devices for determining parallelism of tasks of a program | |
CN111666733B (zh) | 一种文档中的单元格处理方法和装置 | |
CN109324797B (zh) | 一种桌面图标生成方法、计算机可读存储介质及终端设备 | |
CN111625192B (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 |