动态变更数据高速缓冲存储器中的存活时间值的制作方法

文档序号:6377208阅读:103来源:国知局
专利名称:动态变更数据高速缓冲存储器中的存活时间值的制作方法
技术领域
本发明涉及数据存储,更具体地,涉及响应成本因素,变更数据高速缓冲存储器中的存活时间(TTL)值。
背景技术
高速缓冲存储器是一种透明地保存数据以致能够更快地服务于未来对该数据的请求的内存存储组件。保存的数据可以是先前计算的值,或者保存在别处的值的副本。由于高速缓冲存储器的大小较小,因此一般存在比可用的内存存储量更多的数据。从而,数据高速缓冲存储器通常实现诸如存活时间(TTL)、最近最少使用(LRU)或者最不常用(LFU)之类的逐出策略,每种逐出策略通常根据客户端对过期数据的容限和高速缓冲存储器中的可用空间的数量来定义固定值。逐出策略不考虑一旦数据已被逐出,如果请求该数据,那么重新创建该数据的代价。时常理想的是通过配置处理,在预期的或者实际的更高流量期间,临时增大高速缓冲存储器的大小,从而增大逐出策略窗口。还存在在高速缓冲存储器中重新创建数据的成本超过读出过期数据的成本的使用情况。例如,如果数据库是不能到达的,或者到数据库的连接已饱和,那么与使用户无限期地等待或者遭受连接超时(这会把数据库问题传递到前端系统)相比,使逐出策略被临时禁用或者增大会更加有益。

发明内容
按照本发明的一个实施例,动态调整保存在数据网格中的内存中的数据对象的TTL值。设定过期数据容许策略。计算报告重新创建和重新保存该数据对象的成本的度量,以及根据计算的度量,调整TTL值。按照本发明的一个实施例,计算机系统动态调整保存在数据网格中的内存中的数据对象的TTL值。计算机系统包括处理器,和连接到所述处理器的存储器。存储器被用指令编码,当被执行时,所述指令包含用于设定过期数据容许策略的指令。所述指令还包含用于计算报告重新创建和重新保存该数据对象的成本的度量,以及根据所述度量,调整TTL值的指令。按照本发明的一个实施例,计算机程序产品动态调整保存在数据网格中的内存中的数据对象的TTL值。计算机程序产品包括具有计算机可读程序代码的计算机可读存储介质。所述计算机可读程序代码包含配置成设定过期数据容许策略的计算机可读程序代码。所述计算机可读程序代码还被配置成计算报告重新创建和重新保存该数据对象的成本的度量,以及根据所述度量,调整TTL值。


