一种数据重删方法、系统、设备及计算机可读存储介质与流程

文档序号:20598757发布日期:2020-05-01 21:26阅读:137来源:国知局
一种数据重删方法、系统、设备及计算机可读存储介质与流程
本申请涉及存储
技术领域
,更具体地说,涉及一种数据重删方法、系统、设备及计算机可读存储介质。
背景技术
:当前,在存储领域中,海量数据的查询和存储均需要占用超大的资源,严重影响了数据存储的性能。为了降低存储数据所需占用的资源,提高数据存储性能,现有的一种方法是对数据进行重删处理,重删处理也即对重复数据进行删除,使得存储设备中只保留有一份相同数据,在不影响数据一致性的前提下,减少盘上的数据存放量。然而,判断数据是否为重复数据的核心思想是计算数据的指纹值,而指纹值的计算需要占用大量的cpu(centralprocessingunit,中央处理器)资源,从而影响设备的性能。综上所述,如何降低数据重删方法占用的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(streamingsimdextensions,单指令多数据流扩展)指令集对目标数据进行运算,由于sse指令集包含单指令多数据浮点计算以及额外的simd(singleinstructionmultipledata,单指令多数据)整数和高速缓存控制指令,所以借助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,其中,uint32date_1、uint32date_2、uint32date_3、uint32date_4表示目标数据拆分得到的子目标数据,uint32v_1、uint32v_2、uint32v_3、uint32v_4表示循环值拆分得到的子循环值,且uint32date_x与uint32v_x一一对应,则基于子目标数据及第一掩码值、第二掩码值、对应的子循环值,更新子目标数据对应的子循环值的过程可以用公式表示为:v_x=v_x+date_x*p2;v_x=v_x<<31|v_x>>33;v_x=v_x*p1。其中,p1表示第一掩码值,p2表示第二掩码值。表1目标数据的结构uint32date_1uint32date_2uint32date_3uint32date_4表2循环值的结构uint32v_1uint32v_2uint32v_3uint32v_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、或
技术领域
内所公知的任意其它形式的存储介质。本申请实施例提供的一种数据重删系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种数据重删方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1