CN107193498B - 一种对数据进行去重复处理的方法及装置 - Google Patents

一种对数据进行去重复处理的方法及装置 Download PDF

Info

Publication number
CN107193498B
CN107193498B CN201710379388.4A CN201710379388A CN107193498B CN 107193498 B CN107193498 B CN 107193498B CN 201710379388 A CN201710379388 A CN 201710379388A CN 107193498 B CN107193498 B CN 107193498B
Authority
CN
China
Prior art keywords
data
cache
storage
target
region
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
Application number
CN201710379388.4A
Other languages
English (en)
Other versions
CN107193498A (zh
Inventor
郝庆
徐兵兵
李铁军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Technology Co Ltd
Original Assignee
Inspur Software Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Software Group Co Ltd filed Critical Inspur Software Group Co Ltd
Priority to CN201710379388.4A priority Critical patent/CN107193498B/zh
Publication of CN107193498A publication Critical patent/CN107193498A/zh
Application granted granted Critical
Publication of CN107193498B publication Critical patent/CN107193498B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes

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

本发明提供了一种对数据进行去重复处理的方法及装置,其中,所述方法包括:在内存中设置缓存区域,以及预先在非易失性存储介质中设置指定存储区域;在采集到一个待处理数据时,检测所述缓存区域中是否存在与所述待处理数据相同的目标缓存数据;当所述缓存区域中不存在与所述待处理数据相同的目标缓存数据时,将所述待处理数据作为缓存数据存储至所述缓存区域;检测所述缓存区域的剩余存储空间,在所述剩余存储空间小于预设阈值时,将所述缓存区域中存储的各个所述缓存数据分别作为存储数据存储至所述指定存储区域,并清除所述缓存区域中存储的各个所述缓存数据。通过本发明的技术方案,可更为快速的实现对大量待处理数据进行去重复处理。

Description

一种对数据进行去重复处理的方法及装置
技术领域
本发明涉及计算机技术领域,特别涉及一种对数据进行去重复处理的方法及装置。
背景技术
随着计算机技术的不断发展,计算机应用程序所产生的数据也大量增加,为了节约存储资源,经常需要对某一个计算机应用程序所产生或采集的数据进行去重复处理。
目前,对数据进行去重复处理时,通常需要将各个待处理数据写入到非易失性存储介质中,然后对存储在非易失性存储介质中的各个待处理数据进行逐一比较,当存在多个待处理数据相同时,则可对相应的待处理数据进行删除,以实现对各个待处理数据进行去重复处理。
但是,上述技术方案中,当大量的待处理数据被存储至非易失性存储介质时,则不易对各个待处理数据进行逐一比较,需要花费大量的处理时间才能实现对各个待处理数据进行去重复处理。
发明内容
本发明实施例提供了一种对数据进行去重复处理的方法及装置,可更为快速的实现对大量待处理数据进行去重复处理。
第一方面,本发明提供了一种对数据进行去重复处理的方法,包括:
S0:在内存中设置缓存区域,以及预先在非易失性存储介质中设置指定存储区域;
S1:在采集到一个待处理数据时,检测所述缓存区域中是否存在与所述待处理数据相同的目标缓存数据;
S2:当所述缓存区域中不存在与所述待处理数据相同的目标缓存数据时,将所述待处理数据作为缓存数据存储至所述缓存区域;
S3:检测所述缓存区域的剩余存储空间,在所述剩余存储空间小于预设阈值时,将所述缓存区域中存储的各个所述缓存数据分别作为存储数据存储至所述指定存储区域,并清除所述缓存区域中存储的各个所述缓存数据。
优选地,
所述预先在非易失性存储介质中设置指定存储区域,包括:
预先在非易失性存储介质中设置包括至少一个存储分区的指定存储区域,其中,每一个所述存储分区分别对应一个设定长度的数据链;
则,所述将所述缓存区域中存储的各个所述缓存数据分别作为存储数据存储至所述指定存储区域,包括:
针对于所述缓存区域中存储的每一个所述缓存数据,均执行:
A1:计算所述缓存数据的摘要值;
A2:根据所述摘要值及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标存储分区;
A3:当所述目标存储分区中不存在与所述缓存数据相同的目标存储数据时,将所述缓存数据作为存储数据存储至所述目标存储分区。
优选地,
所述预先在非易失性存储介质中设置包括至少一个存储分区的指定存储区域,进一步包括:根据各个所述存储分区分别对应的数据链设置各个所述存储分区分别对应的摘要值索引;
则,所述A2进一步包括:根据所述摘要值以及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标摘要值索引;
所述A3,包括:查询所述目标摘要索引中是否存在所述摘要值;当所述目标摘要索引中不存在所述摘要值时,将所述缓存数据作为存储数据存储至所述目标存储分区,并将所述摘要值新增至所述目标摘要索引。
优选地,
所述将所述摘要值新增至所述目标摘要索引,包括:根据所述摘要值的大小,将所述摘要值插入到所述目标摘要索引中。
优选地,
针对于每一个所述缓存数据,当前所述缓存数据的摘要值的前n个数据位所形成的数据链,与存储当前所述缓存数据的目标存储分区所对应的数据链相同,其中,n为所述设定长度。
第二方面,本发明实施例提供了一种对数据进行去重复处理的装置,包括:
设置模块,用于在内存中设置缓存区域,以及预先在非易失性存储介质中设置指定存储区域;
检测模块,用于在采集到一个待处理数据时,检测所述缓存区域中是否存在与所述待处理数据相同的目标缓存数据;
缓存处理模块,用于当所述缓存区域中不存在与所述待处理数据相同的目标缓存数据时,将所述待处理数据作为缓存数据存储至所述缓存区域;
存储处理模块,用于检测所述缓存区域的剩余存储空间,在所述剩余存储空间小于预设阈值时,将所述缓存区域中存储的各个所述缓存数据分别作为存储数据存储至所述指定存储区域,并清除所述缓存区域中存储的各个所述缓存数据。
优选地,
所述设置模块,用于预先在非易失性存储介质中设置包括至少一个存储分区的指定存储区域,其中,每一个所述存储分区分别对应一个设定长度的数据链;
则,所述存储处理模块,包括:计算单元、确定单元和存储处理单元;
所述计算单元,用于针对于所述缓存区域中存储的每一个所述缓存数据,计算所述缓存数据的摘要值;
所述确定单元,用于根据所述摘要值及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标存储分区;
所述存储处理单元,用于当所述目标存储分区中不存在与所述缓存数据相同的目标存储数据时,将所述缓存数据作为存储数据存储至所述目标存储分区。
优选地,
所述设置模块,进一步用于根据各个所述存储分区分别对应的数据链设置各个所述存储分区分别对应的摘要值索引;
则,
所述确定单元,进一步用于根据所述摘要值以及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标摘要值索引;
所述存储处理单元,用于查询所述目标摘要索引中是否存在所述摘要值;当所述目标摘要索引中不存在所述摘要值时,将所述缓存数据作为存储数据存储至所述目标存储分区,并将所述摘要值新增至所述目标摘要索引。
优选地,所述存储处理单元,用于根据所述摘要值的大小,将所述摘要值插入到所述目标摘要索引中。
优选地,
针对于每一个所述缓存数据,当前所述缓存数据的摘要值的前n个数据位所形成的数据链,与存储当前所述缓存数据的目标存储分区所对应的数据链相同,其中,n为所述设定长度。
本发明实施例提供了一种对数据进行去重复处理的方法及装置,该方法中,由于在采集大量的待处理数据时,相同的待处理数据通常在时间上具有一定的连续性,通过在内存中设置缓存区域,以及在非易失性存储介质中设置指定存储区域,在每采集到一个待处理数据后,当且仅当在检测到缓存区域中不存在与该待处理数据相同的目标缓存数据时,才将该待处理数据作为缓存数据存储至缓存区域,从而实现对一个连续的时间段内采集的各个待处理数据进行去重复处理,后续则可在检测到缓存区域的剩余存储空间小于预设阈值时,将缓存区域中存储的各个缓存数据分别作为存储数据存储至指定存储区域,并清除缓存区域中存储的各个缓存数据,以便利用空闲的缓存区域对后续时间段内采集的各个待处理数据再次进行去重复处理。综上可见,本发明实施例提供的技术方案中,无需将各个待处理数据全部存储至非易失性存储介质以对各个待处理数据进行去重复处理,仅需要通过缓存区域对各个不同时间段内分别连续采集的少量待处理数据进行去重复处理则可,可更为快速的实现对大量待处理数据进行去重复处理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种对数据进行去重复处理的方法的流程图;
图2是本发明一实施例提供的另一种对数据进行去重复处理的方法的流程图;
图3是本发明一实施例提供的一种对数据进行去重复处理的装置的结构示意图;
图4是本发明一实施例提供的另一种对数据进行去重复处理的装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种对数据进行去重复处理的方法,包括:
S0:在内存中设置缓存区域,以及预先在非易失性存储介质中设置指定存储区域;
S1:在采集到一个待处理数据时,检测所述缓存区域中是否存在与所述待处理数据相同的目标缓存数据;
S2:当所述缓存区域中不存在与所述待处理数据相同的目标缓存数据时,将所述待处理数据作为缓存数据存储至所述缓存区域;
S3:检测所述缓存区域的剩余存储空间,在所述剩余存储空间小于预设阈值时,将所述缓存区域中存储的各个所述缓存数据分别作为存储数据存储至所述指定存储区域,并清除所述缓存区域中存储的各个所述缓存数据。
本发明上述实施例中,由于在采集大量的待处理数据时,相同的待处理数据通常在时间上具有一定的连续性,通过在内存中设置缓存区域,以及在非易失性存储介质中设置指定存储区域,在每采集到一个待处理数据后,当且仅当在检测到缓存区域中不存在与该待处理数据相同的目标缓存数据时,才将该待处理数据作为缓存数据存储至缓存区域,从而实现对一个连续的时间段内采集的各个待处理数据进行去重复处理,后续则可在检测到缓存区域的剩余存储空间小于预设阈值时,将缓存区域中存储的各个缓存数据分别作为存储数据存储至指定存储区域,并清除缓存区域中存储的各个缓存数据,以便利用空闲的缓存区域对后续时间段内采集的各个待处理数据再次进行去重复处理。综上可见,本发明实施例提供的技术方案中,无需将各个待处理数据全部存储至非易失性存储介质以对各个待处理数据进行去重复处理,仅需要通过缓存区域对各个不同时间段内分别连续采集的少量待处理数据进行去重复处理则可,可更为快速的实现对大量待处理数据进行去重复处理。
本发明一个实施例中,所述步骤S1中,所述预先在非易失性存储介质中设置指定存储区域,包括:
预先在非易失性存储介质中设置包括至少一个存储分区的指定存储区域,其中,每一个所述存储分区分别对应一个设定长度的数据链;
则,所述将所述缓存区域中存储的各个所述缓存数据分别作为存储数据存储至所述指定存储区域,包括:
针对于所述缓存区域中存储的每一个所述缓存数据,均执行:
A1:计算所述缓存数据的摘要值;
A2:根据所述摘要值及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标存储分区;
A3:当所述目标存储分区中不存在与所述缓存数据相同的目标存储数据时,将所述缓存数据作为存储数据存储至所述目标存储分区。
具体地,针对于每一个所述缓存数据,当前所述缓存数据的摘要值的前n个数据位所形成的数据链,与存储当前所述缓存数据的目标存储分区所对应的数据链相同,其中,n为所述设定长度。
通过本发明上述实施例,由于已经被存储至非易失性存储介质的各个存储数据中,可能存在目标存储数据与即将被存储至非易失性存储介质的缓存数据相同,通过将对应摘要值前n个数据位相同的各个缓存数据作为存储数据存储到同一个存储分区内,在后续过程中需要对已经存储至非易失性存储介质中进行读取,以确定非易失性存储介质中是否存在与缓存数据相同的目标存储数据时,仅需要根据即将被存储至非易失性存储介质的缓存数据的摘要值,读取所对应数据链与该摘要值相对应的目标存储分区内的各个存储数据则可,无需读取已经被存储至非易失性存储介质的全部存储数据,则可快速确定出非易失性存储介质中是否存在与即将被存储至非易失性存储介质的缓存数据相同的目标存储数据。
具体地,为了更为快速的确定出非易失性存储介质中是否存在与即将被存储至非易失性存储介质的缓存数据相同的目标存储数据,本发明一个实施例中,所述预先在非易失性存储介质中设置包括至少一个存储分区的指定存储区域,进一步包括:根据各个所述存储分区分别对应的数据链设置各个所述存储分区分别对应的摘要值索引;
则,所述A2进一步包括:根据所述摘要值以及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标摘要值索引;
所述A3,包括:查询所述目标摘要索引中是否存在所述摘要值;当所述目标摘要索引中不存在所述摘要值时,将所述缓存数据作为存储数据存储至所述目标存储分区,并将所述摘要值新增至所述目标摘要索引。
本发明上述实施例中,各个存储分区所分别对应的摘要值索引具体可以由已经被存储至当前存储分区的各个存储数据所分别对应的摘要值构成,当需要确定非易失性存储介质中是否存在与即将被存储至非易失性存储介质的缓存数据相同的目标存储数据时,仅需要计算出即将被存储至非易失存储介质的摘要值,然后根据该摘要值确定出对应的目标摘要值索引,进而通过判断目标摘要值索引中是否存在与该摘要值相同的目标摘要值,来确定非易失性存储介质中是否存在与即将被存储至非易失性存储介质的缓存数据相同的目标存储数据。综上可见,无需读取已经被存储至相应目标存储分区的各个存储数据,可更为快速的确定出非易失性存储介质中是否存在与即将被存储至非易失性存储介质的缓存数据相同的目标存储数据。
相应的,当且仅当确定出非易失性存储介质中不存在与即将被存储至非易失性存储介质的缓存数据相同的目标存储数据时,才将即将被存储至非易失性存储介质的缓存数据作为存储数据存储至非易失性存储介质中相应的存储分区,确保非易失性存储介质中不会存储相同的存储数据。
进一步的,为了实现快速判断目标摘要值索引中是否存在与该摘要值相同的目标摘要值,本发明一个实施例中,所述将所述摘要值新增至所述目标摘要索引,包括:根据所述摘要值的大小,将所述摘要值插入到所述目标摘要索引中。摘要值索引中的各个摘要值具体可以按照由小到大或由大大小的顺序进行排序,在针对计算的摘要值与确定的摘要值索引中的各个摘要值进行比较时,无需将计算的摘要值与确定的目标摘要值索引中的各个摘要值进行逐一比较则可确定出目标摘要值索引中是否存在与该摘要值相同的目标摘要值。
举例来说,计算得到缓存区域中即将需要被存储至非易失性存储介质的一个缓存数据所对应的摘要值为A,确定的目标摘要值索引中包括有4个按照由小到大的顺序排列的摘要值B、C、D、E;当需要判断目标摘要值索引中是否存在目标摘要值与计算得到的摘要值相同时,如果判断出A大于B且小于C,则明显说明后续的D与E均不与A相同,无需继续比较A与D、A与E则可快速判断出确定的目标摘要值索引中不存在与计算的摘要值相同的目标摘要值。
相应的,当计算得到的A需要被新增到确定的目标摘要值索引时,则可将A新增到B与C之间,形成的新的摘要值索引中各个摘要值的排序则为:B、A、C、D、E。
为了更加清楚的说明本发明的就似乎方案及优点,下面以非易失性存储介质包括缓存分区a和缓存分区b,缓存分区a和b分别对应的摘要值索引中,各个摘要值按照由小达到的顺序进行排序,且当前采集的一个待处理数据是A为例,如图2所示,具体可以通过如下各个步骤实现对多个待处理数据中的待处理数据A进行去重复处理:
步骤201,在内存中设置缓存区域;以及在非易失性存储介质中设置至少一个存储分区,并根据各个存储分区分别对应的数据链设置各个存储分区分别对应的摘要值索引。
这里,缓存区域具体可以是一张缓存表格,非易失性存储介质中设置有多个存储分区,为了方便描述,这里仅以非易失性存储介质包括存储分区a和存储分区b为例,且以存储分区a对应一个设定长度为4的数据链0001,存储分区b对应一个设定长度为4的数据链0010为例。
这里,各个存储分区所分别对应的摘要值索引可利用当前存储分区所对应的数据链来命名。针对于每一个摘要值索引,在当前摘要值索引所对应的存储分区中未存储存储数据时,摘要值索引为空;在当前摘要值索引所对应的存储分区中存在至少一个存储数据时,当前摘要值索引中则包括当前摘要值索引所对应的存储分区中存储的各个存储数据的摘要值,且前述各个存储数据的摘要值按照由小到大的顺序排列在当前摘要值索引中。
步骤202,在采集到一个待处理数据A时,检测缓存区域中是否存在与A相同的目标缓存数据。
步骤203,当缓存区域中不存在与待处理数据A相同的目标缓存数据时,将待处理数据A作为缓存数据存储至缓存区域。
这里,当缓存区域中不存在已经存储的缓存数据时,缓存数据A可直接存储到缓存区域中。当且仅当缓存区域中不存在与待处理数据A相同的目标缓存数据时,才将待处理数据A作为缓存数据存储至缓存区域;当缓存区域中存在与待处理数据A相同的目标缓存数据时,则释放待处理数据A,无需将待处理数据A作为缓存数据存储到缓存区域中,避免待处理数据A被重复存储至非易失存储介质。
步骤204,检测缓存区域的剩余存储空间是否小于预设阈值,如果是,则执行步骤205;否则,结束当前流程。
步骤205,计算缓存数据A的摘要值。
应当理解的是,本发明实施例的各个步骤中仅针对待处理数据A进行举例说明,针对于缓存区域中的其它数据,均可通过步骤205至步骤209中相同或相似的方法对其进行相应的处理。
本发明实施例中具体以计算出缓存数据A的摘要值是00010010为例。
步骤206,根据计算的摘要值及各个存储分区分别对应的数据链,确定缓存数据A所对应的目标存储分区,以及确定出缓存数据A所对应的目标摘要值索引。
这里,通过计算的摘要值的前4位所形成的二进制数据链0001,确定出目标存储分区是对应二进制数据链为0001的存储分区a;同时,可确定出目标摘要值索引是被命名为0001的摘要值索引。
步骤207,查询确定的目标摘要值索引中是否存在计算的摘要值,如果是,则结束当前流程;否则,执行步骤208。
本发明实施例中,当存储分区a中未存储存储数据时,则被命名为0001的目标摘要值索引中不存在摘要值,可将计算的摘要值00010010直接写入被命名为为0001的目标摘要值索引中。
这里以存储分区a中已经存储了存储数据B、C、D、E为例,且B、C、D、E分别对应的摘要值为:00010011、00010001、00010111、00011111,具体以目标摘要值索引中对存储数据B、C、D、E分别对应的摘要值以由小到大的顺序排列为例,即确定的目标存储区域中存储的摘要值依次为:00010001、00010011、00010111、00011111;在查询目标存储区域中是否存在目标摘要值与计算的摘要值相同时,可利用计算的摘要值与目标摘要值索引中存储的各个摘要值依次比较,比如,可比较出目标摘要值索引中排序为1的摘要值00010001小于计算的摘要值00010010,排序为2的摘要值00010011大于计算的摘要值00010010,由于对应排序在2之后的各个摘要值均大于排序为2的摘要值00010011,因此,无需将计算的摘要值与确定的目标摘要值索引中排序为3、4的摘要值进行比较则可确定出目标摘要值索引中不存在目标摘要值与计算的摘要值相同。
步骤208,将缓存数据A作为存储数据存储至目标存储分区。
步骤209,根据计算的摘要值的大小,将计算的摘要值插入到确定的目标摘要索引中。
这里,则可将计算的摘要值索引插入到确定的目标摘要值索引中,位于对饮排序为1的摘要值和对应排序为2的摘要值之间,如此,形成的对应于存储分区a的摘要值索引中,各个摘要值排序为:00010001、00010010、00010011、00010111、00011111。
步骤210,清除缓存区域中存储的各个缓存数据。
在针对缓存区域中存储各个缓存数据均执行上述205至209中相同或相似的步骤之后,则可清除缓存区域中存储的各个缓存数据,以便利用空闲的缓存区域对后续时间段内采集的各个待处理数据再次进行去重复处理。
通过本发明实施例的上述各个步骤,则可实现对待处理数据A进行去重复处理,避免待处理数据A被重复存储到非易失性存储介质中。
如图3所示,本发明实施例提供了一种对数据进行去重复处理的装置,包括:
设置模块301,用于在内存中设置缓存区域,以及预先在非易失性存储介质中设置指定存储区域;
检测模块302,用于在采集到一个待处理数据时,检测所述缓存区域中是否存在与所述待处理数据相同的目标缓存数据;
缓存处理模块303,用于当所述缓存区域中不存在与所述待处理数据相同的目标缓存数据时,将所述待处理数据作为缓存数据存储至所述缓存区域;
存储处理模块304,用于检测所述缓存区域的剩余存储空间,在所述剩余存储空间小于预设阈值时,将所述缓存区域中存储的各个所述缓存数据分别作为存储数据存储至所述指定存储区域,并清除所述缓存区域中存储的各个所述缓存数据。
如图4所示,本发明一个优选实施例中,所述设置模块301,用于预先在非易失性存储介质中设置包括至少一个存储分区的指定存储区域,其中,每一个所述存储分区分别对应一个设定长度的数据链;
则,所述存储处理模块304,包括:计算单元3041、确定单元3042和存储处理单元3043;
所述计算单元3041,用于针对于所述缓存区域中存储的每一个所述缓存数据,计算所述缓存数据的摘要值;
所述确定单元3042,用于根据所述摘要值及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标存储分区;
所述存储处理单元3043,用于当所述目标存储分区中不存在与所述缓存数据相同的目标存储数据时,将所述缓存数据作为存储数据存储至所述目标存储分区。
如图4所示,本发明一个优选实施例中,所述设置模块301,进一步用于根据各个所述存储分区分别对应的数据链设置各个所述存储分区分别对应的摘要值索引;
则,
所述确定单元3042,进一步用于根据所述摘要值以及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标摘要值索引;
所述存储处理单元3043,用于查询所述目标摘要索引中是否存在所述摘要值;当所述目标摘要索引中不存在所述摘要值时,将所述缓存数据作为存储数据存储至所述目标存储分区,并将所述摘要值新增至所述目标摘要索引。
如图4所示,本发明一个优选实施例中,所述存储处理单元3043,用于根据所述摘要值的大小,将所述摘要值插入到所述目标摘要索引中。
本发明一个实施例中,针对于每一个所述缓存数据,当前所述缓存数据的摘要值的前n个数据位所形成的数据链,与存储当前所述缓存数据的目标存储分区所对应的数据链相同,其中,n为所述设定长度。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明任意一个实施例中提供的方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
所述处理器和所述存储器通过所述总线连接;
所述存储器,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明任意一个实施例中提供的方法。
综上所述,本发明各个实施例至少具有如下有益效果:
1、本发明一实施例中,由于在采集大量的待处理数据时,相同的待处理数据通常在时间上具有一定的连续性,通过在内存中设置缓存区域,以及在非易失性存储介质中设置指定存储区域,在每采集到一个待处理数据后,当且仅当在检测到缓存区域中不存在与该待处理数据相同的目标缓存数据时,才将该待处理数据作为缓存数据存储至缓存区域,从而实现对一个连续的时间段内采集的各个待处理数据进行去重复处理,后续则可在检测到缓存区域的剩余存储空间小于预设阈值时,将缓存区域中存储的各个缓存数据分别作为存储数据存储至指定存储区域,并清除缓存区域中存储的各个缓存数据,以便利用空闲的缓存区域对后续时间段内采集的各个待处理数据再次进行去重复处理。综上可见,本发明实施例提供的技术方案中,无需将各个待处理数据全部存储至非易失性存储介质以对各个待处理数据进行去重复处理,仅需要通过缓存区域对各个不同时间段内分别连续采集的少量待处理数据进行去重复处理则可,可更为快速的实现对大量待处理数据进行去重复处理。
2、本发明一实施例中,通过将对应摘要值前n个数据位相同的各个缓存数据作为存储数据存储到同一个存储分区内,在后续过程中需要对已经存储至非易失性存储介质中进行读取,以确定非易失性存储介质中是否存在与缓存数据相同的目标存储数据时,仅需要根据即将被存储至非易失性存储介质的缓存数据的摘要值,读取所对应数据链与该摘要值相对应的目标存储分区内的各个存储数据则可,无需读取已经被存储至非易失性存储介质的全部存储数据,则可快速确定出非易失性存储介质中是否存在与即将被存储至非易失性存储介质的缓存数据相同的目标存储数据。
3、本发明一实施例中,各个存储分区所分别对应的摘要值索引具体可以由已经被存储至当前存储分区的各个存储数据所分别对应的摘要值构成,当需要确定非易失性存储介质中是否存在与即将被存储至非易失性存储介质的缓存数据相同的目标存储数据时,仅需要计算出即将被存储至非易失存储介质的摘要值,然后根据该摘要值确定出对应的目标摘要值索引,进而通过判断目标摘要值索引中是否存在与该摘要值相同的目标摘要值,来确定非易失性存储介质中是否存在与即将被存储至非易失性存储介质的缓存数据相同的目标存储数据。综上可见,无需读取已经被存储至相应目标存储分区的各个存储数据,可更为快速的确定出非易失性存储介质中是否存在与即将被存储至非易失性存储介质的缓存数据相同的目标存储数据。
4、本发明一实施例中,当且仅当确定出非易失性存储介质中不存在与即将被存储至非易失性存储介质的缓存数据相同的目标存储数据时,才将即将被存储至非易失性存储介质的缓存数据作为存储数据存储至非易失性存储介质中相应的存储分区,确保非易失性存储介质中不会存储相同的存储数据。
5、本发明一实施例中,摘要值索引中的各个摘要值具体可以按照由小到大或由大大小的顺序进行排序,在针对计算的摘要值与确定的摘要值索引中的各个摘要值进行比较时,无需将计算的摘要值与确定的目标摘要值索引中的各个摘要值进行逐一比较则可确定出目标摘要值索引中是否存在与该摘要值相同的目标摘要值。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (8)

1.一种对数据进行去重复处理的方法,其特征在于,包括:在内存中设置缓存区域,以及预先在非易失性存储介质中设置指定存储区域;还包括:
在采集到一个待处理数据时,检测所述缓存区域中是否存在与所述待处理数据相同的目标缓存数据;
当所述缓存区域中不存在与所述待处理数据相同的目标缓存数据时,将所述待处理数据作为缓存数据存储至所述缓存区域;
检测所述缓存区域的剩余存储空间,在所述剩余存储空间小于预设阈值时,将所述缓存区域中存储的各个所述缓存数据分别作为存储数据存储至所述指定存储区域,并清除所述缓存区域中存储的各个所述缓存数据;
所述预先在非易失性存储介质中设置指定存储区域,包括:
预先在非易失性存储介质中设置包括至少一个存储分区的指定存储区域,其中,每一个所述存储分区分别对应一个设定长度的数据链;
则,所述将所述缓存区域中存储的各个所述缓存数据分别作为存储数据存储至所述指定存储区域,包括:
针对于所述缓存区域中存储的每一个所述缓存数据,均执行:
A1:计算所述缓存数据的摘要值;
A2:根据所述摘要值及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标存储分区;
A3:当所述目标存储分区中不存在与所述缓存数据相同的目标存储数据时,将所述缓存数据作为存储数据存储至所述目标存储分区。
2.根据权利要求1所述的方法,其特征在于,
所述预先在非易失性存储介质中设置包括至少一个存储分区的指定存储区域,进一步包括:根据各个所述存储分区分别对应的数据链设置各个所述存储分区分别对应的摘要值索引;
则,所述A2进一步包括:根据所述摘要值以及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标摘要值索引;
所述A3,包括:查询所述目标摘要索引中是否存在所述摘要值;当所述目标摘要索引中不存在所述摘要值时,将所述缓存数据作为存储数据存储至所述目标存储分区,并将所述摘要值新增至所述目标摘要索引。
3.根据权利要求1所述的方法,其特征在于,
所述将所述摘要值新增至所述目标摘要索引,包括:根据所述摘要值的大小,将所述摘要值插入到所述目标摘要索引中。
4.根据权利要求2或3所述的方法,其特征在于,
针对于每一个所述缓存数据,当前所述缓存数据的摘要值的前n个数据位所形成的数据链,与存储当前所述缓存数据的目标存储分区所对应的数据链相同,其中,n为所述设定长度。
5.一种对数据进行去重复处理的装置,其特征在于,包括:
设置模块,用于在内存中设置缓存区域,以及预先在非易失性存储介质中设置指定存储区域;
检测模块,用于在采集到一个待处理数据时,检测所述缓存区域中是否存在与所述待处理数据相同的目标缓存数据;
缓存处理模块,用于当所述缓存区域中不存在与所述待处理数据相同的目标缓存数据时,将所述待处理数据作为缓存数据存储至所述缓存区域;
存储处理模块,用于检测所述缓存区域的剩余存储空间,在所述剩余存储空间小于预设阈值时,将所述缓存区域中存储的各个所述缓存数据分别作为存储数据存储至所述指定存储区域,并清除所述缓存区域中存储的各个所述缓存数据;
所述设置模块,用于预先在非易失性存储介质中设置包括至少一个存储分区的指定存储区域,其中,每一个所述存储分区分别对应一个设定长度的数据链;
则,所述存储处理模块,包括:计算单元、确定单元和存储处理单元;
所述计算单元,用于针对于所述缓存区域中存储的每一个所述缓存数据,计算所述缓存数据的摘要值;
所述确定单元,用于根据所述摘要值及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标存储分区;
所述存储处理单元,用于当所述目标存储分区中不存在与所述缓存数据相同的目标存储数据时,将所述缓存数据作为存储数据存储至所述目标存储分区。
6.根据权利要求5所述的装置,其特征在于,
所述设置模块,进一步用于根据各个所述存储分区分别对应的数据链设置各个所述存储分区分别对应的摘要值索引;
则,
所述确定单元,进一步用于根据所述摘要值以及各个所述存储分区分别对应的数据链,确定所述缓存数据所对应的目标摘要值索引;
所述存储处理单元,用于查询所述目标摘要索引中是否存在所述摘要值;当所述目标摘要索引中不存在所述摘要值时,将所述缓存数据作为存储数据存储至所述目标存储分区,并将所述摘要值新增至所述目标摘要索引。
7.根据权利要求6所述的装置,其特征在于,所述存储处理单元,用于根据所述摘要值的大小,将所述摘要值插入到所述目标摘要索引中。
8.根据权利要求6或7中任一所述的装置,其特征在于,
针对于每一个所述缓存数据,当前所述缓存数据的摘要值的前n个数据位所形成的数据链,与存储当前所述缓存数据的目标存储分区所对应的数据链相同,其中,n为所述设定长度。
CN201710379388.4A 2017-05-25 2017-05-25 一种对数据进行去重复处理的方法及装置 Active CN107193498B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710379388.4A CN107193498B (zh) 2017-05-25 2017-05-25 一种对数据进行去重复处理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710379388.4A CN107193498B (zh) 2017-05-25 2017-05-25 一种对数据进行去重复处理的方法及装置

Publications (2)

Publication Number Publication Date
CN107193498A CN107193498A (zh) 2017-09-22
CN107193498B true CN107193498B (zh) 2020-03-27

Family

ID=59874623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710379388.4A Active CN107193498B (zh) 2017-05-25 2017-05-25 一种对数据进行去重复处理的方法及装置

Country Status (1)

Country Link
CN (1) CN107193498B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108427538B (zh) * 2018-03-15 2021-06-04 深信服科技股份有限公司 全闪存阵列的存储数据压缩方法、装置、及可读存储介质
CN108989907A (zh) * 2018-08-22 2018-12-11 深圳市网心科技有限公司 直播数据流处理方法和系统、电子装置及计算机可读存储介质
CN111444167A (zh) * 2020-03-25 2020-07-24 厦门市美亚柏科信息股份有限公司 一种基于数据摘要去重数据的方法、装置及存储介质
CN111506268B (zh) * 2020-04-17 2023-07-18 北京百度网讯科技有限公司 代码文件存储方法、装置和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473150A (zh) * 2013-08-28 2013-12-25 华中科技大学 一种用于数据去重系统中的碎片重写方法
CN105095106A (zh) * 2014-04-30 2015-11-25 广州市动景计算机科技有限公司 数据块存储方法及装置
CN105117308A (zh) * 2015-09-29 2015-12-02 联想(北京)有限公司 一种数据处理方法、装置和系统
CN105608142A (zh) * 2015-12-17 2016-05-25 浙江大华技术股份有限公司 一种Json数据的存储方法及装置
CN105677258A (zh) * 2016-02-23 2016-06-15 浪潮(北京)电子信息产业有限公司 一种日志数据管理方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473150A (zh) * 2013-08-28 2013-12-25 华中科技大学 一种用于数据去重系统中的碎片重写方法
CN105095106A (zh) * 2014-04-30 2015-11-25 广州市动景计算机科技有限公司 数据块存储方法及装置
CN105117308A (zh) * 2015-09-29 2015-12-02 联想(北京)有限公司 一种数据处理方法、装置和系统
CN105608142A (zh) * 2015-12-17 2016-05-25 浙江大华技术股份有限公司 一种Json数据的存储方法及装置
CN105677258A (zh) * 2016-02-23 2016-06-15 浪潮(北京)电子信息产业有限公司 一种日志数据管理方法及系统

Also Published As

Publication number Publication date
CN107193498A (zh) 2017-09-22

Similar Documents

Publication Publication Date Title
CN107193498B (zh) 一种对数据进行去重复处理的方法及装置
RU2014127817A (ru) Система и способ управления и организации кэша веб-браузера
CN106294206B (zh) 一种缓存数据处理方法以及装置
US20100235485A1 (en) Parallel processing of input data to locate landmarks for chunks
US9977598B2 (en) Electronic device and a method for managing memory space thereof
CN105095287A (zh) Lsm数据合并排序方法和装置
CN107247722B (zh) 一种文件扫描方法、装置及智能终端
WO2017204819A1 (en) Similarity analyses in analytics workflows
CN110688658B (zh) 未知病毒感染追溯方法、装置及系统
CN109144428B (zh) 一种应用于固态硬盘的垃圾回收方法、设备及介质
US9129109B2 (en) Method and apparatus for detecting a malware in files
KR102581849B1 (ko) 해제후 사용 메모리 손상 버그들의 근본 원인 식별 기술들
CN109983445A (zh) 具有不等量值跨距的预提取机制
US20130218901A1 (en) Correlation filter
KR20160085004A (ko) 중복 이미지 파일 검색 방법 및 장치
CN104035822A (zh) 一种低开销的高效内存去冗余方法及系统
CN107632786B (zh) 一种数据重删的管理方法及装置
CN105824934A (zh) 查找分布式etl中慢节点的方法和装置
CN111221468B (zh) 存储块数据删除方法、装置、电子设备及云存储系统
CN109658985B (zh) 一种基因参考序列的去冗余优化方法及系统
CN107665247B (zh) 一种物品召回方法、装置及电子设备
CN108345791B (zh) 处理器安全检测方法、系统及检测装置
CN104699513A (zh) 一种文件处理方法及装置
CN107357523B (zh) 一种数据处理方法及电子设备
JP2020525949A (ja) メディア検索方法及び装置

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200225

Address after: 250100 Ji'nan science and Technology Development Zone, Shandong Branch Road No. 2877

Applicant after: Wave Software Group Co., Ltd.

Address before: 250100, Ji'nan province high tech Zone, Sun Village Branch Road, No. 2877, building, floor, building, on the first floor

Applicant before: Shandong Inspur Business System Co., Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200609

Address after: 250100 Inspur Science Park, No. 1036, Inspur Road, high tech Zone, Jinan City, Shandong Province

Patentee after: Inspur Software Technology Co.,Ltd.

Address before: 250100 Ji'nan science and Technology Development Zone, Shandong Branch Road No. 2877

Patentee before: INSPUR GROUP Co.,Ltd.