集群中的有效高速缓存管理的制作方法

文档序号:6496634阅读:154来源:国知局
集群中的有效高速缓存管理的制作方法
【专利摘要】本申请涉及集群中的有效高速缓存管理。一种内容管理系统,具有至少两个内容服务器计算机、对应于每个内容服务器的高速缓存存储器,所述高速缓存存储器具有存储用于由内容服务器显示的页面的高速缓存对象的页面高速缓存、存储用于高速缓存对象的相关性信息的相关性高速缓存以及把相关性信息中的变化复制到其它高速缓存的通知高速缓存。
【专利说明】集群中的有效高速缓存管理
【背景技术】
[0001]内容管理系统允许开发人员通过在线站点遍及互联网公布和刷新提供给用户的内容。这些站点的内容迅速变化并且开发人员不断地公布和更新这些站点。应当指出,如在这里所使用的,术语“站点”包括互联网站点、门户网站、一般公众可访问的站点、密码保护的站点以及在私有域内运行的专属站点及其它。虽然这里的讨论集中在内容管理系统上下文中的改进,但是以下所讨论的改进适用于管理跨几个节点迅速且频繁更新的信息的任何系统。
[0002]通常,内容管理系统具有共享的集中式储存库。包括内容服务器以及本地服务器的系统的每一层都可以具有本地高速缓存。本地高速缓存允许站点迅速显示频繁访问的项而不需要查询中央储存库。这些高速缓存的管理以及确保高速缓存的内容保持最新和有效会消耗大量的系统资源。
[0003]如果没有高速缓存管理,则因为没有办法更新信息或者把信息标记为无效,所以站点可能显示已经过期或改变的信息。高速缓存管理通常涉及在高速缓存与中央储存库之间发送的更新,以确保存储在每一方当中的信息都反映存储在另一方当中的信息。这允许站点依靠高速缓存中的数据并且准确地显示它们。“坏”数据的识别由这种更新过程产生,其中“坏”数据是已经过期或者以别的方式变得无效的数据。
【专利附图】

