CN107451152A - 计算设备、数据缓存和查找的方法及装置 - Google Patents
计算设备、数据缓存和查找的方法及装置 Download PDFInfo
- Publication number
- CN107451152A CN107451152A CN201610377746.3A CN201610377746A CN107451152A CN 107451152 A CN107451152 A CN 107451152A CN 201610377746 A CN201610377746 A CN 201610377746A CN 107451152 A CN107451152 A CN 107451152A
- Authority
- CN
- China
- Prior art keywords
- caching
- data
- sample
- cold
- target data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开一种计算设备、数据缓存和查找的方法及装置,其中计算设备包括三级缓存,用于缓存数据,所述三级缓存包括:运行缓存,位于程序运行堆栈;热缓存,位于内存或内存数据库,用于基于第一触发条件,转存运行缓存中的数据;冷缓存,位于磁盘的数据缓存空间,用于基于第二触发条件,转存热缓存中的数据。本申请可以节约计算机资源。
Description
技术领域
本申请涉及数据存储技术领域,尤其涉及计算设备、数据缓存和查找的方法及装置。
背景技术
缓存是一种保存已有结果,避免重复计算的一种技术,是一种被广泛用于提升系统吞吐量及性能的高效手段。现有技术中的缓存都是事后级别的缓存,即数据处理结果出来后才进行缓存,这在相同数据被大量重复处理时,会导致计算机资源浪费。
发明内容
本申请实施例提供一种计算设备,用以避免相同数据被大量重复处理,节约计算机资源,该计算设备包括三级缓存,用于缓存数据,所述三级缓存包括:
运行缓存,位于程序运行堆栈;
热缓存,位于内存或内存数据库,用于基于第一触发条件,转存运行缓存中的数据;
冷缓存,位于磁盘的数据缓存空间,用于基于第二触发条件,转存热缓存中的数据。
本申请实施例提供一种数据缓存方法,用以避免相同数据被大量重复处理,节约计算机资源,该方法包括:
将待缓存数据保存入运行缓存,其中,所述运行缓存位于程序运行堆栈;
基于第一触发条件,将运行缓存中的数据转存入热缓存,其中,所述热缓存位于内存或内存数据库;
基于第二触发条件,将热缓存中的数据转存入冷缓存,其中,所述冷缓存位于磁盘的数据缓存空间。
本申请实施例还提供一种数据查找方法,用以避免相同数据被大量重复处理,节约计算机资源,该方法用于查找目标数据,该方法包括:
在热缓存和冷缓存中均未查找到目标数据时,在运行缓存中查找所述目标数据;
若未查找到,则获取所述目标数据在目标地址,从所述目标地址获取所述目标数据;
其中,所述运行缓存位于程序运行堆栈,所述热缓存位于内存或内存数据库,所述冷缓存位于磁盘的数据缓存空间。
本申请实施例提供一种数据缓存装置,用以避免相同数据被大量重复处理,节约计算机资源,该装置包括:
运行缓存处理模块,用于将待缓存数据保存入运行缓存,其中,所述运行缓存位于程序运行堆栈;
热缓存处理模块,用于基于第一触发条件,将运行缓存中的数据转存入热缓存,其中,所述热缓存位于内存或内存数据库;
冷缓存处理模块,用于基于第二触发条件,将热缓存中的数据转存入冷缓存,其中,所述冷缓存位于磁盘的数据缓存空间。
本申请实施例还提供一种数据查找装置,用以避免相同数据被大量重复处理,节约计算机资源,该装置用于查找目标数据,该装置包括:
数据查找模块,用于在热缓存和冷缓存中均未查找到目标数据时,在运行缓存中查找所述目标数据;
数据获取模块,用于在未查找到所述目标数据时,获取所述目标数据所在目标地址,从所述目标地址获取所述目标数据;
其中,所述运行缓存位于程序运行堆栈,所述热缓存位于内存或内存数据库,所述冷缓存位于磁盘的数据缓存空间。
本申请实施例中,在运行缓存中保存数据,基于第一触发条件将运行缓存中的数据转存入热缓存,基于第二触发条件将热缓存中的数据转存入冷缓存,以此提供一种三级缓存机制,便于后续查找目标数据时,可以先在热缓存和冷缓存中查找,若找不到再在运行缓存中查找,如果仍然找不到可以获取目标数据所在目标地址,从目标地址获取目标数据,这样能够避免相同数据被大量重复处理,大大节约了计算机资源,提高了处理速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请实施例中三级缓存机制的示意图;
图2为本申请实施例中数据缓存方法的示意图;
图3为本申请实施例中数据查找方法的示意图;
图4为本申请实施例中数据查找方法的一个具体实例的示意图;
图5为本申请实施例中数据缓存装置的示意图;
图6为本申请实施例中数据查找装置的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本申请实施例做进一步详细说明。在此,本申请的示意性实施例及其说明用于解释本申请,但并不作为对本申请的限定。
本申请实施例中设计一种三级缓存机制,其中的缓存包括热缓存、冷缓存和运行缓存。其中定义:
“热缓存”表示位于内存或内存数据库的数据缓存空间,在热缓存中保存的数据在设定时长内被读取过;
“冷缓存”表示位于磁盘的数据缓存空间,在冷缓存中保存的数据超过设定时长未被读取过;
“运行缓存”表示位于程序运行堆栈、在数据处理程序运行时存在的数据缓存空间,在运行缓存中可以保存数据处理结果。
此外,在本申请实施例中,还定义:
“命名空间”表示在热缓存或冷缓存中唯一识别的一套名字,通过命名空间能快速定位到目标;
“扫描优先级”表示对待扫描任务的分级,级别越高越优先被处理。
图1为本申请实施例中三级缓存机制的示意图。如图1所示,在本申请实施例中,可以将运行缓存、热缓存和冷缓存应用于数据的缓存和查找。具体的,运行缓存位于程序运行堆栈,可以用于保存数据;热缓存位于内存或内存数据库,可以用于基于第一触发条件,转存运行缓存中的数据;冷缓存位于磁盘的数据缓存空间,可以用于基于第二触发条件,转存热缓存中的数据。实施例中,第一触发条件例如可以是用于获取数据的程序运行完毕;第二触发条件例如可以是热缓存中的数据在设定时长内未被读取。
再如图1所示,本申请实施例中在进行数据查找时,可以由调度模块先在热缓存中查找目标数据以获得命中部分,而对于未命中部分,调度模块将进一步在冷缓存继续查找以获得命中部分,而对于未命中部分,调度模块将在运行缓存继续查找以获得命中部分,而对于未命中部分,调度模块获取目标数据所在目标地址(图1所示计算机中的其它组件),从目标地址获取目标数据,调度模块从目标地址获得目标数据后,更新运行缓存;待全部目标数据获取完成后,调度模块将运行缓存中的数据转存入热缓存;若在一段时间内热缓存中的数据未被读取,调度模块将热缓存中的数据转存入冷缓存。图1中热缓存、冷缓存、运行缓存、调度模块和其它组件都可以是集群或者单机。
基于图1所示的三级缓存机制,在本申请实施例中提供了一种数据缓存方法,如图2所示,该方法可以包括:
步骤201、将待缓存数据保存入运行缓存,其中,所述运行缓存位于程序运行堆栈;
步骤202、基于第一触发条件,将运行缓存中的数据转存入热缓存,其中,所述热缓存位于内存或内存数据库;
步骤203、基于第二触发条件,将热缓存中的数据转存入冷缓存,其中,所述冷缓存位于磁盘的数据缓存空间。
具体实施时,可以在获取待缓存数据时将待缓存数据保存入运行缓存。获取待缓存数据的过程可以包括:获得待缓存数据所在地址,从该地址获取待缓存数据。在获取到待缓存数据后先将待缓存数据保存入运行缓存。在一个实施例中,获取待缓存数据时,还可以在运行缓存中存储数据的标识,这样可以标识数据已在被获取。则运行缓存可以进一步用于存储数据的标识。
待缓存的数据可以包括与业务相应的数据。这样可以将数据进行差异化区分,可以将数据与业务相关联,满足对数据有差异化需求的上层业务,同时也避免与业务无关的误处理造成的故障及数据的不准确。例如,待缓存的数据可以包括与业务相应的程序运行结果,例如该程序可以是杀毒引擎,程序运行结果可以是杀毒引擎扫描结果。数据的标识可以包括程序的标识,例如可以是杀毒引擎的标识。则获取待缓存的数据例如可以包括确定文件样本待提交扫描的杀毒引擎,将文件样本提交至该杀毒引擎进行扫描,获得该杀毒引擎对文件样本的扫描结果。这里在运行缓存中存储杀毒引擎的标识,可以表示已将文件样本提交至哪一个杀毒引擎进行扫描。
在将数据存入运行缓存后,可以基于第一触发条件将运行缓存中的数据转存入热缓存,第一触发条件例如可以是用于获取数据的程序运行完毕,例如文件样本的各个杀毒引擎扫描结果均获取完成后,这些扫描结果将转存入热缓存中等待在一段时间内被读取。实施时还可以基于第二触发条件将热缓存中的数据转存入冷缓存,第二触发条件例如可以是热缓存中的数据在设定时长内未被读取,例如,如果在设定时长内热缓存中保存的杀毒引擎扫描结果未被读取,则将这些扫描结果转存入冷缓存。
具体实施时,对于热缓存和冷缓存,可以采用数据的标识作为命名空间,数据作为命名空间的值,对数据进行存储。例如,当数据为与业务相应的杀毒引擎扫描结果,数据的标识包括杀毒引擎的标识时,可以采用与业务相应的文件样本的文件ID(例如MD5值和/或Sha1值等)和杀毒引擎的标识作为命名空间(namespace),杀毒引擎扫描结果作为命名空间的值(namespace下面的值)。命名空间例如:
namespace:<md5>-<sha1>.<engine_id>
value:1
实施例中,还可以在命名空间中根据数据的标识更新相应的数据。例如,缓存结果一旦有规则更新,缓存便失去了准确性,因此考虑在命名空间中根据数据的标识更新相应的数据。举一例,当文件检测系统有人工运营参与(排误报,确认恶意等)操作或者杀毒引擎规则库升级后,原有的黑白名单会失效;例如文件样本A今天扫描出来的结果是正常,可能经过人工确认后发现是恶意的,或者某一个杀毒引擎规则库升级后发现是恶意的;如果简单粗暴的全部改掉(事实上只有某一个杀毒引擎规则库更新),或者压根不进行修改,这样缓存结果一旦有某款杀毒引擎规则更新,缓存便失去了准确性,激发雪崩。而一个完备的文件检测体系,需要人工运营的介入和杀毒引擎规则库的持续升级。这种情况下可以在前述的命名空间中根据杀毒引擎的标识更新相应杀毒引擎的扫描结果,而无需惊动其他杀毒引擎的扫描结果,提高处理效率并节约计算机资源。也就是说,如果某一杀毒引擎在对某一文件样本进行扫描后得出一个扫描结果,但是人工运营介入确认该扫描结果有误,此时应根据该杀毒引擎的标识在命名空间中相应修改该文件样本的扫描结果;又如该当杀毒引擎规则库升级,应根据该杀毒引擎的标识在命名空间中按升级后的该规则库更新该文件样本的扫描结果。
基于图1所示的三级缓存机制,可以避免相同数据被大量重复处理,节约计算机资源,在热缓存、冷缓存或运行缓存中已查找到的目标数据无需重复获取目标数据所在目标地址,又从目标地址去获取目标数据。基于此,在本申请实施例中还提供了一种数据查找方法,该方法可以包括:在热缓存和冷缓存中均未查找到目标数据时,在运行缓存中查找目标数据;若未查找到,则获取目标数据所在目标地址,从目标地址获取目标数据。查找的目标数据可以是一个或多个数据。如图3所示,举一具体实例,本例中待查找的目标数据为多个数据,本例中数据查找方法可以包括:
步骤301、在热缓存(也可称热数据层)中查找目标数据,若有未查找到的目标数据,则执行步骤302,若全部查找到则结束处理;
步骤302、在冷缓存(也可称冷数据层)中继续查找,若仍有未查找的目标数据,则执行步骤303,若全部查找到则结束处理;
步骤303、在运行缓存(也可称运行缓存层,runtime缓存层)中继续查找;如果未查找到,则执行步骤304;如果查找到,则结束处理;
步骤304、获取未查找到的目标数据的目标地址,从目标地址获取这些目标数据,之后结束处理。
如图3所示流程所述,本例中,在热缓存中查找目标数据,若有未查找到的目标数据,则在冷缓存中进一步查找;若在冷缓存中仍有未查找到的目标数据,则在运行缓存中继续查找,如果仍未查到则获取未查找到的目标数据的目标地址,从目标地址获取这些目标数据;因此可以得知,本申请实施例中,在已缓存有相同目标数据的情况下,不必再次从目标地址获取这些目标数据而执行相关的数据处理过程,从而避免相同数据被大量重复处理,节约计算机资源,提高处理速度。
如前所述,目标数据可以包括与业务相应的数据,这样可以将目标数据进行差异化区分,可以将目标数据与业务相关联,满足对目标数据有差异化需求的上层业务,同时也避免与业务无关的误处理造成的故障及目标数据的不准确。例如,目标数据可以包括与业务相应的目标程序运行结果,例如杀毒引擎扫描结果。发明人考虑到,在现有技术中,为了提升性能,减少重复扫描,文件检测系统中的缓存通常是通过计算文件的MD5,Sha1建立一个的黑白名单库。MD5(Message-Digest Algorithm 5,信息-摘要算法5)用于确保信息传输完整一致,是计算机广泛使用的杂凑算法(又称摘要算法、哈希算法)之一,主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。Sha1(Secure Hash Algorithm,安全哈希算法)主要适用于DSS(Digital Signature Standard,数字签名标准)中定义的DSA(Digital SignatureAlgorithm,数字签名算法)。
对于接入业务方的文件检测体系来说,对结果的准确性、系统性能都有很高的要求,这种黑白名单缓存机制已经无法满足复杂的业务环境,存在如下问题:
1、过于简单粗暴,对杀毒引擎类型无感知,未对杀毒引擎做差异化区分,无法满足对杀毒引擎有差异化需求的上层业务,且缓存结果一旦有误报,缓存便失去了准确性,激发雪崩。各个杀毒引擎的误报程度不同,假如一个样本被a,b,c三个杀毒引擎扫描,a,b扫出来是正常,但c误报为恶意,那么这个样本的名单属性就会被认为是黑。而恰巧业务方A十分关注误报率,且明确要求只关注a,b杀毒引擎的结果。一旦联动了A的线上操作,可能会因此导致高危故障。
2、简单的md5黑白名单都是事后级别的缓存层面,即在样本结果出来后才进行标记,当相同样本被大量重复提交(攻击或者多个业务方样本相似度大)的时候,会导致计算机资源浪费,尤其是当有沙盒这种十分耗时的动态扫描引擎的时候,会影响正常的扫描流程。
因此,将本申请实施例中的数据缓存、查找方法应用于与业务相应的杀毒引擎扫描,一方面可以对杀毒引擎进行差异化区分,满足对杀毒引擎有差异化需求的上层业务,只将与业务相应的杀毒引擎作为文件样本需要提交的杀毒引擎;另一方面,可以避免相同样本被大量重复提交,节约计算机资源,在热缓存、冷缓存或运行缓存中已查找到扫描结果的杀毒引擎无需重复提交。
再如图3所示流程所述,本申请实施例中,在冷缓存中仍有未查找到的目标数据时,需要在运行缓存中查找目标数据。具体的,可以在运行缓存中通过比对目标数据的标识,查找目标数据。例如,当目标数据包括与业务相应的杀毒引擎扫描结果,目标数据的标识包括杀毒引擎的标识时,可以在运行缓存中确定与业务相应的文件样本的缓存标签,这里文件样本的缓存标签包括热缓存和冷缓存中未查找到扫描结果的杀毒引擎的标识;将文件样本的缓存标签与已提交扫描的相同样本的缓存标签进行比对,该相同样本的缓存标签包括相同样本已提交杀毒引擎的标识;若缓存标签比对结果表明热缓存和冷缓存中未查找到扫描结果的杀毒引擎中有相同样本未提交杀毒引擎,则将文件样本提交至该相同样本未提交杀毒引擎进行扫描。
图4为本申请实施例中数据查找方法的一个具体实例的示意图,如图4所示,本例中,目标数据包括与业务相应的杀毒引擎扫描结果,目标数据的标识包括杀毒引擎的标识,处理过程可以包括:
步骤401、在热缓存中查找与业务相应的杀毒引擎扫描结果,若有未查找到的杀毒引擎扫描结果,则执行步骤402,若全部查找到则结束处理;
步骤402、在冷缓存中继续查找,若仍有未查找的杀毒引擎扫描结果,则执行步骤403,若全部查找到则结束处理;
步骤403、在运行缓存中确定文件样本的缓存标签,其中文件样本的缓存标签包括热缓存和冷缓存中未查找到扫描结果的杀毒引擎的标识;
步骤404、在运行缓存中将文件样本的缓存标签与已提交扫描的相同样本的缓存标签进行比对,其中相同样本的缓存标签包括相同样本已提交扫描的杀毒引擎的标识;
步骤405、在运行缓存中根据缓存标签比对结果确定热缓存和冷缓存中未查找到扫描结果的杀毒引擎中是否有相同样本未提交杀毒引擎;若没有则结束处理;若有则执行步骤406;
步骤406、在运行缓存中将文件样本提交至该相同样本未提交杀毒引擎进行扫描,之后结束处理。
在图4所示的实施例中,当冷缓存中仍有未查找到扫描结果的杀毒引擎(热缓存和冷缓存中均miss)时,会进入运行缓存处理。运行缓存会把与业务相应的相关策略映射为文件样本的一个缓存标签(tag);这里与业务相应的相关策略包括与业务相应的杀毒引擎的标识等要素。文件样本的缓存标签包括冷缓存中未查找到扫描结果的杀毒引擎的标识;相同样本的缓存标签包括相同样本已提交杀毒引擎的标识。通过比对tag可以判断是否需要再次提交文件样本,需要提交到哪些需要提交的引擎进行扫描。同一个文件样本,不同业务可能要求需要扫描的杀毒引擎不同。比如业务方A提交的文件样本S已提交杀毒引擎1,2扫描,同样的文件样本,业务方B需要杀毒引擎1,2,3扫描,在热缓存和冷缓存中均未查找到杀毒引擎1,2,3扫描结果的情况下,经过运行缓存时,通过tag比对可以确定对于业务方B的文件样本只需要提交到杀毒引擎3即可。
文件样本的缓存标签还可以包括文件样本的扫描超时时间;相同样本的缓存标签还包括相同样本的扫描超时时间。当热缓存和冷缓存中未查找到扫描结果的杀毒引擎中有相同样本已提交杀毒引擎,则可以进一步将文件样本的扫描超时时间与相同样本的扫描超时时间进行比对,若文件样本的扫描超时时间小于相同样本的扫描超时时间且二者之间的差值超过时间阈值,并且相同样本还未被扫描,则可以按文件样本的扫描超时时间提高文件样本的扫描优先级,再次将文件样本提交至该相同样本已提交杀毒引擎进行扫描。也就是说,虽然相同样本已被提交过相同杀毒引擎进行扫描,但是在当前文件样本的扫描超时时间小于相同样本的扫描超时时间并且二者之间的差值超过时间阈值,并且相同样本还未被扫描时,需要提高文件样本的扫描优先级再次提交扫描。这个扫描超时时间是业务方指定的超时时间,例如业务方A提交的文件样本X已提交杀毒引擎1扫描,扫描超时时间为300秒,即业务方A希望样本X在300秒内出结果;同样的文件样本,业务方B需要杀毒引擎1扫描,扫描超时时间为10秒,即业务方B希望样本X在10秒内出结果,此时业务方B对样本X的希望出结果时间与业务方A对样本X的希望出结果时间相差超过时间阈值(时间阈值例如是100秒),并且样本X还未被扫描,则业务方B的文件样本再次提交到杀毒引擎1,并提高样本X的扫描优先级进行扫描。
或者,文件样本的缓存标签还可以包括文件样本的扫描优先级,相同样本的缓存标签还包括相同样本的扫描优先级。当热缓存和冷缓存中未查找到扫描结果的杀毒引擎中有相同样本已提交杀毒引擎,则可以进一步将文件样本的扫描优先级与相同样本的扫描优先级超时时间进行比对,若文件样本的扫描优先级高于相同样本的扫描优先级,并且相同样本还未被扫描,则可以按文件样本的扫描优先级,将文件样本提交至该相同样本已提交杀毒引擎进行扫描。也就是说,虽然相同样本已被提交过相同杀毒引擎进行扫描,但是在当前文件样本的扫描优先级高于相同样本的扫描优先级,并且相同样本还未被扫描时,此时需要按高的扫描优先级再次提交扫描。例如业务方A提交的文件样本X已提交杀毒引擎1扫描,扫描优先级为1(数值越大优先级越高);同样的文件样本,业务方B需要杀毒引擎1扫描,扫描优先级为2,此时文件样本X还未被扫描,则业务方B的文件样本按扫描优先级2再次提交到杀毒引擎1进行扫描。
当然,缓存标签可以同时包括杀毒引擎的标识、文件样本的扫描超时时间和扫描优先级。例如一缓存标签tag的格式可以如下:
<ENGINE_ID><TIMEOUT><PRIORITY>
该tag是一个由0、1组成的32位长度的字符串,其中1到24位表示杀毒引擎的标识,25到30位表示文件样本的扫描超时时间,31到32位文件样本的扫描优先级(排队过多的时候可以自动调整的优先级)。
此处tag仅为一例,tag的格式和每位代表字段可以根据实际需求进行扩展,也就是说缓存标签除可以包括杀毒引擎的标识、文件样本的扫描超时时间和扫描优先级,实施例中还可以包括其它的信息。
以上述格式的tag为例给出如下实例:
00000000000000000000000100006001表示杀毒引擎的标识为1,文件样本的扫描超时时间为60秒,文件样本的扫描优先级为1;
00000000000000000000001100006002表示杀毒引擎的标识为1、2,文件样本的扫描超时时间为60秒,文件样本的扫描优先级为2;
00000000000000000000010100030002表示杀毒引擎的标识为1、3,文件样本的扫描超时时间为300秒,文件样本的扫描优先级为2。
通过字符串转换、对比就能算出两次tag的差异。比如00000000000000000000000100006001和00000000000000000000010100030002,通过字符串转换、对比等计算,便可以得出两者之间的需要扫描的杀毒引擎标识差异;同理可以算出文件样本的扫描超时时间的差异值,也可以算出文件样本的扫描优先级的差异值。有了这些差异比对,可以尽可能并合理的减少重复扫描,提交样本到真正需要扫描的杀毒引擎。
基于同一发明构思,本申请实施例中还提供了一种数据缓存装置和数据查找装置,如下面的实施例所述。由于这些装置解决问题的原理与上述数据缓存、查找方法相似,因此这些装置的实施可以参见数据缓存、查找方法的实施,重复之处不再赘述。
图5为本申请实施例中数据缓存装置的示意图。如图5所示,该装置可以包括:
运行缓存处理模块501,用于将待缓存数据保存入运行缓存,其中,所述运行缓存位于程序运行堆栈;运行缓存处理模块501是图5所示装置中负责完成在运行缓存中保存数据功能的部分,可以是软件、硬件或二者的结合,例如可以是完成该提供功能的处理芯片等元器件;
热缓存处理模块502,用于基于第一触发条件,将运行缓存中的数据转存入热缓存,其中,所述热缓存位于内存或内存数据库;热缓存处理模块502是图5所示装置中负责完成在热缓存中保存数据功能的部分,可以是软件、硬件或二者的结合,例如可以是完成该提供功能的处理芯片等元器件;
冷缓存处理模块503,用于基于第二触发条件,将热缓存中的数据转存入冷缓存,其中,所述冷缓存位于磁盘的数据缓存空间。冷缓存处理模块503是图5所示装置中负责完成在冷缓存中保存数据功能的部分,可以是软件、硬件或二者的结合,例如可以是完成该提供功能的处理芯片等元器件。
具体实施时,运行缓存处理模块501可以进一步用于将数据的标识存入运行缓存。
具体实施时,数据可以包括与业务相应的程序运行结果;数据的标识可以包括程序的标识。
具体实施时,热缓存处理模块502和冷缓存处理模块503可以进一步用于采用数据的标识作为命名空间,数据作为命名空间的值,对数据进行进行存储。
具体实施时,热缓存处理模块502和冷缓存处理模块503可以进一步用于在命名空间中根据数据的标识更新相应的数据。
图6为本申请实施例中数据查找装置的示意图。如图6所示,该装置可以包括:
数据查找模块601,用于在热缓存和冷缓存中均未查找到目标数据时,在运行缓存中查找所述目标数据;数据查找模块601是图6所示装置中负责完成数据查找功能的部分,可以是软件、硬件或二者的结合,例如可以是完成该提供功能的处理芯片等元器件;
数据获取模块602,用于在未查找到所述目标数据时,获取所述目标数据所在目标地址,从所述目标地址获取所述目标数据。其中,运行缓存位于程序运行堆栈,热缓存位于内存或内存数据库,冷缓存位于磁盘的数据缓存空间。数据获取模块602是图6所示装置中负责完成数据获取功能的部分,可以是软件、硬件或二者的结合,例如可以是完成该提供功能的处理芯片等元器件。
具体实施时,数据查找模块601可以进一步用于在运行缓存中通过比对目标数据的标识,查找所述目标数据。
具体实施时,目标数据可以包括与业务相应的目标程序运行结果;目标数据的标识可以包括目标程序的标识。
具体实施时,目标数据可以包括与业务相应的杀毒引擎扫描结果;目标数据的标识可以包括杀毒引擎的标识;
数据查找模块601可以进一步用于:
在运行缓存中确定与业务相应的文件样本的缓存标签,所述文件样本的缓存标签包括热缓存和冷缓存中未查找到扫描结果的杀毒引擎的标识;将所述文件样本的缓存标签与已提交扫描的相同样本的缓存标签进行比对,所述相同样本的缓存标签包括相同样本已提交杀毒引擎的标识;若缓存标签比对结果表明热缓存和冷缓存中未查找到扫描结果的杀毒引擎中有相同样本未提交杀毒引擎,则将所述文件样本提交至该相同样本未提交杀毒引擎进行扫描。
具体实施时,文件样本的缓存标签还可以包括所述文件样本的扫描超时时间;相同样本的缓存标签还可以包括相同样本的扫描超时时间;
数据查找模块601可以进一步用于:
若热缓存和冷缓存中未查找到扫描结果的杀毒引擎中有相同样本已提交杀毒引擎,则将所述文件样本的扫描超时时间与相同样本的扫描超时时间进行比对,若所述文件样本的扫描超时时间小于相同样本的扫描超时时间且二者之间的差值超过时间阈值,并且相同样本还未被扫描,则按所述文件样本的扫描超时时间提高所述文件样本的扫描优先级,将所述文件样本提交至该相同样本已提交杀毒引擎进行扫描。
具体实施时,文件样本的缓存标签还可以包括所述文件样本的扫描优先级;相同样本的缓存标签还可以包括相同样本的扫描优先级;
数据查找模块601可以进一步用于:
若热缓存和冷缓存中未查找到扫描结果的杀毒引擎中有相同样本已提交杀毒引擎,则将所述文件样本的扫描优先级与相同样本的扫描优先级进行比对,若所述文件样本的扫描优先级高于相同样本的扫描优先级,并且相同样本还未被扫描,则按所述文件样本的扫描优先级,将所述文件样本提交至该相同样本已提交杀毒引擎进行扫描。
综上所述,本申请实施例中,在运行缓存中保存数据,基于第一触发条件将运行缓存中的数据转存入热缓存,基于第二触发条件将热缓存中的数据转存入冷缓存,以此提供一种三级缓存机制,便于后续查找目标数据时,可以先在热缓存和冷缓存中查找,若找不到再在运行缓存中查找,如果仍然找不到可以获取目标数据所在目标地址,从目标地址获取目标数据,这样能够避免相同数据被大量重复处理,大大节约了计算机资源,提高了处理速度。
此外实施例中目标数据可以包括与业务相应的数据,这样可以将目标数据进行差异化区分,可以将目标数据与业务相关联,满足对目标数据有差异化需求的上层业务,同时也避免与业务无关的误处理造成的故障及目标数据的不准确。
在用于获取目标数据的相应目标程序算法发生变化时,可以在命名空间中根据目标数据的标识更新相应的目标数据,这样可以在目标程序算法持续升级情况下,在保证扫描目标数据准确性的同时,提高处理效率并节约计算机资源。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种计算设备,包括三级缓存,用于缓存数据,其特征在于,所述三级缓存包括:
运行缓存,位于程序运行堆栈;
热缓存,位于内存或内存数据库,用于基于第一触发条件,转存运行缓存中的数据;
冷缓存,位于磁盘的数据缓存空间,用于基于第二触发条件,转存热缓存中的数据。
2.如权利要求1所述的计算设备,其特征在于,所述运行缓存进一步用于保存数据的标识。
3.如权利要求1所述的计算设备,其特征在于,所述热缓存和冷缓存进一步用于采用数据的标识作为命名空间,数据作为命名空间的值,对数据进行存储。
4.如权利要求1所述的计算设备,其特征在于,所述第一触发条件包括:用于获取数据的程序运行完毕。
5.如权利要求1所述的计算设备,其特征在于,所述第二触发条件包括:热缓存中的数据在设定时长内未被读取。
6.一种数据缓存方法,其特征在于,包括:
将待缓存数据保存入运行缓存,其中,所述运行缓存位于程序运行堆栈;
基于第一触发条件,将运行缓存中的数据转存入热缓存,其中,所述热缓存位于内存或内存数据库;
基于第二触发条件,将热缓存中的数据转存入冷缓存,其中,所述冷缓存位于磁盘的数据缓存空间。
7.如权利要求6所述的方法,其特征在于,还包括:
将数据的标识存入运行缓存。
8.如权利要求7所述的方法,其特征在于,所述数据包括与业务相应的程序运行结果;所述数据的标识包括所述程序的标识。
9.如权利要求6所述的方法,其特征在于,在热缓存和冷缓存中存储目标数据,包括:采用数据的标识作为命名空间,数据作为命名空间的值,对数据进行存储。
10.如权利要求9所述的方法,其特征在于,还包括:
在命名空间中根据数据的标识更新相应的数据。
11.如权利要求6所述的方法,其特征在于,所述第一触发条件包括:用于获取数据的程序运行完毕。
12.如权利要求6所述的方法,其特征在于,所述第二触发条件包括:热缓存中的数据在设定时长内未被读取。
13.一种数据查找方法,用于查找目标数据,其特征在于,包括:
在热缓存和冷缓存中均未查找到目标数据时,在运行缓存中查找所述目标数据;
若未查找到,则获取所述目标数据所在目标地址,从所述目标地址获取所述目标数据;
其中,所述运行缓存位于程序运行堆栈,所述热缓存位于内存或内存数据库,所述冷缓存位于磁盘的数据缓存空间。
14.如权利要求13所述的方法,其特征在于,所述在运行缓存中查找所述目标数据,包括:
在运行缓存中通过比对目标数据的标识,查找所述目标数据。
15.如权利要求14所述的方法,其特征在于,所述目标数据包括与业务相应的目标程序运行结果;所述目标数据的标识包括所述目标程序的标识。
16.如权利要求15所述的方法,其特征在于,所述目标数据包括与业务相应的杀毒引擎扫描结果;所述目标数据的标识包括杀毒引擎的标识;
所述在运行缓存中通过比对目标数据的标识,查找所述目标数据,包括:在运行缓存中确定与业务相应的文件样本的缓存标签,所述文件样本的缓存标签包括热缓存和冷缓存中未查找到扫描结果的杀毒引擎的标识;将所述文件样本的缓存标签与已提交扫描的相同样本的缓存标签进行比对,所述相同样本的缓存标签包括相同样本已提交杀毒引擎的标识;
所述未查找到,则获取所述目标数据所在目标地址,从所述目标地址获取所述目标数据,包括:若缓存标签比对结果表明热缓存和冷缓存中未查找到扫描结果的杀毒引擎中有相同样本未提交杀毒引擎,则将所述文件样本提交至该相同样本未提交杀毒引擎进行扫描。
17.如权利要求16所述的方法,其特征在于,所述文件样本的缓存标签还包括所述文件样本的扫描超时时间;相同样本的缓存标签还包括相同样本的扫描超时时间;
所述方法还包括:
若热缓存和冷缓存中未查找到扫描结果的杀毒引擎中有相同样本已提交杀毒引擎,则将所述文件样本的扫描超时时间与相同样本的扫描超时时间进行比对,若所述文件样本的扫描超时时间小于相同样本的扫描超时时间且二者之间的差值超过时间阈值,并且相同样本还未被扫描,则按所述文件样本的扫描超时时间提高所述文件样本的扫描优先级,将所述文件样本提交至该相同样本已提交杀毒引擎进行扫描。
18.如权利要求16所述的方法,其特征在于,所述文件样本的缓存标签还包括所述文件样本的扫描优先级;相同样本的缓存标签还包括相同样本的扫描优先级;
所述方法还包括:
若热缓存和冷缓存中未查找到扫描结果的杀毒引擎中有相同样本已提交杀毒引擎,则将所述文件样本的扫描优先级与相同样本的扫描优先级进行比对,若所述文件样本的扫描优先级高于相同样本的扫描优先级,并且相同样本还未被扫描,则按所述文件样本的扫描优先级,将所述文件样本提交至该相同样本已提交杀毒引擎进行扫描。
19.一种数据缓存装置,其特征在于,包括:
运行缓存处理模块,用于将待缓存数据保存入运行缓存,其中,所述运行缓存位于程序运行堆栈;
热缓存处理模块,用于基于第一触发条件,将运行缓存中的数据转存入热缓存,其中,所述热缓存位于内存或内存数据库;
冷缓存处理模块,用于基于第二触发条件,将热缓存中的数据转存入冷缓存,其中,所述冷缓存位于磁盘的数据缓存空间。
20.一种数据查找装置,用于查找目标数据,其特征在于,包括:
数据查找模块,用于在热缓存和冷缓存中均未查找到目标数据时,在运行缓存中查找所述目标数据;
数据获取模块,用于在未查找到所述目标数据时,获取所述目标数据所在目标地址,从所述目标地址获取所述目标数据;
其中,所述运行缓存位于程序运行堆栈,所述热缓存位于内存或内存数据库,所述冷缓存位于磁盘的数据缓存空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610377746.3A CN107451152B (zh) | 2016-05-31 | 2016-05-31 | 计算设备、数据缓存和查找的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610377746.3A CN107451152B (zh) | 2016-05-31 | 2016-05-31 | 计算设备、数据缓存和查找的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107451152A true CN107451152A (zh) | 2017-12-08 |
CN107451152B CN107451152B (zh) | 2021-06-11 |
Family
ID=60485964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610377746.3A Active CN107451152B (zh) | 2016-05-31 | 2016-05-31 | 计算设备、数据缓存和查找的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107451152B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918381A (zh) * | 2019-03-13 | 2019-06-21 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN110765098A (zh) * | 2019-09-02 | 2020-02-07 | 北京东软望海科技有限公司 | 流程运行预测系统及方法 |
CN110795395A (zh) * | 2018-07-31 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 文件部署系统和文件部署方法 |
CN112395324A (zh) * | 2020-11-09 | 2021-02-23 | 艾迪安逊教育科技发展(广州)有限公司 | 一种在线教育平台用大数据存储系统 |
CN115098045A (zh) * | 2022-08-23 | 2022-09-23 | 成都止观互娱科技有限公司 | 一种数据存储系统及网络数据读取和写入方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101034375A (zh) * | 2007-02-12 | 2007-09-12 | 忆正存储技术(深圳)有限公司 | 计算机存储系统 |
US20110289283A1 (en) * | 2005-09-30 | 2011-11-24 | Cleversafe, Inc. | Memory device utilization in a dispersed storage network |
CN102467637A (zh) * | 2011-07-28 | 2012-05-23 | 中标软件有限公司 | 一种虚拟化环境下的反病毒系统及其反病毒方法 |
US20120203960A1 (en) * | 2008-06-30 | 2012-08-09 | Tetrick R Scott | Apparatus and method for multi-level cache utilization |
CN102750463A (zh) * | 2011-12-16 | 2012-10-24 | 北京安天电子设备有限公司 | 一种提高重复扫描文件速度的系统及方法 |
CN102982121A (zh) * | 2012-11-12 | 2013-03-20 | 北京奇虎科技有限公司 | 一种文件扫描方法、文件扫描装置及文件检测系统 |
CN102999722A (zh) * | 2012-11-12 | 2013-03-27 | 北京奇虎科技有限公司 | 文件检测系统 |
WO2013143714A1 (en) * | 2012-03-29 | 2013-10-03 | F-Secure Corporation | Controlling anti-virus software updates |
US20130318391A1 (en) * | 2012-05-24 | 2013-11-28 | Stec, Inc. | Methods for managing failure of a solid state device in a caching storage |
CN105183389A (zh) * | 2015-09-15 | 2015-12-23 | 北京金山安全软件有限公司 | 一种数据分级管理方法、装置及电子设备 |
CN105573669A (zh) * | 2015-12-11 | 2016-05-11 | 上海爱数信息技术股份有限公司 | 一种存储系统的io读加速缓存方法和系统 |
-
2016
- 2016-05-31 CN CN201610377746.3A patent/CN107451152B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110289283A1 (en) * | 2005-09-30 | 2011-11-24 | Cleversafe, Inc. | Memory device utilization in a dispersed storage network |
CN101034375A (zh) * | 2007-02-12 | 2007-09-12 | 忆正存储技术(深圳)有限公司 | 计算机存储系统 |
US20120203960A1 (en) * | 2008-06-30 | 2012-08-09 | Tetrick R Scott | Apparatus and method for multi-level cache utilization |
CN102467637A (zh) * | 2011-07-28 | 2012-05-23 | 中标软件有限公司 | 一种虚拟化环境下的反病毒系统及其反病毒方法 |
CN102750463A (zh) * | 2011-12-16 | 2012-10-24 | 北京安天电子设备有限公司 | 一种提高重复扫描文件速度的系统及方法 |
WO2013143714A1 (en) * | 2012-03-29 | 2013-10-03 | F-Secure Corporation | Controlling anti-virus software updates |
US20130318391A1 (en) * | 2012-05-24 | 2013-11-28 | Stec, Inc. | Methods for managing failure of a solid state device in a caching storage |
CN102982121A (zh) * | 2012-11-12 | 2013-03-20 | 北京奇虎科技有限公司 | 一种文件扫描方法、文件扫描装置及文件检测系统 |
CN102999722A (zh) * | 2012-11-12 | 2013-03-27 | 北京奇虎科技有限公司 | 文件检测系统 |
CN105183389A (zh) * | 2015-09-15 | 2015-12-23 | 北京金山安全软件有限公司 | 一种数据分级管理方法、装置及电子设备 |
CN105573669A (zh) * | 2015-12-11 | 2016-05-11 | 上海爱数信息技术股份有限公司 | 一种存储系统的io读加速缓存方法和系统 |
Non-Patent Citations (2)
Title |
---|
曾琦娟: ""FTP杀毒代理的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
李晨玮: ""安卓开发笔记—关于图片的三级缓存策略"", 《博客园--HTTPS://WWW.CNBLOGS.COM/LICHENWEI/P/4651576.HTML》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795395A (zh) * | 2018-07-31 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 文件部署系统和文件部署方法 |
CN110795395B (zh) * | 2018-07-31 | 2023-04-18 | 阿里巴巴集团控股有限公司 | 文件部署系统和文件部署方法 |
CN109918381A (zh) * | 2019-03-13 | 2019-06-21 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN109918381B (zh) * | 2019-03-13 | 2021-06-11 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN110765098A (zh) * | 2019-09-02 | 2020-02-07 | 北京东软望海科技有限公司 | 流程运行预测系统及方法 |
CN112395324A (zh) * | 2020-11-09 | 2021-02-23 | 艾迪安逊教育科技发展(广州)有限公司 | 一种在线教育平台用大数据存储系统 |
CN115098045A (zh) * | 2022-08-23 | 2022-09-23 | 成都止观互娱科技有限公司 | 一种数据存储系统及网络数据读取和写入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107451152B (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107451152A (zh) | 计算设备、数据缓存和查找的方法及装置 | |
US8190827B2 (en) | Memory sharing among computer programs | |
CN104662538B (zh) | 半连接加速 | |
US8843944B2 (en) | Accelerated class check | |
US20060212426A1 (en) | Efficient CAM-based techniques to perform string searches in packet payloads | |
US7814130B2 (en) | Efficient parallel bitwise sweep during garbage collection | |
US10133503B1 (en) | Selecting a deduplication process based on a difference between performance metrics | |
US8572106B1 (en) | Memory management in a token stitcher for a content search system having pipelined engines | |
US9940060B1 (en) | Memory use and eviction in a deduplication storage system | |
US10459727B2 (en) | Loop code processor optimizations | |
US7149870B2 (en) | Assigning sections within a memory heap for efficient garbage collection of large objects | |
US10255436B2 (en) | Creating rules describing malicious files based on file properties | |
CN111399912B (zh) | 一种面向多周期指令的指令调度方法、系统及介质 | |
CN111026917B (zh) | 一种基于卷积神经网络的数据包分类方法及系统 | |
CN106599247B (zh) | LSM-tree结构中数据文件的合并方法及装置 | |
CN107577943B (zh) | 基于机器学习的样本预测方法、装置及服务器 | |
US9552304B2 (en) | Maintaining command order of address translation cache misses and subsequent hits | |
WO2016095687A1 (zh) | 虚拟化安全检测方法与系统 | |
US20170192793A1 (en) | Efficient instruction processing for sparse data | |
US20160048453A1 (en) | Multiprocessor computer system | |
US20130318398A1 (en) | Method and system for leveraging page fault and page reclaim capabilities in debugging | |
CN110832488A (zh) | 规范化可执行程序文件中的入口点指令 | |
US8037256B2 (en) | Programmable address processor for graphics applications | |
US20170192896A1 (en) | Zero cache memory system extension | |
CN109298884B (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 |