用于缓存管理的方法和系统的制作方法_2

文档序号:9687371阅读:来源:国知局
条目被创建,在步骤S210,可以通过各种不同的方式来确定该缓存条目的类别。例如,在一个实施例中,可以事先在训练阶段通过学习而生成缓存条目的多个预定义类别。以web页面为例,在训练阶段,可以首先生成多个web页面的缓存条目。在一个实施例中,可以针对实际的web页面而生成缓存条目。例如,可以针对将要访问的web站点的所有或者部分web页面而生成缓存条目。备选地或附加地,也可以使用专门用于训练的web页面来生成缓存条目。换言之,根据本发明的实施例,训练数据集与实际将要被访问的数据集可以相同,也可以不同。
[0027]针对所生成这些缓存条目(称为“训练缓存条目”),可以根据任何适当的标准或者度量对其进行分组,从而将训练缓存条目划分为多个类别。例如,在一个实施例中,可以根据这些训练缓存条目的失效事件(invalidat1n event)的时间点对训练缓存条目进行分组。在此使用的术语“失效事件”是指将会引起相关联的缓存条目失效的事件。作为示例,在网络应用环境中,失效事件可以包括但不限于以下一个或多个:对web页面的编辑、数据导入、数据导出、数据同步、文件更新、数据库更新,等等。
[0028]训练缓存条目的失效事件的时间点可以通过各种方式来确定。例如,在一个实施例中,可以通过实时监测失效事件的发生来确定失效事件的时间点。作为示例,假设一个训练条目的失效事件包括用户编辑和数据同步。此时,可以针对这两类事件而对该训练缓存条目进行实时监测,并且将失效事件首次发生的时间作为该训练缓存条目的失效事件时间点。
[0029]备选地或附加地,一个或多个训练缓存条目的失效事件时间点也可由用户指定。例如,在一个实施例中,用户可以指定:与图书销售相关联的web页面将在每天下午16:00更新。此时,所有图书销售的web页面的缓存条目的失效事件时间可以被设置为下午16:00。
[0030]作为又一示例,在一个实施例中,可以使用训练缓存条目的实际失效时间作为失效事件时间点的估计。具体而言,在这样的实施例中,每条训练缓存条目的有效周期可被设置为足够长。换言之,训练缓存条目不会因为超时而被删除。而后,可以以比较短的预定时间间隔(例如,5分钟或者10分钟),周期性地扫描训练缓存条目。在每次扫描中,确定每个被扫描的训练缓存条目是否失效。这可以通过对缓存条目的数据与相关web页面的当前实际数据进行比较来实现。如果一个训练条目在一次扫描中被确定为已失效,则使用扫描被执行的时间点作为该条目的失效时间点。该失效时间点进而被用作训练缓存条目的失效事件时间点的估计。已失效的训练缓存条目将从后续扫描中被排除。
[0031]作为示例,假设一个条目在下午14:00的扫描中保持有效,但是在紧邻的下午14:05执行的下一次扫描中变为无效,则可以将该缓存条目的失效事件时间点估计为下午14:05。也就是说,使得该缓存条目失效的失效事件被估计为发生在下午14:05。可以理解,这种估计可能存在一定的误差,因为缓存条目的失效事件可能发生在下午14:00到14:05中的任意时间点。但是,通过将扫描间隔设置地足够小,可以将这种误差控制在可容忍的范围之内。
[0032]重复上述过程,直到所有训练缓存条目都失效。备选地,训练过程也可以响应于达到预定的训练时间(例如,一天或者多天)而停止。以此方式,可以获得每个训练缓存条目的失效事件时间点。继而,可以根据失效事件时间点对训练缓存条目进行分组。在一个实施例中,分组可以通过聚类(clustering)来实现,使得失效事件的时间点彼此接近的训练缓存条目被分到相同的分组中。目前已知或将来开发的任何聚类方法均可与本发明的实施例结合使用。本发明的范围在此方面不受限制。
[0033]通过对训练缓存条目进行聚类而获得的每个分组被视为缓存条目的一个类别。在这样的实施例中,在步骤S210,可以提取新建缓存条目的属性,并且基于该属性从通过训练获得的多个预定义类别中选择一个类别。例如,在一个实施例中,属性可以是缓存条目所对应的web页面的URL。可以将该URL与属于各个预定义类别的训练缓存条目的URL相匹配,以便找到最匹配的URL。相应地,具有最匹配URL的训练缓存条目所在的类别可被确定为新建缓存条目的类别。
[0034]在一个实施例中,可以使用URL中的一部分而非全部作为缓存条目的属性。例如,在一个实施例中,用于呈现货品的web页面的URL中可能包含该货品的标识、分类、提供方、销售方等信息。作为示例,在URL中,“MrticlelD = xyz”可以表示货品的标识。在这样的实施例中,可以提取URL中一个或多个这样的部分,并且使用所提取的部分来执行与预定义类别中的训练缓存条目的匹配,从而确定新建缓存条目的类别。
[0035]应当理解,上文描述的实施例仅仅是示例性的,并非意在限制本发明的范围。基于本发明所提供的教导,可以对上述实施例进行各种修改或变形。例如,在一个备选实施例中,取代按照失效事件的时间点对训练缓存条目聚类,可以按照web页面的URL或其部分、与web页面相关联的产品属性(例如,类型、标识、提供商、产地,等等)等各种其他标准对训练缓存条目进行分组,以便确定多个预定义类别。对于每个预定义类别,可以由用户以人工方式指定与该类别相关联的失效事件时间点。
[0036]作为示例,在电子商务环境中,web页面可以被用于呈现相应的货品。在一个实施例中,可以基于货品的类型对web页面的缓存条目进行分组。例如,可以将缓存条目划分为“图书”、“电器”、“服装”等多个类别。对于每个类别,用户可以根据实际使用情况来指定其失效事件的时间点。例如,如果运营方在每天下午16:00更新针对图书的库存、价格等方面的数据,则“图书”类别的失效事件时间点可以被设置为下午16:00。
[0037]注意,上文描述的实施例都仅仅是示例性的,可以基于任何适当的属性对训练缓存条目进行分组。而且,在一个实施例中,对训练条目的分组甚至可以由用户以人工方式完成。本发明的范围在此方面不受限制。
[0038]继续参考图2,接下来,方法200进行到步骤S220。在步骤S220,获得与步骤S210处确定的类别相关联的失效事件的预计时间点。如上所述,新建缓存条目的类别可以选自多个预定义类别。在一个实施例中,预定义类别是通过根据训练缓存条目的失效事件时间点对训练缓存条目分组而获得的。在这样的实施例中,可以获得属于该类别的训练缓存条目的失效事件时间点,并且基于这些失效事件时间点来确定新建缓存条目的预计失效事件时间。例如,在一个实施例中,可以计算属于该类别的所有训练缓存条目的失效事件时间点的平均值、最大值或者最小值,作为新建缓存条目的预计失效事件时间点。
[0039]备选地,在另一实施例中,如上所述,每个类别的失效事件的时间点可以是用户指定的。此时,可以直接使用新建缓存条目所属类别的、用户指定的失效事件时间点,作为新建缓存条目的失效事件的预计时间点。
[0040]接下来,在方法200的步骤S230,基于步骤S220处确定的失效事件的预计时间点,来设置缓存条目的有效周期。具体而言,有效周期可以被设置失效事件的预计时间点与缓存条目的创建时间之间的差。例如,假设一个缓存条目的创建时间是上午9:00,并且该缓存条目的预计失效事件时间点为下午14:00。在此示例中,新建缓存条目的有效周期可以被设置为 14:00 - 9:00 = 5 小时。
[0041]根据本发明的实施例,基于失效事件和基于时间的缓存管理机制被有机地结合。每个缓存条目的有效周期不再简单地被设置为预先定义的时间。相反,缓存条目有效周期的设定是根据预计的失效事件时间点而设置的。以此方式,对缓存条目失效的管理将更为准确和有效。同时,失效事件以缓存条目有效周期的形式被体现,无需如已知方案中那样使用显式的事件调用。这样,本发明的实施例能够更好地适用于跨平台的分布式环境。由此,本发明的实施例兼具基于时间的缓存管理和基于事件的缓存管理二者的优势,同时克服了二者的缺陷。
[0042]在一个实施例中,方法可以200可以进行到可选的步骤S240,在此收集缓存条目在使用过程中的反馈,以便调整缓存条目的一个或多个类别的失效事件时间点。具体而言,对于任何给定的类别,可以基于在步骤S220处确定与类别相关联的失效事件的预计时间点,以及属于该类别的多个缓存条目的实际失效时间点,来修改该类别的失效事件的预计时间点。
[0043]具体而言,对于任何给定的类别,可以确定该类别的缓存条目中的、实际失效时间点早于预计时间点的缓存条目(称为“第一组缓存条目”)的数目。继而,可以计算第一组缓存条目在该类别的所有缓存条目中所占的比例,称为“第一比例”。例如,在一个实施例中,可以在该类别的失效事件的预计时间点之前的一个预定时间点(称为“第一时间点”),检测该类别的缓存条目中有多少条目已经失效。在此实施例中,在第一时间点已经失效的缓存条目构成了第一组缓存条目。特别地,在第一时刻检测的缓存条目可包括在运行时被指派到该类别的实际缓存条目。
[0044]第一比例可与预定阈值(称为“第一阈值”)进行比较。如果第
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1