【附图说明】
[0004]图1示出了内容管理系统的一个例子。
[0005]图2示出了分布式高速缓存体系架构的一种实施例。
[0006]图3示出了使高速缓存中资产失效的方法的一种实施例的流程图。
[0007]图4示出了使高速缓存中具有无效资产的页面失效的方法的一种实施例的流程图。
[0008]图5示出了本地高速缓存结构的一种实施例。
【具体实施方式】
[0009]以下讨论可以使用例子来帮助理解各实施例的结构和操作。这些例子不是要以任何方式限定权利要求的范围并且不应当作出这种解释。
[0010]图1示出了采用分布式高速缓存系统的内容管理系统的一个例子。作为在这里使用的术语,“分布式高速缓存”指包括附连到系统中节点的多个本地高速缓存的高速缓存系统。节点可以包括用于开发的内容服务器、用于公布的内容服务器以及用于被访问者远程访问的卫星服务器。卫星服务器是边缘高速缓存系统,对于高速缓存,它们仅仅是具有其自己的本地高速缓存的其它节点。
[0011]具有变化内容的内容管理系统将频繁地公布变化,并且本文的讨论可以把这称为动态公布。例如,内容管理系统可以包括出售产品的网站。该网站可以包括几个不同的网页,一些页面有可能是实时地填充并显示的。用于出售的产品可以驻留在该站点上几个不同的网页中。例如,服装零售商可以在用于女式服装和鞋子的页面上、在用于运动服装和装备的页面上以及用于所有鞋子的页面上,显示由一双女式跑步鞋组成的条目,该条目也可以被称为资产或高速缓存对象。
[0012]这双鞋代表一个资产。资产可以包括用于填充网页的任何条目。例子可以包括照片、文字、图片等。资产可以具有与其相关联的几个不同属性。在产品的情况下,诸如鞋子的例子,这些可以包括鞋子的图像、它们的价格、品牌名称等等。在一种典型的系统中,如果那些属性中的一个改变,则可以使关于那个产品的页面失效。失效可以在页面级发生,但是也可以在任何高速缓存对象级发生。需要高速缓存的数据量和更新的频率增加了数据库访问时间、对体系架构其它部分的负担以及去除过时信息所花的时间。过时信息的存在导致系统低效并且降低消费者满意度。
[0013]特定网站的用户或访问者将看到系统的生产侧。如图1中所示,显而易见的是内容管理系统10具有几个其它组成部分。开发系统12具有用于公布对系统中资产的变化的内容服务器14。内容服务器具有存储来自数据库15的被频繁访问资产的本地高速缓存。管理和分段(staging)系统18也具有用于向生产系统20公布变化的内容服务器16以及数据库17。生产系统20具有诸如22的内容服务器以及诸如24和26的卫星服务器。用户或访问者29通常将通过卫星服务器访问网站的页面。这些服务器中每一个都具有以独特方式链接到一起的本地高速缓存,充当分布式高速缓存。每个服务器还具有执行包括一组指令并且存储在计算机可读非易失性介质中的程序的一个或多个处理器。
[0014]分布式高速缓存系统的一种实施例在图2中示出。本地高速缓存是基于使用模式和配置填充的,并且高速缓存的量通常受可用存储器或其它资源的限制。但是,这些高速缓存中每一个都不需要为了仍然有效地起作用而整体上具有用于系统的整个高速缓存的视图。变化从一个本地高速缓存广播到其它节点,其中一个节点包括一个服务器及其本地高速缓存。服务器可以包括内容服务器或卫星服务器。内容服务器包括开发人员在其上生成并开发资产形式的内容的服务器。卫星服务器从内容服务器接收高速缓存更新。
[0015]系统体系架构可以采取许多形式。在图2的系统实施例30中,诸如34的内容服务器可以驻留在内容服务器集群32中。诸如34的每个内容服务器具有诸如36的本地高速缓存。本地高速缓存允许被重复访问的数据在存储器中快速访问,从而避免了对数据源38的重复调用,其中数据源38可以包括数据库或网络访问源。
[0016]系统通常还包括诸如40的至少一个卫星服务器。类似于内容服务器,诸如40的每个卫星服务器具有本地高速缓存42和数据源44。如以上所提到的,当诸如“A”的资产的属性在一个内容服务器被更新时,该内容服务器将把该变化传播到卫星服务器以及它自己的本地高速缓存。目前系统的一个性能优点来自于传播的本质,这在下面更具体地描述。当资产的属性改变时,这种改变触发几个事件。图3示出了更新分布式高速缓存的方法的实施例的流程图。
[0017]变化需要传播到系统中的其它高速缓存,使得它们具有更新后的信息。另外,改变的属性可能具有也将改变的相关联的相关性。例如,以上用作例子的鞋子可能由于制造商升高或降低其所有产品价格而具有价格的变化。在高速缓存的一部分当中,随后更具体地描述,资产的不同属性之间的相关性被跟踪。相关性是与这种资产相关联的关键词(key)的列表,在这个例子中是制造商。[0018]当资产发生价格变化时,系统检查高速缓存的相关性部分并且包括与该资产相关联的相关性并且使那些也失效。这些相关性可以采取由包括其页面上那种资产的其它网页组成的高速缓存对象的形式。相关性是存储在相关性高速缓存中的对象。如图5中所示,“对象高速缓存”维护到一组这种相关性的链接。这种链接基于相关性高速缓存的标识符,该标识符是作为“对象高速缓存” 一部分保持的串值。
[0019]图3和4示出了通过执行程序由服务器的一个或多个处理器执行的过程。在图3中,在50资产发生变化。由于开发人员或系统中其它管理员公布的变化,变化将在内容服务器发生。在52,内容服务器把该变化广播到分布式高速缓存中的其它本地高速缓存。此夕卜,在54,内容服务器还将使其自己的高速缓存中的该资产失效。应当指出,这些过程可以同时发生,或者以任何次序发生,本讨论不应当暗示任何特定的次序。
[0020]在56,接收节点接收广播变化并且检查其自己的相关性高速缓存。如果在相关性高速缓存中存在资产标识符,则在58节点把该标识符标记为无效。该标识符可以包括与标识符相关联的标志位,其中该标志位设置成O或1,以便把标识符标记为有效或无效。在一种实施例中,标志包括具有真/假的布尔标志。相关性高速缓存中所存在的资产标识符还进行版本控制,当其在那个高速缓存中创建时指定版本号。所维护的到对象高速缓存中这些标识符的链接也包含版本标识符。这种技术消除了可能在相继的失效操作与添加到相关性高速缓存之间存在的任何竞争条件。
[0021]性能优点是由于在请求这些具有失效资产的页面之前节点不评估具有无效资产的页面。因为失效资产不再对引用该资产的页面可用,所以页面本身也失效。图4示出了用于处理页面请求的过程的一种实施例。在60,节点接收页面请求。在62,该节点检查相关性高速缓存,以确定页面是否具有任何无效资产,从而使该页面无效。如果页面具有有效资产,则系统在64把页面提供给网站访问者。如果页面具有无效资产,这意味着页面是无效的,则在68把页面从高速缓存中去除。
[0022]应当指出,标记为无效的页面仅仅导致在70在接收到页面请求时利用来自数据存储的新信息重新生成页面。否则,页面只是保持让资产标记为无效。一旦重新生成页面,系统就可以在72提供新页面。为了更新相关性高速缓存,在74,在对象高速缓存中存储页面,并且通过把它们存储在相关性高速缓存中来更新其相关性。然后,页面保持有效,直到该页面所链接的资产失效或者页面过期。
[0023]在这个过程中发生两个不同的动作。首先,对象的失效是由于用户编辑、新信息公布或者某种其它动作。其次,从高速缓存发生对高速缓存的对象的读取。在失效发生的情况下,没有高速缓存的数据被真正去除。只是相关性条目被标记为无效。高速缓存对象保留这种相关性,因此它仍然在高速缓存中存在。当高速缓存读取发生时,系统确定它不再有效,并因此没理由让它驻留在高速缓存中。于是,系统在读取之后去除无效对象。它还可以在充当清道夫的清除过程之后去除该对象。去除可以包括清空像哈希表的结构中的单元。另一种实施例可以让系统忽略或覆盖无效性,以便去除它,不让系统考虑。
[0024]这些页面在后续访问时失效并且这样标记。换句话说,在相关性失效之后,多个页面可能变成失效的候选,但是系统不知道或者不关心它们是哪些。系统根本不知道。这在后续访问时计算。这提供了性能的显著增加,系统不必遍历通过(spider through)可能数百万的页面来检查它们是否包含无效链接,并然后这样标记它们。[0025]图5示出了启用以上过程的高速缓存结构的一种实施例。本地高速缓存80具有高速缓存的三个子高速缓存或者分区。这些包括从其提供页面的对象高速缓存82、相关性高速缓存84以及通知高速缓存86。当页面被请求时,对象高速缓存82检查相关性高速缓存84,以检查无效的资产。当变化使资产失效时,通知高速缓存86根据需要把该变化传播到其它集群成员或者传播到卫星服务器高速缓存。它还更新相关性高速缓存。
[0026]更新高速缓存可以在内容服务器与其它内容服务器之间以及内容服务器与卫星服务器之间发生。内容服务器使用通知高速缓存来更新其它内容服务器。页面和相关性不更新,仅仅是通知失效。如以上所提到的,失效仅仅是去除相关性,使页面无效。通常,无效的页面在读操作发生的时候从高速缓存去除。作为替代,后台操作可以周期性地运行,以去除它们。
[0027]内容服务器与卫星服务器之间的更新不同地操作。卫星服务器在典型的读操作中读取页面数据,但是从具体的首部接收相关性。无效化过程可以交错,从而允许页面重新生成以及双缓冲高速缓存。页面的重新生成可以涉及在公布会话期间爬行(crawl to),以便重新生成页面。
[0028]双缓冲高速缓存可以涉及在直播(live)网站上协作使用内容服务器和卫星服务器高速缓存。这确保页面总是保持在高速缓存中,在内容服务器上或者卫星服务器上,以保护内容服务器不会被页面请求超载。这还防止网站显示空页面或者断开的链接。双缓冲高速缓存通过保持远程卫星服务器与内容服务器经HTTP请求通信而发生。卫星服务器将仍然经HTTP请求读取页面数据并且以通常的方式高速缓存。现在,页面数据包括相关性信息,该信息可以采取也流式传输到远程卫星服务器的逗号隔开的资产标识符列表的形式。
[0029]对于远程卫星服务器,页面传播使内容服务器节点和卫星服务器节点能够托管相同的页面,而不需要让每个节点重新生成页面。代替参考数据库来重新生成页面,节点把新生成的和重新生成的页面从这些页面在在其上重新生成并高速缓存的节点接收到它们的本地高速缓存中。高速缓存页面可以触发它们的传播。
[0030]以这种方式,节点可以在磁盘上保留高速缓存并且从故障恢复。分散型体系架构防止瓶颈并且页面传播消除了重新生成页面的需求,同时页面重新生成是后台模式,使得远程卫星服务器能够在系统重新生成页面的同时继续提供页面。
[0031]因而,虽然就这点而言已经描述了监视数据库性能的方法及系统的特定实施例,但是,除在以下权利要求中所阐述的之外,这种具体的参考不应当认为是关于本发明范围的限制。
【权利要求】
1.一种内容管理系统,包括: 至少两个内容服务器计算机; 对应于每个内容服务器的高速缓存存储器,所述高速缓存存储器包括: 页面高速缓存,存储用于由所述内容服务器显示的页面的高速缓存对象; 相关性高速缓存,存储用于所述高速缓存对象的相关性信息;以及 通知高速缓存,把相关性信息中的变化复制到其它高速缓存。
2.如权利要求1所述的内容管理系统,还包括至少一个卫星服务器,所述卫星服务器具有本地高速缓存。
3.如权利要求1所述的内容管理系统,其中对应于内容服务器计算机的高速缓存存储器被集群。
4.如权利要求1所述的内容管理系统,其中页面高速缓存、相关性高速缓存和通知高速缓存包括高速缓存存储器的分区。
5.一种管理分布式存储器系统的计算机实现方法,包括: 维护至少两个高速缓存存储器,每个高速缓存存储器包含至少一个高速缓存对象以及与所述高速缓存对象相关联的相关性; 在其中一个高速缓存存储器接收关于另一个高速缓存存储器中高速缓存对象的更新后的信息; 使所述一个高速缓存存储器中的所述高速缓存对象失效;以及在其后续访问时利用所述相关性确`定所述一个存储器中的其它高速缓存对象是否要失效。
6.如权利要求5所述的方法,其中所述高速缓存存储器包括内容服务器的本地高速缓存和卫星服务器的本地高速缓存。
7.如权利要求6所述的方法,其中所述高速缓存存储器采用双缓冲,其中网页同时驻留在两个存储器中。
8.如权利要求5所述的方法,还包括: 接收对网页的请求;以及 确定所述网页是否具有任何无效的高速缓存对象。
9.如权利要求8所述的方法,其中确定网页是否具有任何无效的高速缓存对象包括检查与高速缓存对象相关联的标志。
10.如权利要求9所述的方法,还包括:如果页面具有无效的高速缓存对象,则从所述高速缓存中去除所述网页。
11.如权利要求10所述的方法,还包括: 生成新页面; 提供所述新页面; 在页面高速缓存中记录所述新页面;以及 在相关性高速缓存中记录与所述新页面相关联的相关性。
12.存储指令的一种或多种非临时性计算机可读介质,当所述指令被处理器执行时,使所述处理器执行一种方法,所述方法包括: 维护至少两个高速缓存存储器,每个高速缓存存储器包含至少一个高速缓存对象以及与所述高速缓存对象相关联的相关性; 在其中一个高速缓存存储器接收关于另一个高速缓存存储器中高速缓存对象的更新后的信息; 使所述一个高速缓存存储器中的所述高速缓存对象失效;以及 在其后续访问时利用所述相关性确定所述一个存储器中的其它高速缓存对象是否要失效。
13.如权利要求12所述的一种或多种非临时性计算机可读介质,其中所述高速缓存存储器包括内容服务器的本地高速缓存和卫星服务器的本地高速缓存。
14.如权利要求12所述的一种或多种非临时性计算机可读介质,其中所述高速缓存存储器采用双缓冲,其中网页同时驻留在两个存储器中。
15.如权利要求12所述的一种或多种非临时性计算机可读介质,还包括: 接收对网页的请求;以及 确定所述网页是否具有任何无效的高速缓存对象。
16.如权利要求12所述的一种或多种非临时性计算机可读介质,其中确定网页是否具有任何无效的高速缓存对象包括检查与高速缓存对象相关联的标志。
17.如权利要求16所述的一种或多种非临时性计算机可读介质,还包括:如果页面具有无效的高速缓存对象,则从高速缓存中去除所述网页。
18.—种程序,使一个或多个处理器执行如权利要求5至11中任何一项所述的方法。
【文档编号】G06F17/30GK103827870SQ201280047462
【公开日】2014年5月28日 申请日期:2012年9月28日 优先权日:2011年9月30日
【发明者】H·S·卡德拉巴陆 申请人:甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1