买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于数据表的数据淘汰方法及装置_北京奇虎科技有限公司_201611248589.2 

申请/专利权人:北京奇虎科技有限公司

申请日:2016-12-29

公开(公告)日:2020-10-16

公开(公告)号:CN106681837B

主分类号:G06F9/50(20060101)

分类号:G06F9/50(20060101);G06F9/48(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.10.16#授权;2017.06.09#实质审查的生效;2017.05.17#公开

摘要:本发明公开了一种基于数据表的数据淘汰方法及装置,至少能够解决现有技术中在对过期数据进行淘汰时,由于在后台设置了专门的淘汰线程进而增加了后台运行负载,使后台运行速度变慢的技术问题。该方法包括:在执行数据一致性检测时遍历各个数据表中的数据,以检测各个数据表中的数据是否一致;在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰;对该数据表中需要淘汰的数据进行淘汰。

主权项:1.一种基于数据表的数据淘汰方法,包括:在执行数据一致性检测时遍历各个数据表中的数据,以检测所述各个数据表中的数据是否一致;在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰;对该数据表中需要淘汰的数据进行淘汰;其中,所述方法执行之前,进一步包括步骤:预先设置并存储各个数据表对应的数据淘汰规则;其中,所述数据淘汰规则包括以下中的至少一个:基于数据的温度属性进行淘汰的规则、以及基于数据的过期时间进行淘汰的规则;其中,所述预先设置并存储各个数据表对应的数据淘汰规则的步骤之后,进一步包括步骤:按照所述数据淘汰规则将全部数据表划分为多个数据表分组,分别为每个数据表分组创建对应的线程池,由各个线程池并行执行后续步骤。

全文数据:基于数据表的数据淘汰方法及装置技术领域[0001] 本发明涉及通信技术领域,具体涉及一种基于数据表的数据淘汰方法及装置。背景技术[0002]目前,后台系统在淘汰过期的数据时,都是在后台设置一个专门针对硬盘中过期数据的淘汰线程,通过淘汰线程来扫描并删除硬盘中需要淘汰的过期数据。[0003] 但是,发明人在实现本发明的过程中发现,现有技术中的上述方式至少存在下述缺陷:由于硬盘中存储的数据容量比较大,因此设置专门的淘汰线程无疑会增加后台运行的负载,使后台中相关线程的处理速度减慢,由此降低了后台对数据的处理效率,影响后台的运行速度。发明内容[0004] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于数据表的数据淘汰方法及装置。[0005] 根据本发明的一个方面,提供了一种基于数据表的数据淘汰方法,包括:在执行数据一致性检测时遍历各个数据表中的数据,以检测所述各个数据表中的数据是否一致;在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰;对该数据表中需要淘汰的数据进行淘汰。[0006]可选地,所述方法执行之前,进一步包括步骤:预先根据各个数据表的数据淘汰周期设置所述数据一致性检测的执行周期;和或,在所述方法执行过程中,进一步包括步骤:获取各个数据表的数据淘汰周期,根据获取结果调整所述数据一致性检测的执行周期。[0007]可选地,所述方法执行之前,进一步包括步骤:预先设置并存储各个数据表对应的数据淘汰规则;其中,所述数据淘汰规则包括以下中的至少一个:基于数据的温度属性进行淘汰的规则、以及基于数据的过期时间进行淘汰的规则。[0008] 可选地,所述预先设置并存储各个数据表对应的数据淘汰规则的步骤之后,进一步包括步骤:按照所述数据淘汰规则将全部数据表划分为多个数据表分组,分别为每个数据表分组创建对应的线程池,由各个线程池并行执行后续步骤。[0009]可选地,所述基于数据表的数据淘汰方法进一步包括:为各个线程池分别设置对应的权重值,根据各个线程池的权重值设置各个线程池内包含的线程的数量;其中,线程池的权重值越大,线程池内包含的线程的数量越多;线程池的权重值越小,线程池内包含的线程的数量越少。[0010]可选地,所述检测所述各个数据表中的数据是否一致的步骤具体包括:提取各个数据表中键值相同的数据,计算所述键值相同的数据对应的数据校验值,根据计算结果确定各个数据是否一致。[0011] 根据本发明的另一方面,提供了一种基于数据表的数据淘汰方装置,包括:检测模块,适于在执行数据一致性检测时遍历各个数据表中的数据,以检测所述各个数据表中的数据是否一致;确定模块,适于在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰;淘汰模块,适于对该数据表中需要淘汰的数据进行淘汰。[0012]可选地,所述装置进一步包括:第一预处理模块,适于预先根据各个数据表的数据淘汰周期设置所述数据一致性检测的执行周期;调整模块,适于获取各个数据表的数据淘汰周期,根据获取结果调整所述数据一致性检测的执行周期。[0013]可选地,所述装置进一步包括:第二预处理模块,适于预先设置并存储各个数据表对应的数据淘汰规则;其中,所述数据淘汰规则包括以下中的至少一个:基于数据的温度属性进行淘汰的规则、以及基于数据的过期时间进行淘汰的规则。[0014]可选地,所述装置进一步包括:划分创建模块,适于按照所述数据淘汰规则将全部数据表划分为多个数据表分组,分别为每个数据表分组创建对应的线程池,由各个线程池并行执行后续步骤。[0015]可选地,所述装置进一步包括:设置模块,适于为各个线程池分别设置对应的权重值,根据各个线程池的权重值设置各个线程池内包含的线程的数量;其中,线程池的权重值越大,线程池内包含的线程的数量越多;线程池的权重值越小,线程池内包含的线程的数量越少。[0016]可选地,所述检测所述各个数据表中的数据是否一致的步骤具体包括:提取各个数据表中键值相同的数据,计算所述键值相同的数据对应的数据校验值,根据计算结果确定各个数据是否一致。[0017] 在本发明提供的一种基于数据表的数据淘汰方法及装置中,首先在执行数据一致性检测时遍历各个数据表中的数据,以检测所述各个数据表中的数据是否一致;然后在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰;最后对该数据表中需要淘汰的数据进行淘汰。由此可见,本发明解决了在对过期数据进行淘汰时,由于在后台设置了专门的淘汰线程进而增加了集群负载,进而使后台运行速度变慢的问题。本发明在很大程度上减轻了集群的负载,提升了后台的运行效率。[0018]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明[0019] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:[0020]图1示出了本发明实施例一提供的基于数据表的数据淘汰方法流程图;[0021]图2示出了本发明实施例二提供的基于数据表的数据淘汰方法流程图;[0022]图3示出了本发明实施例三提供的基于数据表的数据淘汰装置的结构框图。具体实施方式[0023] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。[0024] 本发明实施例提供了一种基于数据表的数据淘汰方法及装置,至少能够解决现有技术中在对过期数据进行淘汰时,由于在后台设置了专门的淘汰线程进而增加了后台运行负载,使后台运行速度变慢的技术问题。[0025] 实施例一[0026]图1示出了本发明实施例一提供的基于数据表的数据淘汰方法流程图。如图1所示,该方法包括以下步骤:[0027] 步骤SI10:在执行数据一致性检测时遍历各个数据表中的数据,以检测各个数据表中的数据是否一致。[0028]具体地,在将数据存储即写入到对应的数据表中时,由于数据会被复制为多份并且每一份数据都会被分为多个数据片进行分片存储,因此不同的数据表中会对应存储内容相同的数据分片。一致性检测是指:为了严格确保各个数据表中存储的数据分片内容的准确性,降低在各个数据表中写入数据时的出错概率,对各个数据表中存储的数据对应设置一个定期或者不定期的遍历过程,在此遍历过程中,会执行对数据表中存储的相同内容数据的校验,以此来检测各个数据表中对应的数据是否一致,实现确保各个数据表中存储的数据分片内容的准确性的目的。其中,在进行上述遍历过程时,其遍历过程可以多线程并行执行,即可以通过一个线程来校验数据表中的多个数据,并同时通过多个线程同时工作来校验数据表中的多个数据,以此来提高校验过程的效率。[0029] 步骤S120:在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰。[0030] 其中,数据淘汰规则为本领域技术人员根据实际情况针对数据表中的每条数据设置的淘汰规则,具体地,在设置数据淘汰规则时,其设置方式是多样的,比如可以根据各个数据表中数据的时间属性、数据的温度属性相关属性来设置,或者也可以根据数据表中数据的其他特性来设置,在这里,数据淘汰规则的具体设置方式由本领域技术人员根据实际情况而定,只要能识别出对应的需要淘汰的数据,本发明对数据淘汰规则的具体设置方式不作限制。在遍历过程中,在根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰时,具体可以为判断数据表中的数据的对应属性是否满足数据淘汰规则,若判断结果为是,则确定该数据需要淘汰,并进一步执行步骤S130;否则,取消进一步操作。[0031] 步骤S130:对该数据表中需要淘汰的数据进行淘汰。[0032]具体地,需要淘汰的数据为步骤S120中确定的需要淘汰的数据,在对需要淘汰的数据进行淘汰时,根据步骤S120中的确定结果将数据表中对应的需要淘汰的数据进行删除操作,以实现对该数据表中需要淘汰的数据进行淘汰的目的。在此过程中,由于淘汰数据的过程是在执行数据一致性检测时的遍历过程中进行的,因此,可以直接由负责数据一致性检测的线程完成淘汰操作,无需额外开设专门的淘汰线程,因而在很大程度上减轻了因开设专门的淘汰线程而给后台运行带来的运行负载过大的问题,提升了后台的运行效率。[0033]由此可见,在本发明提供的一种基于数据表的数据淘汰方法中,首先在执行数据一致性检测时遍历各个数据表中的数据,以检测所述各个数据表中的数据是否一致;然后在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰;最后对该数据表中需要淘汰的数据进行淘汰。因此,本发明解决了在对过期数据进行淘汰时,由于在后台设置了专门的淘汰线程进而增加了后台运行负载,进而使后台运行速度变慢的问题。本发明在很大程度上减轻了后台运行的负载,提升了后台运行的效率。[0034] 实施例二[0035]图2示出了本发明实施例二提供的基于数据表的数据淘汰方法流程图。如图2所示,该方法包括以下步骤:[0036] 步骤S210:预先根据各个数据表的数据淘汰周期设置数据一致性检测的执行周期。[0037] 具体地,数据淘汰周期具体为本领域技术人员根据各个数据表中存储数据的特点,针对各个数据表设置的对应的数据淘汰周期。例如,若数据表I中存储的数据的信息时效期为4h,则针对数据表I的信息时效性将数据表I的数据淘汰周期设置为4h。数据一致性检测的执行周期为在检测数据的一致性时,对数据表中各个数据进行遍历过程的周期。例如,数据的一致性检测的执行周期也可以设置为4h,则默认每4h对各个数据表中的数据执行一次遍历过程,并在此过程中对数据进行一致性检测。在本发明中,为了使数据的淘汰过程与数据的一致性检测过程同时进行,可以根据各个数据表的数据淘汰周期设置数据一致性检测的执行周期。其中,在设置数据一致性检测的执行周期时,具体为在遍历各个数据表中的数据之前,预先根据各个数据表的数据淘汰周期设置数据一致性检测的执行周期。例如,可以根据各个数据表的数据淘汰周期,将数据一致性检测的执行周期与上述各个数据表的数据淘汰周期设置为一致。[0038]另外,考虑到各个数据表是动态变化的,因此,各个数据表对应的数据淘汰周期也可能是动态变化的,因此,为了使数据一致性检测的执行周期能够灵活调整,在本方法的执行过程中,还可以进一步包括以下步骤:获取各个数据表的数据淘汰周期,根据获取结果调整数据一致性检测的执行周期。本发明并不限定调整步骤的执行时机,只要是在数据一致性检测的执行周期设置好之后均可以进行调整。具体地,预先获取各个数据表的数据淘汰周期,然后根据获取结果调整数据一致性检测的执行周期。其中,在获取各个数据表的数据淘汰周期时,可以设置一个对应的获取周期,例如4h次,或者是获取条件,例如,当硬盘中存储的数据超过一定的百分比。当到达上述获取周期的时间或者满足上述获取条件时,对应获取各个数据表的数据淘汰周期。其中,当根据数据淘汰周期确定的下一次执行数据淘汰的时间点早于根据数据一致性检测的执行周期确定的下一次执行数据一致性检测的时间点时即:数据淘汰周期小于数据一致性检测周期,可以缩短数据一致性检测的执行周期;当根据数据淘汰周期确定的下一次执行数据淘汰的时间点晚于根据数据一致性检测的执行周期确定的下一次执行数据一致性检测的时间点时即:数据淘汰周期大于数据一致性检测周期,可以增大数据一致性检测的执行周期。从而尽可能地使根据数据淘汰周期确定的下一次执行数据淘汰的时间点与根据数据一致性检测的执行周期确定的下一次执行数据一致性检测的时间点一致。上述调整过程能够针对实际情况对数据一致性检测的执行周期进行灵活调整,增加了数据一致性检测的执行周期的灵活性和时效性。[0039] 步骤S220:预先设置并存储各个数据表对应的数据淘汰规则,其中,数据淘汰规则包括以下中的至少一个:基于数据的温度属性进行淘汰的规则、以及基于数据的过期时间进行淘汰的规则。[0040] 具体地,数据淘汰规则为本领域技术人员根据实际情况针对数据表中的存储数据设置的淘汰规则。其中,上述数据淘汰规则包括以下中的至少一个:基于数据的温度属性进行淘汰的规则、以及基于数据的过期时间进行淘汰的规则。[0041]具体实施中,在设置基于数据的温度属性的淘汰规则时,具体可以为:根据实际情况针对数据表中的各个数据设置一个或多个对应的温度属性阈值,然后将数据表中各个数据的温度属性值与上述设置的对应的温度属性阈值进行比较,当数据的温度属性值小于上述设置的温度属性阈值时,判断该数据为需要淘汰的数据;否则,取消进一步操作。另外,在确定各个数据的温度属性值时,可以根据各个数据在数据表中的写入总次数以及预设的温度属性计算规则来计算各个数据的温度属性值。具体地,在一种实现方式中,预设的温度属性计算规则包括:将每个数据在数据表中的写入总次数作为该数据的温度属性值。该种方式简便易行,能够根据数据的写入次数确定数据的重要程度。在另一种实现方式中,预设的温度属性计算规则包括:预先将数据表中存储的数据根据写入时间划分为多个数据区间,为各个数据区间分别设置对应的区间权重值;针对每个数据,根据该数据各次写入时所处的数据区间确定该数据的温度属性值。该种方式便于根据数据的写入时间确定数据的温度属性,尤其适用于根据写入时间段确定数据重要性的场景中。[0042] 在设置基于数据的过期时间的淘汰的规则时,具体可以为:在存储数据表中的各个数据的信息时,进一步在存储信息中加入各个数据的时间元信息,其中,上述时间元信息包括各个数据的写入时间以及各个数据的有效时间,然后根据上述时间元信息计算各个数据的过期时间写入时间+有效时间,进一步判断当前系统中的时间是否已经超过上述过期时间,若判断结果为是,则确定对应的数据为需要淘汰的数据;否则,取消进一步操作。在这里,上述时间元信息并不是固定为上述的写入时间以及有效时间,还可以只包括写入时间或者只包含有效时间,或者还可以包含其他的时间信息,只要能得到各个数据的过期时间,本发明对时间元信息中包含的时间信息不作限制。另外,除了针对每个数据分别设置对应的有效时间外,也可以直接针对数据表中的全部数据统一设置对应的过期时间,例如,可以设置表I中的所有数据均在写入后3小时过期,或设置表I中的所有数据均在预设的时间点过期。并且,在设置数据淘汰规则时,其设置方式包括但不限于上述提到的两种设置方式,本领域技术人员还可以根据实际情况进一步针对数据表中各个数据的其他属性来设置各个数据表对应的数据淘汰规则,具体实施中,本发明对各个数据表对应的数据淘汰规则的具体设置方式不作限制。[0043] 步骤S230:按照数据淘汰规则将全部数据表划分为多个数据表分组,分别为每个数据表分组创建对应的线程池,由各个线程池并行执行后续步骤。[0044]具体地,预设的数据淘汰规则为多个,在按照数据淘汰规则将全部数据表划分为多个数据表分组时,可以按照每个数据表对应的数据淘汰规则将每个数据表划分在对应的数据表分组中。即:所划分的每个数据表分组中包含的数据表都对应同一个数据淘汰规则。在完成上述步骤之后,分别为每个数据表分组创建对应的线程池,通过上述创建的各个线程池来对每个数据表分组中包含的数据表进行进一步的处理。其中,在创建上述线程池时,进一步为各个线程池设置对应的权重值,根据各个线程池的权重值设置各个线程池内包含的线程的数量;其中,线程池的权重值越大,线程池内包含的线程的数量越多;线程池的权重值越小,线程池内包含的线程的数量越少。由此可见,针对数据量较大和或重要性较高的数据表分组,对应创建权重较大的线程池,针对数据量较小和或重要性较低的数据表分组,对应创建权重较小的线程池,以此来提高针对每个数据表分组中数据的处理效率。[0045] 步骤S240:根据步骤S210中设置的数据一致性检测的执行周期执行数据一致性检测操作,在检测时遍历各个数据表中的数据,以检测各个数据表中的数据是否一致。[0046] 其中,在检测各个数据表中的数据是否一致时,可以提取各个数据表中键值相同的数据,计算键值相同的数据对应的数据校验值,根据计算结果确定各个数据是否一致。[0047]具体地,在将数据存储即写入到对应的数据表中时,由于数据会被复制为多份并且每一份数据都会被分为多个数据片进行分片存储,因此不同的数据表中会对应存储内容相同的数据分片。在本步骤中,提取各个数据表中键值相同的数据,即上述存储内容相同的数据,然后根据预先设置的计算规则计算上述提取的键值相同的数据对应的数据校验值,并根据计算结果确定上述提取的各个数据表中键值相同的数据是否一致。具体实施中,预先设置的计算规则可以为预设的MD5校验码,通过上述MD5校验码计算各个数据表中键值相同的数据的MD5值,并根据计算所得的MD5值确定各个数据是否一致。其中,在进行上述步骤时,其过程可以是通过多线程并行执行,即可以通过一个线程来同时校验数据表中的多个数据,并同时通过多个线程同时工作来校验数据表中的多个数据,以此来提高校验过程的效率。[0048] 步骤S250:在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰。[0049] 在本步骤中,数据淘汰规则为步骤S220中设置的数据淘汰规则。具体地,在遍历一个数据表时,根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰,若该数据表中的数据满足数据淘汰规则,则确定该数据需要淘汰,并进一步执行步骤S260;否则,取消进一步操作。[0050] 步骤S260:对该数据表中需要淘汰的数据进行淘汰。[0051]具体地,根据步骤S250中的确定结果,将确定为需要淘汰的数据进行删除操作,以实现对该数据表中需要淘汰的数据进行淘汰的目的。在此过程中,由于淘汰数据的过程是在执行数据一致性检测时的遍历过程进行的,因此在很大程度上减轻了因此开设专门的淘汰线程给后台的运行带来的运行负载过大的问题,提升了后台的运行效率。[0052]由此可见,在本发明提供的一种基于数据表的数据淘汰方法中,首先预先根据各个数据表的数据淘汰周期设置数据一致性检测的执行周期;和或,获取各个数据表的数据淘汰周期,根据获取结果调整数据一致性检测的执行周期,并预先设置并存储各个数据表对应的数据淘汰规则;然后按照数据淘汰规则将全部数据表划分为多个数据表分组,分别为每个数据表分组创建对应的线程池,并由各个线程池执行后续步骤。其中,上述后续步骤包括首先提取各个数据表中键值相同的数据,计算键值相同的数据对应的数据校验值,根据计算结果确定各个数据是否一致;然后在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰,最后对该数据表中需要淘汰的数据进行淘汰。因此,本发明解决了在对过期数据进行淘汰时,由于在后台设置了专门的淘汰线程进而增加了后台运行负载,进而使后台运行速度变慢的问题。本发明在很大程度上减轻了后台运行的负载,提升了后台的运行效率,同时也进一步提高了存储数据的准确性。[0053]另外,通过对数据表进行分组以及设置多个不同权重的线程池的方式,不仅实现了并行处理的效果,还使用户能够根据实际需求优先淘汰非重要的数据,使淘汰方案更为灵活。另外,各个分组的数据表的一致性检测周期可以相同也可以不同即:各个线程池可以分别按照不同的执行周期进行一致性检测,例如,可以根据各个分组的数据表的重要程度、更新频率和或数据类型等多种因素,分别为各个分组的数据表设置与该分组相对应的数据淘汰周期和或一致性检测周期。[0054] 实施例三[0055]图3示出了本发明实施例三提供的基于数据表的数据淘汰装置的结构框图。如图3所示,该装置包括:检测模块31、确定模块32、淘汰模块33、第一预处理模块34、调整模块35、第二预处理模块36、划分创建模块37以及设置模块38。[0056] 检测模块31适于在执行数据一致性检测时遍历各个数据表中的数据,以检测所述各个数据表中的数据是否一致。[0057] 其中,在检测各个数据表中的数据是否一致时,检测模块31可以提取各个数据表中键值相同的数据,计算键值相同的数据对应的数据校验值,根据计算结果确定各个数据是否一致。具体地,在将数据存储即写入到对应的数据表中时,由于数据会被复制为多份并且每一份数据都会被分为多个数据片进行分片存储,因此不同的数据表中会对应存储内容相同的数据分片。在检测模块31提取各个数据表中键值相同的数据,即上述存储内容相同的数据之后,根据预先设置的计算规则计算上述提取的键值相同的数据对应的数据校验值,并根据计算结果确定上述提取的各个数据表中键值相同的数据是否一致。具体实施中,预先设置的计算规则可以为预设的MD5校验码,通过上述MD5校验码计算各个数据表中键值相同的数据的MD5值,并根据计算所得的MD5值确定各个数据是否一致。其中,在进行上述步骤时,其过程可以是通过多线程并行执行,即可以通过一个线程来校验数据表中的多个数据,并同时通过多个线程同时工作来校验数据表中的多个数据,以此来提高校验过程的效率。[0058] 确定模块32适于在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰。[0059]具体地,数据淘汰规则为第二预处理模块36中设置的数据淘汰规则。具体地,确定模块32在遍历一个数据表时,根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰,若该数据表中的数据满足数据淘汰规则,则确定该数据需要淘汰,并将上述确定信息发送给淘汰模块33;否则,取消进一步操作。[0060]淘汰模块33适于对该数据表中需要淘汰的数据进行淘汰。[0061]具体地,淘汰模块33在接收到确定模块32发送的确定消息之后,将确定为需要淘汰的数据进行删除操作,以实现对该数据表中需要淘汰的数据进行淘汰的目的。在此过程中,由于淘汰数据的过程是在执行数据一致性检测时的遍历过程进行的,因此在很大程度上减轻了因此开设专门的淘汰线程给后台的运行带来的运行负载过大的问题,提升了后台的运行效率。[0062] 第一预处理模块34适于预先根据各个数据表的数据淘汰周期设置所述数据一致性检测的执行周期。[0063] 具体地,数据淘汰周期具体为本领域技术人员根据各个数据表中存储数据的特点,针对各个数据表设置的对应的数据淘汰周期。数据一致性检测的执行周期为在检测数据的一致性时,对数据表中各个数据进行遍历过程的周期。在本发明中,为了使数据的淘汰过程与数据的一致性检测过程同时进行,可以通过第一预处理模块34根据各个数据表的数据淘汰周期设置数据一致性检测的执行周期。其中,第一预处理模块34在设置数据一致性检测的执行周期时,具体为在遍历各个数据表中的数据之前,预先根据各个数据表的数据淘汰周期设置数据一致性检测的执行周期。例如,可以根据各个数据表的数据淘汰周期,将数据一致性检测的执行周期与上述各个数据表的数据淘汰周期设置为一致。[0064]调整模块35适于获取各个数据表的数据淘汰周期,根据获取结果调整所述数据一致性检测的执行周期。[0065]具体地,由于各个数据表是动态变化的,因此,各个数据表对应的数据淘汰周期也可能是动态变化的,因此,为了使第一预处理模块34设置的数据一致性检测的执行周期能够灵活调整,在遍历各个数据表中的数据时,还可以通过调整模块35进一步针对上述数据一致性检测的执行周期进行调整,即:通过调整模块35预先获取各个数据表的数据淘汰周期,然后根据获取结果调整数据一致性检测的执行周期。其中,调整模块35在获取各个数据表的数据淘汰周期时,可以设置一个对应的获取周期,例如4h次,或者是获取条件,例如,当硬盘中存储的数据超过一定的百分比。当到达上述获取周期的时间或者满足上述获取条件时,调整模块35对应获取各个数据表的数据淘汰周期。其中,当调整模块35根据数据淘汰周期确定的下一次执行数据淘汰的时间点早于根据数据一致性检测的执行周期确定的下一次执行数据一致性检测的时间点时即:数据淘汰周期小于数据一致性检测周期,可以缩短数据一致性检测的执行周期;当根据数据淘汰周期确定的下一次执行数据淘汰的时间点晚于根据数据一致性检测的执行周期确定的下一次执行数据一致性检测的时间点时即:数据淘汰周期大于数据一致性检测周期,可以增大数据一致性检测的执行周期。从而尽可能地使根据数据淘汰周期确定的下一次执行数据淘汰的时间点与根据数据一致性检测的执行周期确定的下一次执行数据一致性检测的时间点一致。上述调整过程能够针对实际情况对数据一致性检测的执行周期进行灵活调整,增加了数据一致性检测的执行周期的灵活性和时效性。[0066] 第二预处理模块36适于预先设置并存储各个数据表对应的数据淘汰规则。[0067] 具体地,数据淘汰规则为本领域技术人员根据实际情况针对数据表中的存储数据设置的淘汰规则。其中,上述数据淘汰规则包括以下中的至少一个:基于数据的温度属性进行淘汰的规则、以及基于数据的过期时间进行淘汰的规则。具体实施中,第二预处理模块36在设置基于数据的温度属性的淘汰规则时,具体可以为:根据实际情况针对数据表中的各个数据设置一个或多个对应的温度属性阈值,然后将数据表中各个数据的温度属性值与上述设置的对应的温度属性阈值进行比较,当数据的温度属性值小于上述设置的温度属性阈值时,判断该数据为需要淘汰的数据;否则,取消进一步操作。另外,在确定各个数据的温度属性值时,可以根据各个数据在数据表中的写入总次数以及预设的温度属性计算规则来计算各个数据的温度属性值。具体地,在一种实现方式中,预设的温度属性计算规则包括:将每个数据在数据表中的写入总次数作为该数据的温度属性值。该种方式简便易行,能够根据数据的写入次数确定数据的重要程度。在另一种实现方式中,预设的温度属性计算规则包括:预先将数据表中存储的数据根据写入时间划分为多个数据区间,为各个数据区间分别设置对应的区间权重值;针对每个数据,根据该数据各次写入时所处的数据区间确定该数据的温度属性值。该种方式便于根据数据的写入时间确定数据的温度属性,尤其适用于根据写入时间段确定数据重要性的场景中。第二预处理模块36在设置基于数据的过期时间的淘汰的规则时,具体可以为:在存储数据表中的各个数据的信息时,进一步在存储信息中加入各个数据的时间元信息,其中,上述时间元信息包括各个数据的写入时间以及各个数据的有效时间,然后根据上述时间元信息计算各个数据的过期时间写入时间+有效时间,进一步判断当前系统中的时间是否已经超过上述过期时间,若判断结果为是,则确定对应的数据为需要淘汰的数据;否则,取消进一步操作。在这里,上述时间元信息并不是固定为上述的写入时间以及有效时间,还可以只包括写入时间或者只包含有效时间,或者还可以包含其他的时间信息,只要能得到各个数据的过期时间,本发明对时间元信息中包含的时间信息不作限制。另外,除了针对每个数据分别设置对应的有效时间外,也可以直接针对数据表中的全部数据统一设置对应的过期时间,例如,可以设置表I中的所有数据均在写入后3小时过期,或设置表I中的所有数据均在预设的时间点过期。并且,第二预处理模块36在设置数据淘汰规则时,其设置方式包括但不限于上述提到的两种设置方式,本领域技术人员还可以根据实际情况进一步针对数据表中各个数据的其他属性来设置各个数据表对应的数据淘汰规则,具体实施中,本发明对各个数据表对应的数据淘汰规则的具体设置方式不作限制。[0068] 划分创建模块37适于按照数据淘汰规则将全部数据表划分为多个数据表分组,分别为每个数据表分组创建对应的线程池,由各个线程池并行执行后续步骤。[0069]具体地,预设的数据淘汰规则为多个,划分创建模块37在按照数据淘汰规则将全部数据表划分为多个数据表分组时,可以按照每个数据表对应的数据淘汰规则将每个数据表划分在对应的数据表分组中。即:划分创建模块37所划分的每个数据表分组中包含的数据表都对应同一个数据淘汰规则。在完成上述步骤之后,划分创建模块37分别为每个数据表分组创建对应的线程池,通过上述创建的各个线程池来对每个数据表分组中包含的数据表进行进一步的处理。[0070] 设置模块38适于为各个线程池分别设置对应的权重值,根据各个线程池的权重值设置各个线程池内包含的线程的数量。[0071] 具体地,在创建上述线程池时,通过设置模块38进一步为各个线程池设置对应的权重值,根据各个线程池的权重值设置各个线程池内包含的线程的数量。其中,设置模块38设置的线程池的权重值越大,线程池内包含的线程的数量越多;相对地,设置模块38设置线程池的权重值越小,线程池内包含的线程的数量越少。由此可见,针对数据量较大和或重要性较高的数据表分组,对应创建权重较大的线程池,针对数据量较小和或重要性较低的数据表分组,对应创建权重较小的线程池,以此来提高针对每个数据表分组中数据的处理效率。[0072] 上述各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。另外,本领域技术人员可对上述的各个模块进行灵活地合并或删减,例如,上述的第一预处理模块34、调整模块35、第二预处理模块36、划分创建模块37以及设置模块38并不是必须的,本领域技术人员可根据需要设置。本发明对模块的具体数量和划分方式不做限定。[0073]由此可见,在本发明提供的一种基于数据表的数据淘汰装置中,首先通过第一预处理模块34预先根据各个数据表的数据淘汰周期设置数据一致性检测的执行周期;并通过调整模块35获取各个数据表的数据淘汰周期,根据获取结果调整数据一致性检测的执行周期;然后通过第二预处理模块36预先设置并存储各个数据表对应的数据淘汰规则;并通过划分创建模块37按照数据淘汰规则将全部数据表划分为多个数据表分组,分别为每个数据表分组创建对应的线程池,并由各个线程池执行后续步骤。其中,进一步通过设置模块38为上述创建的各个线程池分别设置对应的权重值,并根据各个线程池的权重值设置各个线程池内包含的线程的数量上述后续步骤。在此之后,通过检测模块31提取各个数据表中键值相同的数据,计算键值相同的数据对应的数据校验值,根据计算结果确定各个数据是否一致;然后通过确定模块32在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰,最后通过淘汰模块33对该数据表中需要淘汰的数据进行淘汰。因此,本发明解决了在对过期数据进行淘汰时,由于在后台设置了专门的淘汰线程进而增加了后台运行负载,进而使后台运行速度变慢的问题。本发明在很大程度上减轻了后台运行的负载,提升了后台的运行效率,同时也进一步提高了存储数据的准确性。[0074] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。[0075] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。[0076] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。[0077] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书包括伴随的权利要求、摘要和附图中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书包括伴随的权利要求、摘要和附图中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。[0078] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。[0079] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器DSP来实现根据本发明实施例的基于数据表的数据淘汰装置设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序例如,计算机程序和计算机程序产品。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。[0080] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。[0081] 本发明公开了:A1、一种基于数据表的数据淘汰方法,包括:[0082] 在执行数据一致性检测时遍历各个数据表中的数据,以检测所述各个数据表中的数据是否一致;[0083] 在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰;[0084] 对该数据表中需要淘汰的数据进行淘汰。[0085] A2、根据Al所述的方法,其中,所述方法执行之前,进一步包括步骤:预先根据各个数据表的数据淘汰周期设置所述数据一致性检测的执行周期;和或,[0086] 在所述方法执行过程中,进一步包括步骤:获取各个数据表的数据淘汰周期,根据获取结果调整所述数据一致性检测的执行周期。[0087] A3、根据Al或A2所述的方法,其中,所述方法执行之前,进一步包括步骤:预先设置并存储各个数据表对应的数据淘汰规则;其中,所述数据淘汰规则包括以下中的至少一个:基于数据的温度属性进行淘汰的规则、以及基于数据的过期时间进行淘汰的规则。[0088] A4、根据A3所述的方法,其中,所述预先设置并存储各个数据表对应的数据淘汰规则的步骤之后,进一步包括步骤:按照所述数据淘汰规则将全部数据表划分为多个数据表分组,分别为每个数据表分组创建对应的线程池,由各个线程池并行执行后续步骤。[0089] A5、根据A4所述的方法,其中,进一步包括:为各个线程池分别设置对应的权重值,根据各个线程池的权重值设置各个线程池内包含的线程的数量;其中,线程池的权重值越大,线程池内包含的线程的数量越多;线程池的权重值越小,线程池内包含的线程的数量越少。[0090] A6、根据A1-A5任一所述的方法,其中,所述检测所述各个数据表中的数据是否一致的步骤具体包括:[0091] 提取各个数据表中键值相同的数据,计算所述键值相同的数据对应的数据校验值,根据计算结果确定各个数据是否一致。[0092] 本发明还公开了:B7、一种基于数据表的数据淘汰装置,包括:[0093] 检测模块,适于在执行数据一致性检测时遍历各个数据表中的数据,以检测所述各个数据表中的数据是否一致;[0094] 确定模块,适于在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰;[0095]淘汰模块,适于对该数据表中需要淘汰的数据进行淘汰。[0096] B8、根据B7所述的装置,其中,所述装置进一步包括:第一预处理模块,适于预先根据各个数据表的数据淘汰周期设置所述数据一致性检测的执行周期;[0097]调整模块,适于获取各个数据表的数据淘汰周期,根据获取结果调整所述数据一致性检测的执行周期。[0098] B9、根据B7或B8所述的装置,其中,所述装置进一步包括:第二预处理模块,适于预先设置并存储各个数据表对应的数据淘汰规则;其中,所述数据淘汰规则包括以下中的至少一个:基于数据的温度属性进行淘汰的规则、以及基于数据的过期时间进行淘汰的规则。[0099] B10、根据B9所述的装置,其中,所述装置进一步包括:划分创建模块,适于按照所述数据淘汰规则将全部数据表划分为多个数据表分组,分别为每个数据表分组创建对应的线程池,由各个线程池并行执行后续步骤。[0100] B11、根据BlO所述的装置,其中,所述装置进一步包括:设置模块,适于为各个线程池分别设置对应的权重值,根据各个线程池的权重值设置各个线程池内包含的线程的数量;其中,线程池的权重值越大,线程池内包含的线程的数量越多;线程池的权重值越小,线程池内包含的线程的数量越少。[0101] B12、根据B7-B11任一所述的装置,其中,所述检测模块具体用于:[0102] 提取各个数据表中键值相同的数据,计算所述键值相同的数据对应的数据校验值,根据计算结果确定各个数据是否一致。

权利要求:1.一种基于数据表的数据淘汰方法,包括:在执行数据一致性检测时遍历各个数据表中的数据,以检测所述各个数据表中的数据是否一致;在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰;对该数据表中需要淘汰的数据进行淘汰。2.根据权利要求1所述的方法,其中,所述方法执行之前,进一步包括步骤:预先根据各个数据表的数据淘汰周期设置所述数据一致性检测的执行周期;和或,在所述方法执行过程中,进一步包括步骤:获取各个数据表的数据淘汰周期,根据获取结果调整所述数据一致性检测的执行周期。3.根据权利要求1或2所述的方法,其中,所述方法执行之前,进一步包括步骤:预先设置并存储各个数据表对应的数据淘汰规则;其中,所述数据淘汰规则包括以下中的至少一个:基于数据的温度属性进行淘汰的规则、以及基于数据的过期时间进行淘汰的规则。4.根据权利要求3所述的方法,其中,所述预先设置并存储各个数据表对应的数据淘汰规则的步骤之后,进一步包括步骤:按照所述数据淘汰规则将全部数据表划分为多个数据表分组,分别为每个数据表分组创建对应的线程池,由各个线程池并行执行后续步骤。5.根据权利要求4所述的方法,其中,进一步包括:为各个线程池分别设置对应的权重值,根据各个线程池的权重值设置各个线程池内包含的线程的数量;其中,线程池的权重值越大,线程池内包含的线程的数量越多;线程池的权重值越小,线程池内包含的线程的数量越少。6.根据权利要求1-5任一所述的方法,其中,所述检测所述各个数据表中的数据是否一致的步骤具体包括:提取各个数据表中键值相同的数据,计算所述键值相同的数据对应的数据校验值,根据计算结果确定各个数据是否一致。7.一种基于数据表的数据淘汰装置,包括:检测模块,适于在执行数据一致性检测时遍历各个数据表中的数据,以检测所述各个数据表中的数据是否一致;确定模块,适于在遍历过程中针对任一个数据表,进一步根据该数据表对应的数据淘汰规则确定该数据表中的各个数据是否需要淘汰;淘汰模块,适于对该数据表中需要淘汰的数据进行淘汰。8.根据权利要求7所述的装置,其中,所述装置进一步包括:第一预处理模块,适于预先根据各个数据表的数据淘汰周期设置所述数据一致性检测的执行周期;调整模块,适于获取各个数据表的数据淘汰周期,根据获取结果调整所述数据一致性检测的执行周期。9.根据权利要求7或8所述的装置,其中,所述装置进一步包括:第二预处理模块,适于预先设置并存储各个数据表对应的数据淘汰规则;其中,所述数据淘汰规则包括以下中的至少一个:基于数据的温度属性进行淘汰的规则、以及基于数据的过期时间进行淘汰的规则。10.根据权利要求9所述的装置,其中,所述装置进一步包括:划分创建模块,适于按照所述数据淘汰规则将全部数据表划分为多个数据表分组,分别为每个数据表分组创建对应的线程池,由各个线程池并行执行后续步骤。

百度查询: 北京奇虎科技有限公司 基于数据表的数据淘汰方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。