CN105446909A - 用于缓存管理的方法和*** - Google Patents

用于缓存管理的方法和*** Download PDF

Info

Publication number
CN105446909A
CN105446909A CN201410437031.3A CN201410437031A CN105446909A CN 105446909 A CN105446909 A CN 105446909A CN 201410437031 A CN201410437031 A CN 201410437031A CN 105446909 A CN105446909 A CN 105446909A
Authority
CN
China
Prior art keywords
cache entries
time point
classification
scheduled time
ratio
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.)
Pending
Application number
CN201410437031.3A
Other languages
English (en)
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201410437031.3A priority Critical patent/CN105446909A/zh
Priority to US14/824,384 priority patent/US9690712B2/en
Publication of CN105446909A publication Critical patent/CN105446909A/zh
Priority to US15/593,403 priority patent/US10223287B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开内容涉及用于缓存管理的方法和***。本发明的一个实施例提供一种缓存管理方法,包括:响应于缓存条目被创建,确定所述缓存条目的类别;确定与所述类别相关联的失效事件的预计时间点,所述失效事件的发生将导致所述类别的缓存条目失效;以及基于所述预计时间点,设置所述缓存条目的有效周期。还描述了相应的***。

Description

用于缓存管理的方法和***
技术领域
本发明的实施例涉及用于缓存管理的方法和***。
背景技术
缓存(caching)是指将先前访问过的内容存储在本地存储位置,从而允许对针对相同内容的后续访问请求做出快速响应。缓存技术被广泛地应用于计算机处理器、存储***、数据***、网络应用等各个不同的领域中。例如,在网络环境中,用户先前访问的web页面或者其他网络内容可以被缓存在客户端本地。当用户再次访问先前已经访问过的web页面时,可以直接从本地存储中读取和返回缓存的web页面,从而缩短响应时间,并且降低对网络带宽资源和服务器计算资源的消耗。
处理缓存失效(cacheinvalidation)是缓存管理中的一个重要问题。缓存失效是指缓存的内容与该内容的实际最新版本不一致,从而使得缓存的内容丧失其应有的作用。缓存失效主要是由内容的后台更新造成的。例如,当web服务器更新web页面中的内容时,该web页面在客户端处的缓存条目将会失效。当一个缓存条目失效时,应当将其从缓存中移除。
基于时间来管理缓存失效的方案是已知的。每个缓存条目被指派一个固定的有效周期。当有效周期届满时,相应的缓存条目被确定为失效并且从缓存中被移除。然而在实践中,很难设置合适的有效周期。一些缓存条目可能在被删除时仍然是有效的。反之,另一些缓存条目在未被删除时可能已经失效。
另一类方案基于事件规则来处理缓存失效。每个缓存条目可以与一个或多个预定事件相关联。当预定事件之一发生时,相应的缓存条目被确定为失效并且从缓存中被删除。然而,在涉及多方的分布式***中,基于事件的缓存失效管理可能面临困难。例如,在网络电子商务环境中,web页面通常在内容分发网络(ContentDistributionNetwork,CDN)和企业内部的服务器或客户端上都被缓存。此时,需要实现跨***的事件触发机制来管理缓存失效。然而,跨***的事件触发通常具有较高的开发和维护成本,而且受到应用的限制而难以保证通用性。
发明内容
总体上,本发明的实施例提出一种用于更加有效地管理缓存的技术方案。
在本发明的一个方面,提供一种缓存管理方法。所述方法包括:响应于缓存条目被创建,确定所述缓存条目的类别;确定与所述类别相关联的失效事件的预计时间点,所述失效事件的发生将导致所述类别的缓存条目失效;以及基于所述预计时间点,设置所述缓存条目的有效周期。
在本发明的另一方面,提供一种缓存管理***。所述***包括:类别确定单元,被配置为响应于缓存条目被创建,确定所述缓存条目的类别;时间点确定单元,被配置为确定与所述类别相关联的失效事件的预计时间点,所述失效事件的发生将导致所述类别的缓存条目失效;以及有效周期设置单元,被配置为基于所述预计时间点,设置所述缓存条目的有效周期。
根据本发明的实施例,基于时间和基于失效事件的缓存管理机制被有机地结合。缓存条目的有效周期不再被简单地设置为固定的值,而是可以根据相应类别的失效事件的预计发生时间点而自适应地、灵活地设置。这样,可以确保缓存条目的失效时间更加接近实际失效的时间。而且,根据本发明的实施例,不需要使用高成本的事件触发机制。以此方式,可以对缓存进行更加准确和高效的管理。本发明的其他特征和优点将通过下文描述而变得容易理解。
附图说明
通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显其中:
图1示出了适于用来实现本发明实施例的示例性计算机***/服务器的示意性框图;
图2示出了根据本发明实施例的用于管理缓存的方法的示意性流程图;以及
图3示出了根据本发明实施例的用于管理缓存的***的示意性框图。
在附图中,相同或相似的标号被用来表示相同或相似的元素。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的方框图。图1显示的计算机***/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机***/服务器12以通用计算设备的形式表现。计算机***/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机***/服务器12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机***/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机***/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括—但不限于—操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机***/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机***/服务器12交互的设备通信,和/或与使得该计算机***/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机***/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机***/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
下面将详细描述本发明实施例的机制和原理。除非特别声明,在下文和权利要求中使用的术语“基于”表示“至少部分地基于”。术语“包括”表示开放性包括,即“包括但不限于”。术语“多个”表示“两个或者更多”。术语“一个实施例”表示“至少一个实施例”。术语“另一实施例”表示“至少一个另外的实施例”。其他术语的定义将在下文描述中给出。
图2示出了根据本发明的实施例的用于管理缓存的方法200的流程图。在下文描述中,可能将会参考网络内容(例如,web页面)来阐释本发明的缓存管理机制。然而应当理解,这仅仅是示例性的,无意以任何方式对本发明的范围进行限制。本发明的实施例可被用于管理任何适当类型的内容的缓存。
方法200开始于步骤S210,在此响应于缓存条目被创建,确定缓存条目的类别。以web页面为例,当用户第一次访问该web页面时,可以在客户端的本地缓存中创建该web页面的缓存条目。在一个实施例中,一个web页面可以作为整体被保存在一个缓存条目中。备选地,在另一实施例中,可以为一个web页面创建多个缓存条目,每个缓存条目中保存该web页面的部分内容。特别地,在一个实施例中,与每个web页面相关联的缓存条目都与该web页面的统一资源定位符(URL)相关联。
响应于新的缓存条目被创建,在步骤S210,可以通过各种不同的方式来确定该缓存条目的类别。例如,在一个实施例中,可以事先在训练阶段通过学习而生成缓存条目的多个预定义类别。以web页面为例,在训练阶段,可以首先生成多个web页面的缓存条目。在一个实施例中,可以针对实际的web页面而生成缓存条目。例如,可以针对将要访问的web站点的所有或者部分web页面而生成缓存条目。备选地或附加地,也可以使用专门用于训练的web页面来生成缓存条目。换言之,根据本发明的实施例,训练数据集与实际将要被访问的数据集可以相同,也可以不同。
针对所生成这些缓存条目(称为“训练缓存条目”),可以根据任何适当的标准或者度量对其进行分组,从而将训练缓存条目划分为多个类别。例如,在一个实施例中,可以根据这些训练缓存条目的失效事件(invalidationevent)的时间点对训练缓存条目进行分组。在此使用的术语“失效事件”是指将会引起相关联的缓存条目失效的事件。作为示例,在网络应用环境中,失效事件可以包括但不限于以下一个或多个:对web页面的编辑、数据导入、数据导出、数据同步、文件更新、数据库更新,等等。
训练缓存条目的失效事件的时间点可以通过各种方式来确定。例如,在一个实施例中,可以通过实时监测失效事件的发生来确定失效事件的时间点。作为示例,假设一个训练条目的失效事件包括用户编辑和数据同步。此时,可以针对这两类事件而对该训练缓存条目进行实时监测,并且将失效事件首次发生的时间作为该训练缓存条目的失效事件时间点。
备选地或附加地,一个或多个训练缓存条目的失效事件时间点也可由用户指定。例如,在一个实施例中,用户可以指定:与图书销售相关联的web页面将在每天下午16:00更新。此时,所有图书销售的web页面的缓存条目的失效事件时间可以被设置为下午16:00。
作为又一示例,在一个实施例中,可以使用训练缓存条目的实际失效时间作为失效事件时间点的估计。具体而言,在这样的实施例中,每条训练缓存条目的有效周期可被设置为足够长。换言之,训练缓存条目不会因为超时而被删除。而后,可以以比较短的预定时间间隔(例如,5分钟或者10分钟),周期性地扫描训练缓存条目。在每次扫描中,确定每个被扫描的训练缓存条目是否失效。这可以通过对缓存条目的数据与相关web页面的当前实际数据进行比较来实现。如果一个训练条目在一次扫描中被确定为已失效,则使用扫描被执行的时间点作为该条目的失效时间点。该失效时间点进而被用作训练缓存条目的失效事件时间点的估计。已失效的训练缓存条目将从后续扫描中被排除。
作为示例,假设一个条目在下午14:00的扫描中保持有效,但是在紧邻的下午14:05执行的下一次扫描中变为无效,则可以将该缓存条目的失效事件时间点估计为下午14:05。也就是说,使得该缓存条目失效的失效事件被估计为发生在下午14:05。可以理解,这种估计可能存在一定的误差,因为缓存条目的失效事件可能发生在下午14:00到14:05中的任意时间点。但是,通过将扫描间隔设置地足够小,可以将这种误差控制在可容忍的范围之内。
重复上述过程,直到所有训练缓存条目都失效。备选地,训练过程也可以响应于达到预定的训练时间(例如,一天或者多天)而停止。以此方式,可以获得每个训练缓存条目的失效事件时间点。继而,可以根据失效事件时间点对训练缓存条目进行分组。在一个实施例中,分组可以通过聚类(clustering)来实现,使得失效事件的时间点彼此接近的训练缓存条目被分到相同的分组中。目前已知或将来开发的任何聚类方法均可与本发明的实施例结合使用。本发明的范围在此方面不受限制。
通过对训练缓存条目进行聚类而获得的每个分组被视为缓存条目的一个类别。在这样的实施例中,在步骤S210,可以提取新建缓存条目的属性,并且基于该属性从通过训练获得的多个预定义类别中选择一个类别。例如,在一个实施例中,属性可以是缓存条目所对应的web页面的URL。可以将该URL与属于各个预定义类别的训练缓存条目的URL相匹配,以便找到最匹配的URL。相应地,具有最匹配URL的训练缓存条目所在的类别可被确定为新建缓存条目的类别。
在一个实施例中,可以使用URL中的一部分而非全部作为缓存条目的属性。例如,在一个实施例中,用于呈现货品的web页面的URL中可能包含该货品的标识、分类、提供方、销售方等信息。作为示例,在URL中,“&ArticleID=xyz”可以表示货品的标识。在这样的实施例中,可以提取URL中一个或多个这样的部分,并且使用所提取的部分来执行与预定义类别中的训练缓存条目的匹配,从而确定新建缓存条目的类别。
应当理解,上文描述的实施例仅仅是示例性的,并非意在限制本发明的范围。基于本发明所提供的教导,可以对上述实施例进行各种修改或变形。例如,在一个备选实施例中,取代按照失效事件的时间点对训练缓存条目聚类,可以按照web页面的URL或其部分、与web页面相关联的产品属性(例如,类型、标识、提供商、产地,等等)等各种其他标准对训练缓存条目进行分组,以便确定多个预定义类别。对于每个预定义类别,可以由用户以人工方式指定与该类别相关联的失效事件时间点。
作为示例,在电子商务环境中,web页面可以被用于呈现相应的货品。在一个实施例中,可以基于货品的类型对web页面的缓存条目进行分组。例如,可以将缓存条目划分为“图书”、“电器”、“服装”等多个类别。对于每个类别,用户可以根据实际使用情况来指定其失效事件的时间点。例如,如果运营方在每天下午16:00更新针对图书的库存、价格等方面的数据,则“图书”类别的失效事件时间点可以被设置为下午16:00。
注意,上文描述的实施例都仅仅是示例性的,可以基于任何适当的属性对训练缓存条目进行分组。而且,在一个实施例中,对训练条目的分组甚至可以由用户以人工方式完成。本发明的范围在此方面不受限制。
继续参考图2,接下来,方法200进行到步骤S220。在步骤S220,获得与步骤S210处确定的类别相关联的失效事件的预计时间点。如上所述,新建缓存条目的类别可以选自多个预定义类别。在一个实施例中,预定义类别是通过根据训练缓存条目的失效事件时间点对训练缓存条目分组而获得的。在这样的实施例中,可以获得属于该类别的训练缓存条目的失效事件时间点,并且基于这些失效事件时间点来确定新建缓存条目的预计失效事件时间。例如,在一个实施例中,可以计算属于该类别的所有训练缓存条目的失效事件时间点的平均值、最大值或者最小值,作为新建缓存条目的预计失效事件时间点。
备选地,在另一实施例中,如上所述,每个类别的失效事件的时间点可以是用户指定的。此时,可以直接使用新建缓存条目所属类别的、用户指定的失效事件时间点,作为新建缓存条目的失效事件的预计时间点。
接下来,在方法200的步骤S230,基于步骤S220处确定的失效事件的预计时间点,来设置缓存条目的有效周期。具体而言,有效周期可以被设置失效事件的预计时间点与缓存条目的创建时间之间的差。例如,假设一个缓存条目的创建时间是上午9:00,并且该缓存条目的预计失效事件时间点为下午14:00。在此示例中,新建缓存条目的有效周期可以被设置为14:00–9:00=5小时。
根据本发明的实施例,基于失效事件和基于时间的缓存管理机制被有机地结合。每个缓存条目的有效周期不再简单地被设置为预先定义的时间。相反,缓存条目有效周期的设定是根据预计的失效事件时间点而设置的。以此方式,对缓存条目失效的管理将更为准确和有效。同时,失效事件以缓存条目有效周期的形式被体现,无需如已知方案中那样使用显式的事件调用。这样,本发明的实施例能够更好地适用于跨平台的分布式环境。由此,本发明的实施例兼具基于时间的缓存管理和基于事件的缓存管理二者的优势,同时克服了二者的缺陷。
在一个实施例中,方法可以200可以进行到可选的步骤S240,在此收集缓存条目在使用过程中的反馈,以便调整缓存条目的一个或多个类别的失效事件时间点。具体而言,对于任何给定的类别,可以基于在步骤S220处确定与类别相关联的失效事件的预计时间点,以及属于该类别的多个缓存条目的实际失效时间点,来修改该类别的失效事件的预计时间点。
具体而言,对于任何给定的类别,可以确定该类别的缓存条目中的、实际失效时间点早于预计时间点的缓存条目(称为“第一组缓存条目”)的数目。继而,可以计算第一组缓存条目在该类别的所有缓存条目中所占的比例,称为“第一比例”。例如,在一个实施例中,可以在该类别的失效事件的预计时间点之前的一个预定时间点(称为“第一时间点”),检测该类别的缓存条目中有多少条目已经失效。在此实施例中,在第一时间点已经失效的缓存条目构成了第一组缓存条目。特别地,在第一时刻检测的缓存条目可包括在运行时被指派到该类别的实际缓存条目。
第一比例可与预定阈值(称为“第一阈值”)进行比较。如果第一比例高于第一阈值,表明与该类别相关联的当前预计失效事件时间点可能偏晚。此时,可以将该类别的失效事件的预计时间点适当提前。例如,在一个实施例中,可以将失效事件的预计时间点提前到第一时间点。当然,失效事件的预计时间点可被提前到任何其他适当的时间。
作为示例,假设与缓存条目的一个给定类别相关联的失效事件的当前预计时间点为上午10:00,第一时间点为上午9:55,并且第一阈值为10%。此时,将会在上午9:55检测属于该类别的每个缓存条目是否已经失效。在上午9:55已经失效的那些缓存条目构成了第一组缓存条目。如果发现第一缓存条目占该类别的所有缓存条目的比例超过10%(即,在上午9:55时,属于该类别的缓存条目中超过10%的缓存条目已经失效),则可以将失效事件的预计时间点提前。例如,在一个实施例中,失效事件的预计时间点可被提前到上午9:55。
备选地或附加地,在一个实施例中,对于任何给定的类别,可以确定该类别的缓存条目中的、实际失效时间点晚于预计时间点的缓存条目(称为“第二组缓存条目”)的数目。继而,可以计算第二组缓存条目在该类别的所有缓存条目中所占的比例,称为“第二比例”。例如,在一个实施例中,可以在该类别的失效事件的预计时间点之后的一个预定时间点(称为“第二时间点”),检测该类别的缓存条目中有多少条目仍然保持有效。在此实施例中,在第二时间点保持有效的缓存条目构成了第二组缓存条目。类似于第一组缓存条目,第二组缓存条目可包括在运行时被指派到该类别的实际缓存条目。
第二比例可与预定的阈值(称为“第二阈值”)进行比较。如果第二比例高于第二阈值,表明与该类别相关联的当前预计失效事件时间点可能偏早。此时,可以将该类别的失效事件的预计时间点适当延后。例如,在一个实施例中,可以将失效事件的预计时间点延后到第二时间点。当然,失效事件的预计时间点可被延后到任何其他适当的时间。
仍然考虑上文描述的示例,其中类别的失效事件的当前预计时间点为上午10:00。假设第二时间点为上午10:05,并且第二阈值为10%。注意,尽管在此示例中第一阈值等于第二阈值,但是这仅仅是示例性的。在其他实施例中,第一阈值可以不等于第二阈值。如果通过检测发现在上午10:05时属于该类别的缓存条目中超过10%的条目仍然保持有效,则可以将失效事件的预计时间点延后,例如延后到上午10:05。
特别地,在一个实施例中,可以执行第一比例与第一阈值的比较,并且还执行第二比例与第二阈值的比较。如果第一比例大于第一阈值并且第二比例大于第二阈值,说明该类别中相当数目的缓存条目在失效事件的预计时间点之前已经失效。同时,该类别中相当数目的缓存条目在失效事件的预计时间点之后仍然保持有效。属于同一类别的缓存条目失效时间的这种分散性表明:该类别未能正确地反映缓存条目的失效事件在时间上的规律,因此是不适当的。此时,在一个实施例中,可以通过调整类别本身来修改失效事件的预计时间点。
例如,在一个实施例中,对类别的调整可以包括重新对训练缓存条目执行聚类过程,以便产生新的类别。备选地或附加地,在一个实施例中,对类别的调整可以包括从类别中移除在失效事件的预计时间点之前失效的缓存条目。备选地或附加地,在又一个实施例中,对类别的调整可以包括从类别中移除在失效事件的预计时间点之后仍然保持有效的缓存条目。对类别的任何其他适当调整都是可能的。
通过动态地提前和/或延后失效事件的预计时间点,可以在运行态动态地适应一个或多个类别的失效事件的变化。例如,在上文示例中,当通过聚类生成预定义类别时,给定类别的失效事件可能的确在上午10:00发生。然而,服务提供方可能随后调整该失效事件的时间点。例如,web站点的托管方可以将更新有关数据的时间点从上午10:00调整到上午10:30。在这样的情况下,通过在使用中动态地将失效事件的预计时间点延后一次或多次,可以逐步地使失效事件的预计时间点再次与实际时间点相吻合。
而且,在同时使用第一比例和第二比例的实施例中,还可以对类别的改变做出正确、及时的响应。例如,随着时间的变化,最初被划分为相同类别的缓存条目的失效事件时间点可能变得彼此异质。根据本发明的实施例,这种变化可以被检测到,并且可以通过对类别所做的调整而得到有效的补偿。
图3示出了根据本发明实施例的用于缓存管理的***300的示意性框图。如图所示,***300包括:类别确定单元310,被配置为响应于缓存条目被创建,确定所述缓存条目的类别;时间点确定单元320,被配置为确定与所述类别相关联的失效事件的预计时间点,所述失效事件的发生将导致所述类别的缓存条目失效;以及有效周期设置单元330,被配置为基于所述预计时间点,设置所述缓存条目的有效周期。
在一个实施例中,所述类别确定单元310可以包括:属性提取单元,被配置为提取所述缓存条目的属性;以及类别选择单元,被配置为基于所述属性从多个预定义类别中选择所述缓存条目的所述类别,所述多个预定义类别通过按照多个训练缓存条目的失效事件时间点对所述多个训练缓存条目进行分组而获得。
在一个实施例中,所述时间点确定单元320包括:训练时间点确定单元,被配置为确定所述多个训练缓存条目中属于所述类别的训练缓存条目的所述失效事件时间点;以及时间点计算单元,被配置为基于属于所述类别的所述训练缓存条目的所述失效事件时间点来计算所述预计时间点。
在一个实施例中,***300还可以包括:时间点修改单元,被配置为基于属于所述类别的多个缓存条目的实际失效时间点,修改所述预计时间点。
在一个实施例中,所述时间点修改单元可以包括:第一比例计算单元,被配置为计算第一组缓存条目在所述多个缓存条目中所占的第一比例,所述第一组缓存条目的所述实际失效时间点早于所述预计时间点;以及时间点提前单元,被配置为响应于所述第一比例超过第一阈值,将所述预计时间点提前。
备选地或附加地,在一个实施例中,所述时间点修改单元可以包括:第二比例计算单元,被配置为计算第二组缓存条目在所述多个缓存条目中所占的第二比例,所述第二组缓存条目的所述实际失效时间点晚于所述预计时间点;以及时间点延后单元,被配置为响应于所述第二比例超过第二阈值,将所述预计时间点延后。
特别地,在一个实施例中,所述时间点修改单元可以同时包括上述第一比例计算单元和第二比例计算单元。在这样的实施例中,***300还可以包括类别调整单元,被配置为响应于所述第一比例超过第一阈值并且所述第二比例超过第二阈值,调整所述类别以修改所述预计时间点。
应当注意,为清晰起见,图3中没有示出***300所包括的可选单元或者子单元。上文所描述的所有特征和操作分别适用于***300,故在此不再赘述。而且,***300中的单元或子单元的划分不是限制性的而是示例性的,旨在从逻辑上描述其主要功能或操作。一个单元的功能可以由多个单元来实现;反之,多个单元亦可由一个单元来实现。本发明的范围在此方面不受限制。
而且,***300所包含的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。例如,在某些实施方式中,***300可以利用软件和/或固件来实现。备选地或附加地,***300可以部分地或者完全地基于硬件来实现。例如,***300中的一个或多个单元可以实现为集成电路(IC)芯片、专用集成电路(ASIC)、片上***(SOC)、现场可编程门阵列(FPGA),等等。本发明的范围在此方面不受限制。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是—但不限于—电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
计算机可读程序指令也可加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (14)

