控制分布式数据的高速缓存操作的方法和系统的制作方法

文档序号:6398379阅读:98来源:国知局
专利名称:控制分布式数据的高速缓存操作的方法和系统的制作方法
技术领域
本发明涉及分布式数据,具体涉及分布式数据的高速缓存操作。
背景技术
高速缓存操作是运行在应用服务器上的应用中所使用的一种常用技术,用于在获得性能和规模的同时减少拥有成本。由于高速缓存操作具有较高的读写比(read to write ratio),所以非常适合于典型的基于Web的事务性应用。例如,在一个联机交易应用中,与买入或卖出股票(写入)相比,花费在观察(读取)股票价格上的时间要多得多。当在一个电子商务应用中有效地采用高速缓存操作时,可以减少到昂贵的后端服务器(例如数据库服务器)的流量或运行在主机上的遗留代码(legacy code)。因此,可以只需较低容量的此类后端服务器,这可以降低拥有该系统的总成本。
大量的Web应用通常使用大型应用服务器群集以适应客户的响应时间要求。在大型群集化的环境中,高速缓存操作在保持缓存数据一致性方面存在挑战。图1中示出了应用服务器所采用的一种常用方法。如图1所示,应用服务器10具有相应的高速缓存12。利用面向消息的中间件(MOM)(message oriented middleware)14在应用服务器群集中的应用服务器实例10之间复制高速缓存的数据和/或数据无效通知。因此,可以在应用服务器10的高速缓存12中复制来自数据库16的数据。该复制可以由MOM 14利用一个消息网络来控制。
如果已知复制数据的成本(通常以等待时间来衡量)比从原始数据源重新创建该数据更低,则在高速缓存12中进行的数据复制成本低、效益高。例如,如果完全复制一个包含一个公司的资产净值的对象费时250ms,而通过与后端数据管理系统交互来计算该公司的资产净值费时2500ms,则首选复制该资产净值对象,而不是重新计算该对象。但是,在高峰时间期间,当应用服务器非常繁忙时,繁忙的CPU和拥塞的网络可能会导致延迟,可能使该资产净值对象总的复制时间超过2500ms。但是,通常是复制(高速缓存)该资产净值对象还是重新计算该资产净值对象的决定是一种静态决定,并不取决于复制的特定情况。因此,通常高速缓存或重新计算该资产净值对象与用于复制和/或重新计算的特定计时无关。
图2中示出了高速缓存分布的另一变形。图2示出了将高速缓冲存储器的数据卸载(off-loading)至一盘高速缓存。因此,如图2所示,应用服务器10的高速缓存12可以向文件系统20写入高速缓存数据以将数据卸载至盘高速缓存。将高速缓存数据卸载至盘可以是一种确保基于存储器的高速缓存不会耗尽存储器的有效方法。如果盘文件存储在一个网络文件系统上,还可以使用盘卸载而在应用服务器群集的服务器10之间分配高速缓存数据。就上述复制而言,通常,是否将高速缓存数据卸载至盘的决定是一种静态决定,并不依赖于数据卸载的特定情况。

