一种数据处理方法及装置与流程

文档序号:18941053发布日期:2019-10-23 01:09阅读:124来源:国知局
一种数据处理方法及装置与流程

本发明涉及云计算领域,尤其涉及数据处理方法及装置。



背景技术:

在云计算的实际应用过程中,为了加速本地客户端的响应速度,一般会在客户端本地进行数据缓存,将最常使用的数据缓存到本地。这样来减少用户等待时间,提升用户体验,但是,本地缓存空间是有限的,随着本地缓存数据的增加,将会达到本地缓存的最大容量限制,此时新的数据还要在本地缓存,那就涉及到了缓存淘汰算法,即在缓存新的数据之前先清理掉本地缓存空间的一部分数据,使得剩余空间能够缓存新的数据。

在云计算与互联网应用中,最常用的缓存淘汰算法就是lfu(leastfrequentlyused,最不经常使用页面置换)算法:下面简单说明lfu算法过程。lfu算法使用一个计数器来记录各个缓存数据被访问的频率。通过使用lfu缓存算法,最低访问数的数据首先被移除,以此法依次移除最低访问数的数据,直到能够容纳新的数据。如图1所示,当新的数据f需要被缓存时,且缓存剩余空间小于f的大小,就需要删除一部分已缓存的数据,以保障f能够被缓存。根据访问频率排序,e的被访问频率最低,那么e将首先被删除,如果原来的的剩余空间+e>f,则表示删除e之后,f就可以被缓存,如果,剩余空间+e<f,则表示即使将e删除了,f仍然剩余空间过小不足以缓存f,此时将会根据访问频率依次再去删除c,将c删除后,如果总剩余空间>f。则停止继续删除,此时f已经可以被缓存。

上述缓存淘汰算法,由于选取的删除数据不够优化,使得缓存命中率不高,容易导致不必要的数据删除。



技术实现要素:

本申请所要解决的技术是提供一种数据处理方法及装置,可以使得待删除数据的选取更加优化,从而提高缓存命中率,避免不必要的数据删除。

为了解决上述技术问题,本申请提供了一种数据处理方法,包括:

当待缓存数据的大小大于当前剩余缓存空间时,按照当前缓存数据的访问频率由小到大的顺序,从当前缓存数据中选取数量最少的数据作为第一待删除数据集合;其中,所述第一待删除数据集合中所有数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小;

按照数据的大小由大到小的顺序,从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合;其中,所述第二待删除数据集合中所有数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小。

可选地,所述从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合之后,所述方法还包括:

删除所述第二待删除数据集合中的数据。

可选地,所述按照当前缓存数据的访问频率由小到大的顺序选取数量最少的数据作为第一待删除数据集合包括:

步骤a1、将当前缓存数据按照访问频率由小到大顺序进行排序;

步骤a2、将i的初始值设置为1;

步骤a3、判断第1个数据至第i个数据的大小与当前剩余缓存空间的总和是否大于或等于所述待缓存数据的大小;

步骤a4、若第1个数据至第i个数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小,则所述第一待删除数据集合包含第1个数据至第i个数据;若第1个数据至第i个数据的大小与当前剩余缓存空间的总和小于所述待缓存数据,则i=i+1,若i小于或等于n,则转步骤a3执行;

其中,i={1、2…n-1},n为当前缓存数据的个数。

可选地,所述按照数据的大小由大到小的顺序,从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合包括:

步骤b1、按照数据的大小由大到小的顺序,将所述第一待删除数据集合中的数据进行排序;

步骤b2、将j的初始值设置为1;

步骤b3、判断所述第一第1个数据至第j个数据的大小与当前剩余缓存空间的总和是否大于或等于所述待缓存数据;

步骤b4、若第1个数据至第j个数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据,则所述第二待删除数据集合包含第1个数据至第j个数据;若第1个数据至第j个数据的大小与当前剩余缓存空间的总和小于所述待缓存数据,则j=j+1,若j小于或等于m,则转步骤b3执行;