1.一种缓存管理方法,所述方法包括:
响应于缓存条目被创建,确定所述缓存条目的类别;
确定与所述类别相关联的失效事件的预计时间点,所述失效事件的发生将导致所述类别的缓存条目失效;以及
基于所述预计时间点,设置所述缓存条目的有效周期。
2.根据权利要求1所述的方法,其中确定所述缓存条目的类别包括:
提取所述缓存条目的属性;以及
基于所述属性从多个预定义类别中选择所述缓存条目的所述类别,所述多个预定义类别通过按照多个训练缓存条目的失效事件时间点对所述多个训练缓存条目进行分组而获得。
3.根据权利要求2所述的方法,其中确定与所述类别相关联的失效事件的预计时间点包括:
确定所述多个训练缓存条目中属于所述类别的训练缓存条目的所述失效事件时间点;以及
基于属于所述类别的所述训练缓存条目的所述失效事件时间点来计算所述预计时间点。
4.根据权利要求1到3任一项所述的方法,还包括:
基于属于所述类别的多个缓存条目的实际失效时间点,修改所述预计时间点。
5.根据权利要求4所述的方法,其中修改所述预计时间点包括:
计算第一组缓存条目在所述多个缓存条目中所占的第一比例,所述第一组缓存条目的所述实际失效时间点早于所述预计时间点;以及
响应于所述第一比例超过第一阈值,将所述预计时间点提前。
6.根据权利要求4所述的方法,其中修改所述预计时间点包括:
计算第二组缓存条目在所述多个缓存条目中所占的第二比例,所述第二组缓存条目中的所述实际失效时间点晚于所述预计时间点;以及
响应于所述第二比例超过第二阈值,将所述预计时间点延后。
7.根据权利要求4所述的方法,其中修改所述预计时间点包括:
计算第一组缓存条目在所述多个缓存条目中所占的第一比例,所述第一组缓存条目的所述实际失效时间点早于所述预计时间点;
计算第二组缓存条目在所述多个缓存条目中所占的第二比例,所述第二组缓存条目的所述实际失效时间点晚于所述预计时间点;以及
响应于所述第一比例超过第一阈值并且所述第二比例超过第二阈值,调整所述类别以修改所述预计时间点。
8.一种缓存管理***,所述***包括:
类别确定单元,被配置为响应于缓存条目被创建,确定所述缓存条目的类别;
时间点确定单元,被配置为确定与所述类别相关联的失效事件的预计时间点,所述失效事件的发生将导致所述类别的缓存条目失效;以及
有效周期设置单元,被配置为基于所述预计时间点,设置所述缓存条目的有效周期。
9.根据权利要求8所述的***,其中所述类别确定单元包括:
属性提取单元,被配置为提取所述缓存条目的属性;以及
类别选择单元,被配置为基于所述属性从多个预定义类别中选择所述缓存条目的所述类别,所述多个预定义类别通过按照多个训练缓存条目的失效事件时间点对所述多个训练缓存条目进行分组而获得。
10.根据权利要求9所述的***,其中所述时间点确定单元包括:
训练时间点确定单元,被配置为确定所述多个训练缓存条目中属于所述类别的训练缓存条目的所述失效事件时间点;以及
时间点计算单元,被配置为基于属于所述类别的所述训练缓存条目的所述失效事件时间点来计算所述预计时间点。
11.根据权利要求8到10任一项所述的***,还包括:
时间点修改单元,被配置为基于属于所述类别的多个缓存条目的实际失效时间点,修改所述预计时间点。
12.根据权利要求11所述的***,其中所述时间点修改单元包括:
第一比例计算单元,被配置为计算第一组缓存条目在所述多个缓存条目中所占的第一比例,所述第一组缓存条目的所述实际失效时间点早于所述预计时间点;以及
时间点提前单元,被配置为响应于所述第一比例超过第一阈值,将所述预计时间点提前。
13.根据权利要求11所述的***,其中所述时间点修改单元包括:
第二比例计算单元,被配置为计算第二组缓存条目在所述多个缓存条目中所占的第二比例,所述第二组缓存条目的所述实际失效时间点晚于所述预计时间点;以及
时间点延后单元,被配置为响应于所述第二比例超过第二阈值,将所述预计时间点延后。
14.根据权利要求11所述的***,其中所述时间点修改单元包括:
第一比例计算单元,被配置为计算第一组缓存条目在所述多个缓存条目中所占的第一比例,所述第一组缓存条目的所述实际失效时间点早于所述预计时间点;
第二比例计算单元,被配置为计算第二组缓存条目在所述多个缓存条目中所占的第二比例,所述第二组缓存条目的所述实际失效时间点晚于所述预计时间点;以及
类别调整单元,被配置为响应于所述第一比例超过第一阈值并且所述第二比例超过第二阈值,调整所述类别以修改所述预计时间点。
CN201410437031.3A 2014-08-29 2014-08-29 用于缓存管理的方法和*** Pending CN105446909A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410437031.3A CN105446909A (zh) 2014-08-29 2014-08-29 用于缓存管理的方法和***
US14/824,384 US9690712B2 (en) 2014-08-29 2015-08-12 Method and system for cache management
US15/593,403 US10223287B2 (en) 2014-08-29 2017-05-12 Method and system for cache management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410437031.3A CN105446909A (zh) 2014-08-29 2014-08-29 用于缓存管理的方法和***