图1是其中可以实现本发明的实施例的计算机硬件的图解说明;图2是现有技术中已知的内存数据存储系统;
图3是按照本发明的一个实施例的流程图;和图4图解说明按照本发明的一个实施例的内存数据存储系统的变化的提取时间和复制。
具体实施例方式本领域的技术人员会理解,本发明的各个方面可被具体体现成系统、方法或计算机程序产品。因而,本发明的各个方面可以采取纯硬件实施例,纯软件实施例(包括固件、驻留软件、微代码等),或者结合这里通常可都被称为“电路”、“模块”或“系统”的软件方面和硬件方面的实施例的形式。此外,本发明的各个方面可以采取包含在一个或多个计算机可读介质中的计算机程序产品的形式,所述一个或多个计算机可读介质具有包含于其中的计算机可读程序代码。可以利用一个或多个计算机可读介质(存储器或装置)的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电、磁、光、电磁、红外或半导体系统、设备或装置,或者它们的任意适当组合。计算机可读存储介质的更具体例子(非穷举列表)可包括:具有一条或多条导线的电连接、可移植计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPR0M或闪速存储器)、光纤、可移植光盘只读存储器(CD-ROM)、光存储装置、磁存储装置,或者它们的任意适当组合。在本文的上下文中,计算机可读存储介质可以是能够包含或保存供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的程序的任何有形介质。计算机可读信号介质可包括计算机可读程序代码包含在其中,例如,包含在基带中,或者体现为载波的一部分的传播数据信号。这种传播信号可以采取任意各种形式,包括但不限于电磁、光,或者它们的任意适当组合。计算机可读信号介质可以是不是计算机可读存储介质,但能够传递、传播或传送供指令执行系统、设备或装置使用的,或者结合指令执行系统、设备或装置使用的程序的任何计算机可读介质。包含在计算机可读介质上的程序代码可利用任何适当的介质传送,包括但不限于无线、有线、光缆、RF等,或者它们的任何适当组合。可用一种或多种编程语言,包括诸如Java、Smalltalk、C++之类的面向对象编程语言,和诸如“C”编程语言或类似编程语言之类的常规过程编程语言的任意组合,编写执行本发明的各个方面的操作的计算机程序代码。程序代码可完全在用户的计算机上运行,部分在用户的计算机上运行,作为独立的软件包,部分在用户的计算机上运行并且部分在远程计算机上运行,或者完全在远程计算机或服务器上运行。在后一情况下,远程计算机可通过任意类型的网络,包括局域网(LAN)或广域网(WAN),连接到用户的计算机,或者可实现与外部计算机的连接(例如,利用因特网服务提供商,经因特网实现与外部计算机的连接)。下面参考按照本发明的各个实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图,说明本发明的各个方面。要明白流程图和/或方框图的每个方框,以及流程图和/或方框图中的各个方框的组合可用计算机程序指令实现。这些计算机程序指令可被提供给通用计算机,专用计算机或者其它可编程数据处理设备的处理器,从而产生机器,以致借助计算机或其它可编程数据处理设备的处理器运行的指令产生实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机程序指令也可被保存在计算机可读介质中,所述计算机可读介质能够指令计算机、其它可编程数据处理设备或者其它装置按特定方式运行,以致保存在计算机可读介质中的指令产生制成品,所述制成品包括实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的指令。计算机程序指令也可被加载到计算机,其它可编程数据处理设备或其它装置上,使得在计算机、其它可编程设备或其它装置上执行一系列的操作步骤,从而产生计算机实现的处理,以致在计算机或其它可编程设备上执行的指令提供实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的处理。附图中的流程图和方框解说明按照本发明的各个实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能和操作。在这方面,流程图或方框图中的每个方框可代表包含实现指定逻辑功能的一个或多个可执行指令的模块、程序段或一部分代码。另外应注意,在一些备选实现中,在方框中表示的功能可不按照附图中所示的顺序发生。例如,接连表示的两个方框事实上可以基本同时地执行,或者各个方框有时可按照相反的顺序执行,取决于所涉及的功能。另外要注意方框图和/或流程图的每个方框,以及方框图和/或流程图中的各个方框的组合可用实现指定功能或动作的基于专用硬件的系统,或者专用硬件和计算机指令的组合实现。这里使用的术语只是用于说明具体的实施例,并不意图限制本发明。这里使用的单数形式意图还包括复数形式,除非上下文明确地另有所示。另外要明白当用在本说明书中时,术语“包含”指定所陈述的特征、整数、步骤、操作、部件和/或组件的存在,不过并不排除一个或多个其它特征、整数、步骤、操作、部件、组件和/或它们的组合的存在或增加。这里使用的术语只是用于说明具体的实施例,并不意图限制本发明。这里使用的单数形式意图还包括复数形式,除非上下文明确地另有所示。另外要明白当用在本说明书中时,术语“包含”指定所陈述的特征、整数、步骤、操作、部件和/或组件的存在,不过并不排除一个或多个其它特征、整数、步骤、操作、部件、组件和/或它们的组合的存在或增加。图1是适合于执行动态变更数据高速缓冲存储器中的存活时间值的计算机软件的计算机系统10的一个例子。适合于执行所述软件的其它处理装置可以是无线电话机、个人数字助手(PDA)、便携式计算机、智能遥控器、或者能够执行所述软件的任何其它处理装置。计算机系统10是按照安装在计算机系统10上的适当操作系统运行的一种计算机系统。计算机系统10的组件包括计算机12、键盘22、鼠标24和视频显示器20。计算机12包括处理器26、存储器28、输入/输出(I/O)接口 30和32、视频接口 34,和存储装置36。处理器26是执行操作系统和按照操作系统运行的计算机软件的中央处理器(CPU)。存储器28包括随机存取存储器(RAM)和只读存储器(ROM),是按照处理器26的指令使用的。视频接口 34连接到视频显示器20,并提供视频信号,以便显示在视频显示器20上。操作计算机12的用户输入是从键盘22和鼠标24提供的。存储装置36可包括磁盘驱动器或者任何其它适当的存储介质,如上所述。计算机12的每个组件连接到内部总线40,内部总线40包括数据总线、地址总线和控制总线,从而使计算机12的组件可通过总线40相互通信。计算机系统10可利用到网络(表示成因特网18)的通信通道38,通过输入/输出(I/O)接口 32连接到一个或多个其它的类似计算机。一个或多个服务器19可通过诸如因特网18之类的网络,连接到计算机12。服务器19可包括和计算机12相同的物理布置,可以和计算机12共处一地,或者可以是计算机12的一部分。计算机软件可以被记录在计算机可读存储介质上,在这种情况下,计算机系统10从存储装置36访问计算机软件程序。另一方面,计算机12可以直接从因特网18访问计算机软件。在任何一种情况下,用户都能够利用键盘22和鼠标24操作在计算机12上运行的编程计算机软件,与计算机系统10交互作用。现在参见图2,图中图解说明按照现有技术的客户端-服务器环境200。多个客户端202互连到主机系统204。主机系统204可包括在多个主服务器208、210和212上的多个应用服务器206。每个应用服务器206具备高速缓冲存储器214。每个应用服务器206本身可以是客户端,可以连接到一组互连的Java虚拟机(JVM),所述一组互连的Java虚拟机(JVM)共同构成数据网格216(JVM提供保存对象的地址空间(勉强可称为容器),从而参与数据网格的内存数据网格(MDG)的用途是提供保存java对象的容器)。应用服务器206类似客户端地连接到网格216,并寻求存在于网格216中的数据对象。对于网格216中的这些数据对象,保持一个计时器(称为存活时间或者TTL)。保持所述计时器,以防止数据对象搁置不用,永远占用空间(即使不被需要),从而消耗有限的内存存储资源。如果数据对象被频繁请求,或者取回数据的成本加上复制/拷贝数据的成本较高(这意味过多的资源消耗),那么成本较低的是增大TTL,从而应用能够继续访问网格216中的数据对象。主机数据库218为应用服务器206使用的数据提供持久存储。本领域中已知,高速缓冲存储器214,从而,数据网格216被用于保存有益于应用服务器206的计算效率的数据,即,与数据库218中的数据相比,保存在高速缓冲存储器214中的数据被更快地访问。影子数据库220用作数据库218的备份(数据库218的副本),和用于获得管理功能,比如报告的数据。每次对象被更新/逐出/无效时,对象的任何同步或异步副本受到影响,从而必须径直到达后端数据库(218),以提取该数据,进行关于该数据的任何计算,和产生副本(以合存储在数据网格216中的多个高速缓冲存储器214中,和存储在备份数据库220中),这增大了网格216的运行的性能成本。企业可决定在数据网格内或者跨越数据网格需要多少同步和异步副本,以确保较高的可用性和数据网格一致性。不过,标准的IMDG实现仅仅根据从后端数据库提取数据所用的时间,设定TTL,而不考虑在数据网格或备份/影子数据库内创建副本的附加成本。从而,TTL是企业定义的网格中的对象的寿命,它可包括从单个后端数据库提取数据所用的时间。本发明的实施例并不仅仅使用从后端数据库的提取时间,而且还包括复制或产生副本和进行清除的成本。成本的变化程度(例如,同步复制或拷贝比异步复制/拷贝更昂贵),和没有任何可用副本的成本并不仅仅是从数据库提取数据的成本。动态地增大高速缓冲存储器中的对象的TTL(或者降低TTL或使TTL保持不变)的决策以在网格中重新填充该数据的总成本为基础。
这里,总成本被定义成从后端数据库提取数据的成本,加上异步/同步复制的成本,再加上清除成本(数据逐出的时间(DEv)+除去复制物的时间(DRr) (Async或Sync))。如果在网格中再水合或者重新填充数据的总成本为确定值(按策略,参见表1,即,如果数据取回时间为X,那么把TTL增大到Y),那么将调整TTL,以使查寻或提取和高速缓冲存储器填充的整个过程更高效,和使计算高效。为了确保数据网格操作的效率,当网格水合的成本是计算密集的时候,本发明的一个实施例动态增大TTL。定义的过期数据容许策略驱动TTL的动态变化的行为。图3图解说明本发明的流程的一个例子。诸如在应用服务器206上运行的一个应用程序之类的应用使用数据网格(216,图2)作为副高速缓冲存储器来保存呈现的来自几种不同服务(数据库、web服务、CICS等)的门户件。门户件是利用“generatePageO”方法生成的,并被保存在名为“genPagesCache”的分布式地图中。参见图3,在方框300,客户设定过期数据容许策略,并使之与“genPagesCache”图相联系。例如,设定如表I中所示的策略:
权利要求
1.一种用于动态调整保存在数据网格中的内存中的数据对象的TTL值的方法,包括: 设定过期数据容许策略; 利用处理器计算报告重新创建和重新保存所述数据对象的成本的度量;和 根据所述度量,调整TTL值。
2.按照权利要求1所述的方法,其中所述调整TTL值还包括利用管理输入。
3.按照权利要求2所述的方法,其中所述调整TTL值还包括计入过期数据策略。
4.按照权利要求3所述的方法,还包括提供额外的内存存储器,以便处理当数据的重建成本高于策略值时,在逐出之前持续较长的时段保存所述数据而引起的潜在数据膨胀。
5.按照权利要求3所述的方法,还包括提供较少的内存存储器,以便受益于当数据的重建成本低于策略值时,在逐出之前持续较短的时段保存所述数据而引起的潜在数据收缩。
6.按照权利要求1所述的方法,其中计算度量包含利用面向方面的编程插装来检查度量。
7.一种用于动态调整保存在数据网格中的内存中的数据对象的TTL值的计算机系统,包括: 处理器;和 连接到所述处理器的存储器,其中所述存储器被用指令编码,以及其中当被执行时,所述指令包含: 用于设定过期数据容许策略的指令; 用于计算报告重新创建和重新保存所述数据对象的成本的度量的指令;和 用于根据所述度量,调整TTL值的指令。
8.按照权利要求7所述的系统,其中所述用于调整TTL值的指令还包括利用管理输入的指令。
9.按照权利要求8所述的系统,其中所述用于调整TTL值的指令还包括计入过期数据策略的指令。
10.按照权利要求9所述的系统,还包括用于提供额外的内存存储器,以便处理当数据的重建成本高于策略值时,在逐出之前持续较长的时段在内存中保存所述数据而引起的数据膨胀的指令。
11.按照权利要求9所述的系统,还包括用于提供较少的内存存储器,以便受益于当数据的重建成本低于策略值时,在逐出之前持续较短的时段在内存中保存所述数据而引起的数据收缩的指令。
12.按照权利要求7所述的系统,其中所述用于计算度量的指令包含利用面向方面的编程插装来检查度量的指令。
13.一种用于动态调整保存在数据网格中的内存中的数据对象的TTL值的计算机程序产品,所述计算机程序产品包括具有计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包含: 配置成设定过期数据容许策略的计算机可读程序代码; 配置成计算报告重新创建和重新保存所述数据对象的成本的度量的计算机可读程序代码;和根据所述度量,调整TTL值的计算机可读程序代码。
14.按照权利要求13所述的计算机程序产品,其中配置成调整TTL值的计算机可读程序代码还包括配置成利用管理输入的计算机可读程序代码。
15.按照权利要求14所述的计算机程序产品,其中配置成调整TTL值的计算机可读程序代码还包括配置成计入过期数据策略的计算机可读程序代码。
16.按照权利要求15所述的计算机程序产品,还包括配置成提供额外的内存存储器,以便处理当数据的重建成本高于策略值时,在逐出之前持续较长的时段保存所述数据而引起的潜在数据膨胀的计算机可读程序代码。
17.按照权利要求15所述的计算机程序产品,还包括配置成提供较少的内存存储器,以便受益于当数据的重建成 本低于策略值时,在逐出之前持续较短的时段保存所述数据而引起的潜在数据收缩的计算机可读程序代码。
18.按照权利要求13所述的计算机程序产品,其中配置成计算度量的所述计算机可读程序代码包含配置成利用面向方面的编程插装来检查度量的计算机可读程序代码。
全文摘要
本发明涉及动态变更数据高速缓冲存储器中的存活时间值。动态调整保存在数据网格中的内存中的数据对象的TTL值。设定过期数据容许策略。较低的过期容限意味逐出是必然的,与成本无关,而较高的容限意味理应根据总成本设定TTL。计算报告重新创建和重新保存数据对象的成本的度量,以及然后根据计算的度量,调整TTL值。在总成本中,可以考虑另外的因素,比如从存储地逐出数据的清除时间。
文档编号G06F3/06GK103116472SQ20121034908
公开日2013年5月22日 申请日期2012年9月19日 优先权日2011年9月19日
发明者S·S·安塔尼, K·S·伯加尔, N·高尔, C·D·约汉逊, T·E·卡普林格 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1