其中,j={1、2…m-1},m为所述第一待删除数据集合中数据的个数。

可选地,所述删除所述第二待删除数据集合中的数据之后,所述方法还包括:

缓存所述待缓存数据。

本申请还提供一种数据处理装置,包括:存储器和处理器;所述存储器,用于保存用于数据处理的程序;

所述处理器,用于读取执行所述用于数据处理的程序,执行如下操作:

当待缓存数据的大小大于当前剩余缓存空间时,按照当前缓存数据的访问频率由小到大的顺序,从当前缓存数据中选取数量最少的数据作为第一待删除数据集合;其中,所述第一待删除数据集合中所有数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小;

按照数据的大小由大到小的顺序,从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合;其中,所述第二待删除数据集合中所有数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小。

可选地,所述处理器,用于读取执行所述用于数据处理的程序,还执行如下操作:

所述从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合之后,删除所述第二待删除数据集合中的数据。

可选地,所述按照当前缓存数据的访问频率由小到大的顺序选取数量最少的数据作为第一待删除数据集合包括:

步骤a1、将当前缓存数据按照访问频率由小到大顺序进行排序;

步骤a2、将i的初始值设置为1;

步骤a3、判断第1个数据至第i个数据的大小与当前剩余缓存空间的总和是否大于或等于所述待缓存数据的大小;

步骤a4、若第1个数据至第i个数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据,则所述第一待删除数据集合包含第1个数据至第i个数据;若第1个数据至第i个数据的大小与当前剩余缓存空间的总和小于所述待缓存数据,则i=i+1,若i小于或等于n,则转步骤a3执行;

其中,i={1、2…n-1},n为当前缓存数据的个数。

可选地,所述按照数据的大小由大到小的顺序,从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合包括:

步骤b1、按照数据的大小由大到小的顺序,将所述第一待删除数据集合中的数据进行排序;

步骤b2、将j的初始值设置为1;

步骤b3、判断所述第一第1个数据至第j个数据的大小与当前剩余缓存空间的总和是否大于或等于所述待缓存数据;

步骤b4、若第1个数据至第j个数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据,则所述第二待删除数据集合包含第1个数据至第j个数据;若第1个数据至第j个数据的大小与当前剩余缓存空间的总和小于所述待缓存数据,则j=j+1,若j小于或等于m,则转步骤b3执行;

其中,j={1、2…m-1},m为所述第一待删除数据集合中数据的个数。

可选地,所述处理器,用于读取执行所述用于数据处理的程序,还执行如下操作:

所述删除所述第二待删除数据集合中的数据之后,缓存所述待缓存数据。

与现有技术相比,本申请包括:当待缓存数据的大小大于当前剩余缓存空间时,按照当前缓存数据的访问频率由小到大的顺序选取数量最少的数据作为第一待删除数据集合;其中,所述第一待删除数据集合中所有数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小;按照数据的大小由大到小的顺序,从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合;其中,所述第二待删除数据集合中所有数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小。本申请根据缓存数据的访问频率和数据大小,使得待删除数据的选取更加优化,从而可以提高缓存命中率,避免不必要的数据删除。

附图说明

附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。

图1是现有技术中缓存淘汰算法示意图;

图2是本发明实施例一的数据处理方法的流程示意图;

图3是本发明实施例一的数据处理方法的另一流程示意图;

图4是本发明实施例一的数据处理装置的结构示意图。

具体实施方式

本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。

本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。

此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。

实施例一

如图2所示,本实施例提供一种数据处理方法,包括:

步骤s100、当待缓存数据的大小大于当前剩余缓存空间时,按照当前缓存数据的访问频率由小到大的顺序,从当前缓存数据中选取数量最少的数据作为第一待删除数据集合;其中,所述第一待删除数据集合中所有数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小;

步骤s101、按照数据的大小由大到小的顺序,从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合;其中,所述第二待删除数据集合中所有数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小。