Publications (1)

Publication Number Publication Date
CN105446909A true CN105446909A (zh) 2016-03-30

Family

ID=55402652

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410437031.3A Pending CN105446909A (zh) 2014-08-29 2014-08-29 用于缓存管理的方法和***

Country Status (2)

Country Link
US (2) US9690712B2 (zh)
CN (1) CN105446909A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223287B2 (en) 2014-08-29 2019-03-05 International Business Machines Corporation Method and system for cache management

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130053249A (ko) * 2011-11-15 2013-05-23 삼성전자주식회사 통신 시스템에서 캐쉬 메모리 관리 방법 및 장치
CN107153663B (zh) * 2016-03-04 2019-10-29 ***通信集团北京有限公司 一种域名资源缓存方法及装置
US11805032B2 (en) * 2016-08-24 2023-10-31 Selfserveme Pty Ltd. Customer service systems and portals
US11080110B2 (en) * 2017-10-06 2021-08-03 Experian Health, Inc. In-memory storage of aggregated data for real-time event tracking
US11645344B2 (en) 2019-08-26 2023-05-09 Experian Health, Inc. Entity mapping based on incongruent entity data
KR20210097347A (ko) * 2020-01-30 2021-08-09 한국전자통신연구원 인공지능 기반 이미지 검색 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807607B1 (en) * 1999-08-17 2004-10-19 International Business Machines Corporation Cache memory management system and method
US20070156966A1 (en) * 2005-12-30 2007-07-05 Prabakar Sundarrajan System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7480767B2 (en) * 2006-06-15 2009-01-20 Sap Ag Cache with time-based purging and computation of purged items
US8533393B1 (en) * 2010-12-14 2013-09-10 Expedia, Inc. Dynamic cache eviction

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934720B1 (en) 2001-08-04 2005-08-23 Oracle International Corp. Automatic invalidation of cached data
EP1502207A2 (en) * 2002-01-18 2005-02-02 Idetic, Inc. A multi-tiered caching mechanism for the storage and retrieval of content multiple versions
US8650266B2 (en) 2002-03-26 2014-02-11 At&T Intellectual Property Ii, L.P. Cache validation using smart source selection in a data network
US20060095460A1 (en) 2004-10-29 2006-05-04 International Business Machines Corporation Systems and methods for efficiently clustering objects based on access patterns
US20080209120A1 (en) 2007-02-26 2008-08-28 Microsoft Corporation Accelerating cache performance by active cache validation
US7783757B2 (en) 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US8799396B2 (en) 2008-02-04 2014-08-05 Cisco Technology, Inc. Method and system for an efficient distributed cache with a shared cache repository
US8086803B2 (en) 2009-05-13 2011-12-27 International Business Machines Corporation Managing cache elements
US8566521B2 (en) 2010-09-01 2013-10-22 International Business Machines Corporation Implementing cache offloading
US8918602B2 (en) 2011-09-19 2014-12-23 International Business Machines Corporation Dynamically altering time to live values in a data cache
CN105446909A (zh) 2014-08-29 2016-03-30 国际商业机器公司 用于缓存管理的方法和***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807607B1 (en) * 1999-08-17 2004-10-19 International Business Machines Corporation Cache memory management system and method
US20070156966A1 (en) * 2005-12-30 2007-07-05 Prabakar Sundarrajan System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7480767B2 (en) * 2006-06-15 2009-01-20 Sap Ag Cache with time-based purging and computation of purged items
US8533393B1 (en) * 2010-12-14 2013-09-10 Expedia, Inc. Dynamic cache eviction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223287B2 (en) 2014-08-29 2019-03-05 International Business Machines Corporation Method and system for cache management