发明内容
本发明的实施例基于数据的特性、数据源的特性以及高速缓存的特性,通过动态地确定是否和/或在何处高速缓存分布式数据而提供了对分布式数据的高速缓存的控制,以便提供是否和/或在何处高速缓存该数据的指示。基于该指示可以选择性地高速缓存该数据。此外,基于该指示,可以将该数据高速缓存至存储器、盘,在群集内复制和/或在其它设备/存储单元中进行高速缓存。
在本发明的特定实施例中,数据的特性包括数据被存取的频繁程度。数据源的特性可以包括重新计算数据需要多长时间和/或复制数据需要多长时间。高速缓存的特性可以包括检索一个高速缓存项需要多长时间。
在本发明的进一步的实施例中,动态地确定是否和/或在何处高速缓存分布式数据包括确定一个预测的最大高速缓存存取数、确定预测的由处理对应于分布式数据的高速缓存项的高速缓存命中所消耗的最大时间、确定复制分布式数据的时间(r)和确定生成分布式数据的时间(c)。如果生成分布式数据的时间、复制分布式数据的时间以及预测的由处理高速缓存命中所消耗的最大时间的和小于预测的最大高速缓存存取数与生成分布式数据的时间的乘积,则所述指示被设置为表示高速缓存该分布式数据。
此外,还确定对应于分布式数据的高速缓存项的生存时间(TTL)、处理对应于分布式数据的高速缓存命中的时间(h)以及对应于分布式数据的高速缓存项的高速缓存存取的预测频率(f)。在这种情况下,可以通过确定TTL*f来确定预测的最大高速缓存存取数。还可以通过确定h*(TTL*f)-1来确定预测的由处理对应于分布式数据的高速缓存项的高速缓存命中所消耗的最大时间。
在本发明的进一步的实施例中,所述高速缓存包括盘高速缓存,所述高速缓存数据包括将高速缓存的存储器内容卸载至所述盘高速缓存。
在本发明的其它实施例中,确定预测的最大高速缓存存取数包括监视高速缓存存取以确定对应于分布式数据的高速缓存项的更新速率。确定处理对应于分布式数据的高速缓存命中的时间(h)可以包括监视高速缓存存取以确定该时间(h)。确定复制分布式数据的时间(r)可以包括监视数据复制操作以确定该时间(r)。最后,确定生成分布式数据的时间(c)可以包括监视分布式数据的生成以确定该时间(c)。
而且,正如本领域的普通技术人员将理解的那样,虽然以上主要参考方法方面进行了描述,但是,本发明可以作为方法、装置/系统和/或计算机程序产品来实现。