可选地,如图3所示,所述从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合之后,所述方法还可以包括:

步骤s102、删除所述第二待删除数据集合中的数据。

可选地,所述按照当前缓存数据的访问频率由小到大的顺序选取数量最少的数据作为第一待删除数据集合包括:

步骤a1、将当前缓存数据按照访问频率由小到大顺序进行排序;

步骤a2、将i的初始值设置为1;

步骤a3、判断第1个数据至第i个数据的大小与当前剩余缓存空间的总和是否大于或等于所述待缓存数据;

步骤a4、若第1个数据至第i个数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据,则所述第一待删除数据集合包含第1个数据至第i个数据;若第1个数据至第i个数据的大小与当前剩余缓存空间的总和小于所述待缓存数据,则i=i+1,若i小于或等于n,则转步骤a3执行;

其中,i={1、2…n-1},n为当前缓存数据的个数。

可选地,所述按照数据的大小由大到小的顺序,从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合可以包括:

步骤b1、按照数据的大小由大到小的顺序,将所述第一待删除数据集合中的数据进行排序;

步骤b2、将j的初始值设置为1;

步骤b3、判断所述第一第1个数据至第j个数据的大小与当前剩余缓存空间的总和是否大于或等于所述待缓存数据;

步骤b4、若第1个数据至第j个数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据,则所述第二待删除数据集合包含第1个数据至第j个数据;若第1个数据至第j个数据的大小与当前剩余缓存空间的总和小于所述待缓存数据,则j=j+1,若j小于或等于m,则转步骤b3执行;

其中,j={1、2…m-1},m为所述第一待删除数据集合中数据的个数。

可选地,如图3所示,所述删除所述第二待删除数据集合中的数据之后,所述方法还可以包括:

步骤s103、缓存所述待缓存数据。

上述技术方案根据缓存数据的访问频率和数据大小,使得待删除数据的选取更加优化,从而可以提高缓存命中率,避免不必要的数据删除。

如图4所示,一种数据处理装置,包括:存储器和处理器;其特征在于:

所述存储器10,用于保存用于数据处理的程序;

所述处理器11,用于读取执行所述用于数据处理的程序,执行如下操作:

当待缓存数据的大小大于当前剩余缓存空间时,按照当前缓存数据的访问频率由小到大的顺序,从当前缓存数据中选取数量最少的数据作为第一待删除数据集合;其中,所述第一待删除数据集合中所有数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小;

按照数据的大小由大到小的顺序,从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合;其中,所述第二待删除数据集合中所有数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小。

可选地,

所述处理器11,用于读取执行所述用于数据处理的程序,还可以执行如下操作:

所述从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合之后,删除所述第二待删除数据集合中的数据。

可选地,所述按照当前缓存数据的访问频率由小到大的顺序选取数量最少的数据作为第一待删除数据集合可以包括:

步骤a1、将当前缓存数据按照访问频率由小到大顺序进行排序;

步骤a2、将i的初始值设置为1;

步骤a3、判断第1个数据至第i个数据的大小与当前剩余缓存空间的总和是否大于或等于所述待缓存数据;

步骤a4、若第1个数据至第i个数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据,则所述第一待删除数据集合包含第1个数据至第i个数据;若第1个数据至第i个数据的大小与当前剩余缓存空间的总和小于所述待缓存数据,则i=i+1,若i小于或等于n,则转步骤a3执行;

其中,i={1、2…n-1},n为当前缓存数据的个数。

可选地,所述按照数据的大小由大到小的顺序,从所述第一待删除数据集合中选取数量最少的数据作为第二待删除数据集合可以包括:

步骤b1、按照数据的大小由大到小的顺序,将所述第一待删除数据集合中的数据进行排序;

步骤b2、将j的初始值设置为1;

步骤b3、判断所述第一第1个数据至第j个数据的大小与当前剩余缓存空间的总和是否大于或等于所述待缓存数据;