Also Published As

Publication number Publication date
US9690712B2 (en) 2017-06-27
US20160062903A1 (en) 2016-03-03
US10223287B2 (en) 2019-03-05
US20170249259A1 (en) 2017-08-31

Similar Documents

Publication Publication Date Title
CN105446909A (zh) 用于缓存管理的方法和***
US10387236B2 (en) Processing data errors for a data processing system
US20160004517A1 (en) SOFTWARE DEVELOPMENT IMPROVEMENT TOOL - iREVIEW
CN109614262B (zh) 业务校验方法、装置及计算机可读存储介质
CN106575227B (zh) 自动软件更新框架
CN106789249B (zh) 热更新方法、客户端及服务器
CN114528008A (zh) 基于分布式版本控制***的代码管控方法、设备及介质
US20220114478A1 (en) System and method for enhancing inference models based on prediction data
CN109361628A (zh) 报文组装方法、装置、计算机设备和存储介质
CN110865806B (zh) 代码处理方法、装置、服务器及存储介质
CN115454420A (zh) 人工智能算法模型部署***、方法、设备及存储介质
CN112241370A (zh) 一种api接口类的校验方法、***及装置
CN110716804A (zh) 无用资源的自动删除方法、装置、存储介质及电子设备
CN109299124B (zh) 用于更新模型的方法和装置
CN110908907A (zh) Web页面测试方法、装置、设备及存储介质
CN105094857A (zh) 用于应用加载的方法和***
US10311138B2 (en) Preventing partial change set deployments in content management systems
CN110689137A (zh) 参数确定方法、***、介质和电子设备
CN112148762A (zh) 一种实时数据流的统计方法和装置
CN111448551A (zh) 跟踪来自远程设备的应用活动数据并生成用于远程设备的校正动作数据结构的方法和***
US20220365912A1 (en) Data Quality Management System
CN114489704A (zh) 基于策略的版本编译部署方法及装置
CN113867778A (zh) 一种镜像文件的生成方法、装置、电子设备及存储介质
CN112765188A (zh) 配置信息处理方法、配置管理***、电子设备及存储介质
US20240134777A1 (en) Graphical Neural Network for Error Identification

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160330