图1是利用数据复制的常规应用服务器群集的框图;图2是利用盘高速缓存的常规应用服务器群集的框图;图3是适合于根据本发明的实施例的高速缓存控制系统中的数据处理系统的框图;图4是结合了根据本发明的实施例的高速缓存控制的系统的更详细的框图;图5是一个示出了根据本发明的实施例的用于高速缓存控制的操作的流程图;以及图6是一个示出了根据本发明的另外的实施例的用于高速缓存控制的操作的流程图。
具体实施例方式
以下将参考其中示出了本发明示例性实施例的附图对本发明进行更加完整的说明。但是,本发明可以以多种形式实现并且不应被理解为限于本文中公开的实施例,相反,这些实施例的提供是为了使本公开彻底而完整,并向本领域的普通技术人员完整表达本发明的范围。在全文中,相同的标号指相同的部分。
正如本领域的普通技术人员将理解的那样,本发明可以作为方法、数据处理系统或计算机程序产品实现。因此,本发明可以采取完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式,所有三种形式在本文中总称为“电路”或“模块”。此外,本发明可以采取在其中包含计算机可用程序代码的计算机可用存储介质上的计算机程序产品的形式。可以利用任何适合的计算机可读介质,包括硬盘、CD-ROM、光存储设备、传输介质(例如支持因特网或内部网的那些介质)或磁性存储设备。
用于执行本发明的操作的计算机程序代码可以用面向对象的编程语言(例如Java、Smalltalk或C++)编写。但是,用于执行本发明的操作的计算机程序代码还可以用常规过程化编程语言(例如“C”编程语言)编写。该程序代码可以完全地在用户的计算机上、部分地在用户的计算机上、作为独立的软件包、部分地在用户的计算机上和部分地在远程计算机上或完全在远程计算机上执行。在后者的情况下,该远程计算机可以经由局域网(LAN)或广域网(WAN)连接到用户的计算机,或与外部计算机建立连接(例如,使用因特网服务提供商经由因特网建立连接)。
以下将参考根据本发明的实施例的流程图的示例性描述和/或方法、装置(系统)和计算机程序产品的框图对本发明进行说明。应当理解,流程图的示例性描述和/或框图中的每个框以及流程图的示例性描述和/或框图中的各个框的组合可以由计算机指令实现。这些计算机指令可以提供给通用计算机的处理器、专用计算机的处理器或其它可编程数据处理装置以产生一种机器,以使得通过计算机的处理器或其它可编程数据处理装置执行的这些指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。
这些计算机程序指令还可以存储在计算机可读存储器中,所述计算机可读存储器可以指导计算机或其它可编程数据处理装置以特定的方式运行,以使得存储在计算机可读存储器中的所述指令产生一件产品,该产品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的指令单元。
所述计算机程序指令还可以加载到计算机或其它可编程数据处理装置上,引起一系列操作步骤在计算机或其它可编程装置上执行,以产生一计算机实现的过程,以使得在计算机或其它可编程装置上执行的所述指令提供用于实现流程图和/或框图的一个或多个框中指定的功能/动作的步骤。
现在将参考附图对本发明的各种实施例进行说明。本发明的实施例可以被结合到上述参考图1和2讨论的用于复制和/或卸载数据的常规系统中。但是,本发明的实施例还可以用于其它系统中并具有其它配置,其中是否高速缓存数据的判定可以基于对高速缓存该数据的效率的估计而作出。因此,本发明不应被理解为限定用于例如图1和2中示出的那些系统中,而是可以用于任何利用分布式数据的系统中。在本文中,分布式数据是可以被高速缓存以供将来使用或被重新生成以用于将来的数据。本发明的实施例可以动态地确定高速缓存或重新生成是否更高效,并且由此控制是否和/或在何处(在存储器高速缓存和/或盘高速缓存中)高速缓存数据。
图3中示出了一个根据本发明的实施例的适于提供高速缓存控制的数据处理系统130的示例性实施例。这样的数据处理系统可以作为例如图1和2的MOM 14和/或应用服务器10提供。因此,图3的数据处理系统130是示例性的可以提供高速缓存控制的数据处理系统,但是,本发明的实施例可以由任何类型的能够执行本文中描述的操作的数据处理系统提供。
数据处理系统130可以包括与处理器138通信的输入设备132(例如键盘或数字小键盘)、显示器134和存储器136。数据处理系统130还可以包括也与处理器138通信的扬声器144和(多个)I/O数据端口146。I/O数据端口146可用于在数据处理系统130和另一计算机系统或网络之间传输信息。这些组件可以是常规的组件,例如那些用于许多常规数据处理系统中的组件,所述常规组件可以被配置成按照本文中描述的来运行。
图4是示出了根据本发明的实施例的系统、方法和计算机程序产品的数据处理系统的框图。处理器138经由地址/数据总线248与存储器136通信。处理器138可以是任何可从市面上购买的或定制的微处理器。存储器136代表存储器设备的总体分层结构,其中包含用于实现数据处理系统130的功能的软件和数据。存储器136可以包括,但不限于,以下类型的装置高速缓存、ROM、PROM、EPROM、EEPROM、闪存、SRAM和DRAM。
如图4所示,存储器136可以包括数据处理系统130中使用的若干种类的软件和数据操作系统252、应用程序254、输入/输出(I/O)设备驱动程序258和数据256。正如本领域的普通技术人员将理解的那样,操作系统252可以是任何适合与数据处理系统一起使用的操作系统,例如纽约州阿蒙克(Armonk)的国际商业机器公司的OS/2、AIX或390系统,华盛顿州雷蒙德(Redmond)的微软公司的Windows95、Windows98、Windows2000或Windows XP,以及Unix或Linux。I/O设备驱动程序258通常包括由应用程序254通过操作系统252访问的软件例程,用于与诸如I/O数据端口146和某些存储器136组件之类的设备进行通信。应用程序254是实现数据处理系统130的各种功能的示例性程序并且优选地包括至少一个支持根据本发明的实施例的操作的应用程序。最后,数据256代表由应用程序254、操作系统252、I/O设备驱动程序258和其它可以驻留在存储器136中的软件程序所使用的静态和动态数据。
如图4进一步所见,应用程序254可以包括一个高速缓存控制模块260。该高速缓存控制模块260可以执行本文中描述的操作,用于确定是否高速缓存数据和/或在何处进行高速缓存。存储器136的数据部分256,如图4的实施例中所示,可以可选地包括高速缓存控制数据262。该高速缓存控制数据262可以由高速缓存控制模块260利用,以用于确定是高速缓存还是重新生成该数据更有效率,并由此动态地控制高速缓存判定。该高速缓存控制数据262还可以由所述高速缓存控制模块260利用,以用于确定在何处进行高速缓存(例如,存储器、磁盘或在所述群集中复制)。
尽管本发明是参考例如图4中作为应用程序的高速缓存控制模块260进行说明的,但本领域的普通技术人员将理解,还可以利用其它配置,该配置仍然得益于本发明的指导。例如,该高速缓存控制模块260还可以被结合到操作系统252、I/O设备驱动程序258或数据处理系统130的其它此类逻辑部分中。因此,本发明不应被理解为仅限于图4中的配置,而是旨在包括任何能够执行本文中描述的操作的配置。
现在将参考图5和6的流程图对根据本发明的实施例的操作进行说明。图5和/或6的操作可以由例如图4的高速缓存控制模块260执行。如图5所示,确定要被高速缓存的数据的特性(框500)。此类特性可以包括,例如,数据的生存时间(TTL)和数据被存取的频率(f)。此类特性可以被动态地确定或被预先建立。在本发明的特定实施例中,TTL信息可以基于用户输入直接进行计算和/或通过观察和记录(监视)特定高速缓存项的更新速率来确定。高速缓存存取的频率可以基于特定项的存取模式或高速缓存数据的类型进行计算和/或采样。
还确定要被高速缓存的数据源的特性(框502)。此类特性可以包括,例如,重新计算该数据要花费多长时间。此类确定可以基于对数据生成的监视而动态地做出。还确定高速缓存的特性(框504)。此类特性可以包括,例如,复制/卸载该数据要花费多长时间和/或检索一个高速缓存项要花费多长时间。这些特性可以例如通过在执行复制/卸载数据和/或高速缓存检索时采样或以其它方式监视系统来确定,以便这些特性可以在条件变化时被更新。
估计被确定的特性(框506)以确定高速缓存该数据是否比重新生成该数据更高效,并且如果是更高效的话,确定在何处高速缓存该数据。例如,高速缓存或不高速缓存的判定可以利用系统负载统计数据、频率和响应时间来确定分布式高速缓存的配置。基于对上述信息的估计可以做出判定。例如,如果该数据可以由所述群集中的单个节点迅速计算出来,则不分布该数据可能更高效。如果系统正在高峰负载期间或如果要复制的数据量很大,造成复制中的延迟,则复制可能不是处理该数据的最高效的方法。对于将数据卸载至盘高速缓存,可以做出类似的确定。还有,如果数据更新频繁,则重新生成该数据可能比分布该数据更高效。因此,复制可能效率不高。最后,从高速缓存中检索数据通常需要花费时间计算高速缓存关键字以及物理地从该高速缓存中检索该项。因此,如果高速缓存等待时间过长,则通过高速缓存分布该数据可能不会更高效。
如果高速缓存更高效(框508),则高速缓存该数据(框510),例如,通过设置应该高速缓存该数据的指示并利用该指示使用常规技术高速缓存该数据。如果高速缓存并不高效(框508),则不高速缓存该数据(框512),例如,通过设置不应该高速缓存该数据的指示并利用该指示使用常规技术不对该数据进行高速缓存。
图6示出了可以由例如图4的高速缓存控制模块260执行的根据本发明的另外的实施例的用于控制高速缓存的操作。如图6所示,将确定一个预测的生成要被高速缓存的数据要花费的时间(c)(框600)。这样的预测可以例如通过监视数据的生成并利用该信息确定预测时间(c)来做出。也可以利用其它用于确定时间(c)的技术。此数据可以,例如,作为图4的高速缓存控制数据262来存储。
还确定复制和/或将数据卸载至盘的预测时间(r)(框602)。这样的预测可以例如通过监视复制和/或卸载数据并利用该信息确定预测时间(r)来做出。也可以利用其它用于确定时间(r)的技术。此数据可以,例如,作为图4的高速缓存控制数据262来存储。据此,可以做出是否和/或在何处高速缓存的决定。
还确定数据的生存时间(TTL)(框604)。这样的确定可以例如通过基于用户输入直接计算TTL和/或通过监视特定高速缓存项的更新速率来做出。因此,可以例如利用对应于该数据的高速缓存项的平均更新计时确定预计的TTL。也可以利用其它用于确定高速缓存项的TTL的技术。此数据可以,例如,作为图4的高速缓存控制数据262来存储。
还确定处理高速缓存命中的时间(h)(框606)。这样的确定可以例如通过监视高速缓存存取时间来做出。被监视的高速缓存存取时间可以是总的存取时间或对应于该数据的高速缓存项的存取时间。因此,可以例如利用平均高速缓存存取时间或对应于该数据的高速缓存项的实际或平均高速缓存存取时间确定预计的时间(h)。也可以利用其它用于确定时间(h)的技术。此数据可以,例如,作为图4的高速缓存控制数据262来存储。
还确定处理高速缓存存取的频率(f)(框608)。这样的确定可以例如通过基于对特定项的存取模式或被高速缓存的数据的类型进行计算和/或采样来做出。也可以利用其它用于确定时间(f)的技术。此数据可以,例如,作为图4的高速缓存控制数据262来存储。
以上确定的值被用于确定是高速缓存该数据、在所述群集中复制该被高速缓存的数据,还是将该被高速缓存的数据存储到盘上。特别地,将判定c+r+(h*((TTL*f)-1))是否小于c*(TTL*f)(框610)。可以使用r的值重复地做出判定(r的值等于从本地高速缓存检索该数据的时间、在所述群集中复制该数据的时间或将该高速缓存项卸载到盘上的时间),用于由此确定是否和/或在何处进行高速缓存。如果小于,则高速缓存该数据(框612),如果不小于,则不高速缓存该数据(框614)。如进一步说明的那样,存取频率与高速缓存项的生存时间的乘积(TTL*f)确定了在高速缓存项生存期间预测的高速缓存存取数。处理高速缓存命中的总时间由h*((TTL*f)-1)给出。因此,从高速缓存获取内容的总时间由生成数据的时间、复制数据的时间和处理高速缓存命中时间的和给出,其可以表示为c+r+(h*((TTL*f)-1))。
如果数据没有被高速缓存,重新生成该数据的总时间等于生成该数据的时间与所述预测的数据的存取数的乘积,即c*(TTL*f)。如果重新生成该数据的总时间大于从高速缓存获取内容的总时间,则数据被高速缓存可能更高效,否则,重新生成该数据可能更高效。
作为实例,如果数据的TTL为10秒钟,生成该数据的时间(c)为0.3秒钟,存取频率(f)为每秒钟3次命中,复制或卸载该数据的时间(r)为1秒钟,处理一次高速缓存命中的时间(h)为0.1秒钟,则c+r+(h*((TTL*f)-1))为4.2,c*(TTL*f)的值为9。因此,该数据将被高速缓存。
图1至6的流程图和框图示出了根据本发明的各种实施例的用于自主高速缓存控制的系统、方法和计算机程序产品的可能的实施方式的体系结构、功能和操作。在这一点上,流程图或框图中的每个框可以代表一个模块、程序段或部分代码,它们包含一条或多条用于实现指定逻辑功能的可执行指令。还应注意,在某些替代实施方式中,框中标注的功能可能与图中标注的功能的顺序不同。例如,取决于所涉及的功能,连续示出的两个框可能实际上被基本同时执行,或者所述的框有时可能以相反的顺序被执行。还应理解,框图和/或流程图的示例性描述的每个框,以及框图和/或流程图的示例性描述中的各框的组合可以由专用的基于硬件的系统实现,该系统执行专用硬件和计算机指令的指定功能、动作或其组合。
在附图和说明书中,公开了本发明的典型示例性实施例,尽管采用了特定术语,但这些术语仅在一般和说明的意义上使用,并非旨在进行限定,在附带的权利要求书中阐明了本发明的范围。
权利要求
1.一种控制分布式数据的高速缓存的方法,所述方法包括基于数据的特性、数据源的特性以及高速缓存的特性,动态地确定是否和/或在何处高速缓存该分布式数据,以便提供一个是否高速缓存该数据的指示;以及基于该指示选择性地高速缓存该数据。
2.如权利要求1所述的方法,其特征在于,所述数据的特性包括该数据被存取的频繁程度。
3.如权利要求1所述的方法,其特征在于,所述数据源的特性包括重新计算该数据要花费多长时间和/或复制该数据要花费多长时间。
4.如权利要求1所述的方法,其特征在于,所述高速缓存的特性包括检索一个高速缓存项要花费多长时间。
5.如权利要求1所述的方法,其中动态地确定是否和/或在何处高速缓存该分布式数据,包括确定预测的最大高速缓存存取数;确定预测的由处理对应于该分布式数据的高速缓存项的高速缓存命中所消耗的最大时间;确定复制该分布式数据的时间(r);确定生成该分布式数据的时间(c);以及如果生成该分布式数据的时间、复制该分布式数据的时间以及预测的由处理高速缓存命中所消耗的最大时间的和小于预测的最大高速缓存存取数与生成该分布式数据的时间的乘积,则设置所述指示,以指示高速缓存该分布式数据。
6.如权利要求1所述的方法,其特征在于,相对于时间(t)重复地执行设置所述指示,该时间(r)等于从本地高速缓存检索该分布式数据的时间、在群集中复制该分布式数据的时间和将该分布式数据卸载到盘上的时间,以便由此确定是否和/或在何处高速缓存该分布式数据。
7.如权利要求5所述的方法,进一步包括确定对应于该分布式数据的所述高速缓存项的生存时间(TTL);确定处理一个对应于该分布式数据的高速缓存命中的时间(h);确定对应于该分布式数据的所述高速缓存项的预测的高速缓存存取频率(f);其中确定预测的最大高速缓存存取数包括确定TTL*f;以及其中确定预测的由处理对应于该分布式数据的高速缓存项的高速缓存命中所消耗的最大时间包括确定h*(TTL*f)-1。
8.如权利要求1所述的方法,其特征在于,所述高速缓存包括一盘高速缓存,并且其中,高速缓存该数据包括将高速缓存的存储器内容卸载到该盘高速缓存。
9.如权利要求5所述的方法,其特征在于,确定预测的最大高速缓存存取数包括监视高速缓存存取以确定对应于该分布式数据的高速缓存项的更新速率。
10.如权利要求7所述的方法,其特征在于,确定处理一个对应于该分布式数据的高速缓存命中的时间(h)包括监视高速缓存存取以确定该时间(h)。
11.如权利要求5所述的方法,其特征在于,确定复制该分布式数据的时间(r)包括监视数据复制操作以确定该时间(r)。
12.如权利要求5所述的方法,其特征在于,确定生成该分布式数据的时间(c)包括监视该分布式数据的生成以确定该时间(c)。
13.一种用于控制分布式数据的高速缓存的系统,所述系统包括用于基于数据的特性、数据源的特性以及高速缓存的特性动态地确定是否和/或在何处高速缓存该分布式数据,以便提供一个是否高速缓存该数据的指示的装置;以及用于基于该指示选择性地高速缓存该数据的装置。
14.如权利要求13所述的系统,其特征在于,用于动态地确定是否和/或在何处高速缓存该分布式数据的装置,包括用于确定预测的最大高速缓存存取数的装置;用于确定预测的由处理对应于该分布式数据的高速缓存项的高速缓存命中所消耗的最大时间的装置;用于确定复制该分布式数据的时间(r)的装置;用于确定生成该分布式数据的时间(c)的装置;以及用于如果生成该分布式数据的时间、复制该分布式数据的时间以及预测的由处理高速缓存命中所消耗的最大时间的和小于预测的最大高速缓存存取数与生成该分布式数据的时间的乘积,则设置所述指示,以指示高速缓存该分布式数据的装置。
15.如权利要求14所述的系统,进一步包括用于确定对应于该分布式数据的所述高速缓存项的生存时间(TTL)的装置;用于确定处理一个对应于该分布式数据的高速缓存命中的时间(h)的装置;用于确定对应于该分布式数据的所述高速缓存项的预测的高速缓存存取频率(f)的装置;其中用于确定预测的最大高速缓存存取数的装置包括用于确定TTL*f的装置;以及其中用于确定预测的处理对应于该分布式数据的高速缓存项的高速缓存命中所消耗的最大时间的装置包括用于确定h*(TTL*f)-1的装置。
16.如权利要求13所述的系统,其特征在于,所述高速缓存包括一盘高速缓存,并且其中,用于选择性地高速缓存该数据的装置包括用于将高速缓存的存储器内容卸载到该盘高速缓存的装置。
17.一种用于控制分布式数据的高速缓存的计算机程序产品,所述计算机程序产品包括其中包含计算机可读程序代码的计算机可读介质,所述计算机可读程序代码包括配置成基于数据的特性、数据源的特性以及高速缓存的特性动态地确定是否和/或在何处高速缓存该分布式数据,以便提供一个是否高速缓存该数据的指示的计算机可读程序代码;以及配置成基于该指示选择性地高速缓存该数据的计算机可读程序代码。
18.如权利要求17所述的计算机程序产品,其特征在于,所述配置成动态地确定是否和/或在何处高速缓存该分布式数据的计算机可读程序代码,包括配置成确定预测的最大高速缓存存取数的计算机可读程序代码;配置成确定预测的由处理对应相应于该分布式数据的高速缓存项的高速缓存命中所消耗的最大时间的计算机可读程序代码;配置成确定复制该分布式数据的时间(r)的计算机可读程序代码;配置成确定生成该分布式数据的时间(c)的计算机可读程序代码;以及配置成如果生成该分布式数据的时间、复制该分布式数据的时间以及预测的由处理高速缓存命中所消耗的最大时间的和小于预测的最大高速缓存存取数与生成该分布式数据的时间的乘积,则设置所述指示,以指示高速缓存该分布式数据的计算机可读程序代码。
19.如权利要求18所述的计算机程序产品,进一步包括配置成确定对应于该分布式数据的所述高速缓存项的生存时间(TTL)的计算机可读程序代码;配置成确定处理一个对应于该分布式数据的高速缓存命中的时间(h)的计算机可读程序代码;配置成确定对应于该分布式数据的所述高速缓存项的预测的高速缓存存取频率(f)的计算机可读程序代码;其中配置成确定预测的最大高速缓存存取数的计算机可读程序代码包括配置成确定TTL*f的计算机可读程序代码;以及其中配置成确定预测的由处理对应于该分布式数据的高速缓存项的高速缓存命中所消耗的最大时间的计算机可读程序代码包括配置成确定h*(TTL*f)-1的计算机可读程序代码。
20.如权利要求17所述的计算机程序产品,其特征在于,所述高速缓存包括一盘高速缓存,并且其中,配置成选择性地高速缓存该数据的计算机可读程序代码包括配置成将高速缓存的存储器内容卸载到该盘高速缓存的计算机可读程序代码。
全文摘要
基于数据的特性、数据源的特性以及高速缓存的特性,通过动态地确定是否和/或在何处高速缓存分布式数据来控制该分布式数据的高速缓存,以便提供一个是否高速缓存该数据的指示。可以基于该指示选择性地高速缓存该数据。
文档编号G06F9/46GK1577276SQ200410034138
公开日2005年2月9日 申请日期2004年4月22日 优先权日2003年7月11日
发明者G·A·科莫, B·K·马丁 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1