步骤b4、若第1个数据至第j个数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据,则所述第二待删除数据集合包含第1个数据至第j个数据;若第1个数据至第j个数据的大小与当前剩余缓存空间的总和小于所述待缓存数据,则j=j+1,若j小于或等于m,则转步骤b3执行;

其中,j={1、2…m-1},m为所述第一待删除数据集合中数据的个数。

可选地,所述处理器11,用于读取执行所述用于数据处理的程序,还可以执行如下操作:

所述删除所述第二待删除数据集合中的数据之后,缓存所述待缓存数据。

上述技术方案根据缓存数据的访问频率和数据大小,使得待删除数据的选取更加优化,从而可以提高缓存命中率,避免不必要的数据删除。

示例一

下面结合具体示例进一步对本申请的故障处理方法进行说明。

假设待缓存数据f的大小为12m,当前剩余缓存空间的大小为2m,当前缓存数据有a、b、c、d、e,上述缓存数据按照访问频率由小到大排序为:e、c、b、a、d,数据e的大小为2m,数据c的大小为10m,数据b的大小为10m,数据a的大小为7m,数据d的大小为20m。

若按照现有技术中的缓存淘汰算法将进行如下操作:

步骤s201、比较待缓存数据f的大小与当前剩余缓存空间的大小,由于2m小于12m,则需要删除一定数量的当前缓存数据;

步骤s202、首先选取访问频率最小的数据e,删除数据e,由于2m+2m小于12m,因此删除数据e后,剩余缓存空间仍然不够;

步骤s203、选取数据c,删除数据c,由于2m+2m+10m大于12m。此时剩余缓存空间能够容纳数据f;

步骤s204、缓存数据f。

上述方法中,为了缓存数据f需要删除数据e和c。

若采用本申请的数据处理方法将进行如下操作:

步骤s301、比较待缓存数据f的大小与当前剩余缓存空间的大小,由于2m小于12m,则需要删除一定数量的当前缓存数据;

步骤s302、确定第一待删除数据集合为{e、c};

本申请中,按照当前缓存数据的访问频率由小到大的顺序选取数量最少的数据作为第一待删除数据集合,也就是说,第一待删除数据集合中的数据的数量需要是最少,并且集合中所有数据的大小与当前剩余缓存空间的总和大于或等于所述待缓存数据的大小。

以本示例为例,对于集合{e、c、b},数据e、c、b的大小加上当前剩余缓存空间的大小大于待缓存数据f,而数据e、c的大小加上当前剩余缓存空间的大小也大于待缓存数据f,因此集合{e、c、b}不满足选取数据的数量最少这一特征,因此集合{e、c、b}不能作为第一待删除数据集合。

步骤s303、对集合{e、c}按照数据的大小从大到小进行排序得出集合{c、e},然后确定第二待删除集合为{c};

本示例中,由于数据c的大小与当前剩余缓存空间的大小的总和为12m,正好等于待缓存数据f的大小,因此,只需删除数据c即可。

步骤s304、删除数据c;

步骤s305、缓存数据f。

本申请采用的数据方法中,为了缓存数据f只需要删除数据c,避免了数据e的删除,使得删除数据的选取更加优化,缓存命中率更好。

需要说明的是,上述示例中,采用先选取第二待删除数据集合,然后删除第二待删除数据集合中的数据。在其他示例中,也可以无需先确定第二待删除数据集合,而是采用先删除再判断的方式。也就是说,对第一待删除数据集合按照数据大小从大到小排序后,依次删除数据,例如先删除数据c,然后判删除数据c之后的剩余缓存空间是否大于或等于待缓存数据f的大小,如果删除数据c之后的剩余缓存空间大于或等于待缓存数据f的大小,则结束该操作;如果删除数据c之后的剩余缓存空间仍然小于待缓存数据f的大小,则继续删除下一个数据,直到剩余缓存空间大于或等于待缓存数据f的大小为止。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且包括任何信息递送介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1