对存储访问频率的间歇采样的制作方法

文档序号:6625763阅读:177来源:国知局
对存储访问频率的间歇采样的制作方法
【专利摘要】本发明公开了对存储访问频率的间歇采样。通过确定采集窗口的持续时间和所述采集窗口内的观察窗口的持续时间来执行对存储访问频率的间歇采样。随机选择所述采集窗口内的所述观察窗口的位置,以及在所述观察窗口期间观察对一个或多个存储对象的访问频率。当对给定存储对象的新的访问发生时,给定存储对象的增量时间被计算为观察到的访问的时间减去最近观察的对所述给定存储对象的在先访问的时间戳。可选地,在两个不同的观察窗口中对给定存储对象的两次连续访问的增量时间计算为好像所述两个不同的时间窗口彼此紧邻一样。
【专利说明】对存储访问频率的间歇采样

【背景技术】
[0001] 不同类型的数据存储产生不同的成本,对于每千兆字节来说,较快的存储比较慢 的存储花费更大。一种管理存储成本的方法是使用分层或"多温度存储",其中频繁访问的 (又称为"热的")数据被存储在较快、但更昂贵的存储装置(例如,固态"磁盘")中,而不 频繁访问的数据被移动到渐慢、但更便宜的存储装置(例如,物理硬盘,磁带驱动器等)中。
[0002] 特定的数据库应用程序或用户也表现出不同的工作负载模式。有些对数据进行高 频访问,而其他可能会进行不太频繁的数据访问。在另一个方法中,工作负载管理技术执行 和多温度存储类似的任务,其提供一种机制以给不同的工作负载不同的资源访问级别。例 如,给高优先级的工作负载比其他工作负载更大份额的可用CPU时间,定性地类似于将给 定子集的数据驻留在更快的备用存储器件上。
[0003] 然而,上述方法需要用户干预,以确定哪些数据或工作负载应该在比例上获得更 多的对快速和昂贵的资源的访问,哪些应该被归为更多地访问更慢和更便宜的资源。


【发明内容】

[0004] 根据本发明的一个实施例,由计算处理器执行的用于对存储访问频率进行间歇采 样的方法确定采集窗口的持续时间。还确定所述采集窗口内的观察窗口的持续时间。随机 选择采集窗口内的观察窗口的位置。在观察窗口期间观察对一个或多个存储对象的访问频 率。
[0005] 在本发明的一个方面中,当对给定存储对象的新的访问发生时,给定存储对象的 增量时间被计算为新的访问的当前时间减去最近观察的对给定存储对象的在先访问的时 间戳。
[0006] 在本发明的一个方面中,在两个不同的观察窗口中对给定存储对象的两次连续访 问的增量时间被计算为好像两个不同的时间窗口彼此紧邻。
[0007] 这里还描述和要求保护对应于上面总结的方法的系统和计算机程序产品。

【专利附图】

【附图说明】
[0008] 图1示出了根据本发明的实施例的系统的实施例。
[0009] 图2示出了根据本发明的实施例的用于定义数据库对象以用于在存储体系中进 行存储的方法。
[0010] 图3示出了根据本发明的实施例的用于对存储访问频率进行间歇采样的方法。
[0011] 图4A和4B示出了根据本发明的实施例的增量时间计算的示例。

【具体实施方式】
[0012] 所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算 机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、 完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方 式,这里可以统称为"电路"、"模块"或"系统"。此外,本发明的各个方面还可以实现为在一 个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可 读的程序代码。
[0013] 可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算 机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限 于一电、磁、光、电磁、红外线、或半导体的系统、装置或设备,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便 携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器 (EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或者 上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的 有形介质,该程序可以被指令执行系统、装置或者设备使用或者与其结合使用。
[0014] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但 不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序。
[0015] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限 于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0016] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算 机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java? (Java和所 有基于Java的商标和logo是美国、其他国家或美国和其他国家的甲骨文公司的商标)、 Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如"C"程序设计语言或类似的 程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作 为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远 程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的 网络--包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计 算机(例如利用因特网服务提供商来通过因特网连接)。
[0017] 下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图 和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/ 或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给 通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得 这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和 /或框图中的一个或多个方框中规定的功能/动作的装置。
[0018] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、 其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的 指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令 的制造品(article of manufacture) 〇
[0019] 计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备 上,以用于使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,从而生成计 算机执行的过程,从而在计算机或其他可编程装置上执行的指令提供用于实现流程图和/ 或框图中的一个或多个方框中规定的功能/动作的过程。
[0020] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程 序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代 表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用 于实现规定的局部功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标 注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基 本并行地执行,或者所述方框有时也可以按相反的顺序执行,这依所涉及的功能而定。也要 注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以 用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机 指令的组合来实现。
[0021] 本文使用的术语目的只是描述特定的实施例,而不用于限制本发明。如本文所使 用的,单数形式的"一"、"一个"和"所述"也用于包括复数形式,除非上下文另有明确说明。 还要理解,当在本说明书中使用术语"包括"和/或"包含"时,规定所述的特征、整数、步骤、 操作、元件和/或组件的存在,但不排除可以存在或添加一个或多个其它特征、整数、步骤、 操作、元件、组件和/或其组合。
[0022] 所附权利要求中相应的结构、材料、动作、和所有装置或步骤加上功能元件的等同 方式意在包括任何用于根据明确要求结合其他要求保护的元件执行所述功能的结构、材料 或动作。为了示出和描述的目的对本发明进行描述,但并非意在穷举或以所揭示的形式限 制本发明。在不脱离本发明的范围和精神的情况下,许多修改和变化对于本领域的普通技 术人员将是显而易见。为了最好地解释本发明的原理和实际应用,以及使本领域的其他技 术人员能够理解本发明以通过各种修改做出各种适合于预期的特定用途的实施例,选择和 描述了实施例。
[0023] 图1示出了根据本发明的实施例的系统的实施例。计算机系统100可操作地耦合 到处理器或处理单元106、存储器101和总线109,所述总线109将各种系统元件进行耦合, 包括将存储器101耦合到处理器106。总线109表示一个或多个多种总线结构中的任何总 线结构,包括存储器总线或存储器控制器、外围总线、加速图形端口、和使用各种总线体系 结构中的任何总线体系结构的处理器或局部总线。存储器101可以包括易失性存储器形式 的计算机可读介质,诸如随机访问存储器(RAM) 102或高速缓冲存储器103、或非易失性存 储介质104。存储器101可以包括至少一个程序产品,该程序产品具有一组至少一个程序代 码模块105,该程序代码模块105被配置成当被处理器106执行时执行本发明的实施例的功 能。计算机系统100还可以经由I/O接口 107与一个或多个外部设备111 (诸如显示器110) 通信。计算机系统1〇〇可以经由网络适配器108与一个或多个数据库管理系统(DBMS) 112 通信。
[0024] 图2示出了根据本发明的实施例的用于定义数据库对象以用于在存储体系中进 行存储的方法。数据库对象可以包括数据库的表格、索引等。该方法观察在预定时间期间 对多个数据库对象的访问频率(201)。该方法基于观察的对数据库对象的访问频率来计算 针对多个数据库对象的均值和标准差(deviation) (202)。对于给定的数据库对象,方法基 于对给定对象的访问频率与针对多个数据库对象计算的均值和标准差的比较,来确定z分 数(z-SC〇re) (203)。在该实施例中,Z分数表示以标准差为单位的对给定数据库对象的访 问频率与被观察的所有数据库对象的均值和标准差之间的差。然后该方法确定存储体系中 对应于给定数据库对象的z分数的层级(204)。然后数据库对象可以被存储或移动到存储 体系中对应于其z分数的层级。在该实施例中,当检测到新的数据库对象访问时,该方法将 增量时间(AT)计算为当前时间减去对数据库对象的最近访问的时间戳。然后使用AT更 新对数据库对象的累积统计,所述累积统计包括:对数据库对象的观察的计数N ;对数据库 对象的AT的和(2 AT);和对数据库对象的AT的平方和(2 (AT2))。这三个累积统计 使得能够计算数据库对象的均值和标准差,而不必保存每个访问的时间戳。
[0025] 在一个实施例中,连续监测数据库的活动。在一些情况下,该连续监测为了保存捕 获的信息对性能和暂时存储产生负面影响。为了解决对性能和暂时存储的影响,根据本发 明的另一个实施例间歇地监测数据库的活动。然而,利用间歇监测,由于谐波混淆可能会丢 失整个周期性活动。例如,如果在每个小时的第一分钟启用监测,而每隔四个小时在半小时 的时候安排工作运行十分钟,那么监视器就永远捕获不到该工作进行的访问有关的信息。 在该实施例中,如下面进一步所述的,该方法通过使观察窗口在更大的采集窗口内随机分 布,来避免由于谐波混淆而丢失访问。
[0026] 图3示出了根据本发明的实施例的用于对存储访问频率进行间歇采样的方法。首 先,该方法确定采集窗口的持续时间或大小(301)。该方法还确定采集窗口内的观察窗口的 持续时间和大小(302)。随机选择采集窗口内的观察窗口的位置(303)。然后该方法在观 察窗口期间观察对数据库对象的访问频率(304)。在该实施例中,允许用户选择时间的百分 t匕,从而启用对存储访问的观察。例如,假设采集窗口的持续时间为100分钟,即,每100分 钟,现有的采集窗口结束,并且新的采集窗口开始。还假设用户选择观察1%的时间。从而 观察窗口被确定为一分钟长(100分钟的1% )。该方法随机选择100分钟的米集窗口内的 一分钟观察窗口的位置,在该观察窗口期间观察数据库事件。在剩下的采集窗口中,禁用观 察。对于在该一分钟观察窗口期间发生的任何数据库对象访问,如上所述,为数据库对象将 AT计算为当前时间减去在观察窗口内对数据库对象的最近访问的时间戳。以这种方式,可 以至少观察到一次定期安排的工作进行的数据库对象访问。当在延长的时间段上观察时, 观察的对数据库对象的访问频率将非常接近真实频率,如同观察到每次访问一样。
[0027] 通常,丢弃每个观察窗口的第一个和最后一个数据点。然而,当对数据库对象的访 问之间的时间大时,丢弃第一个和最后一个数据点将会导致AT不能被准确计算。例如, 当对数据库对象的第一次访问在一个观察窗口内,而直到另一个观察窗口才有下一个观察 时,不能用和上面相同的方式计算AT。进一步地,当访问频率低时,一些观察窗口可能观 察不到任何访问。本发明的一个实施例通过减去在包括对数据库对象的两个连续的访问观 察的两个观察窗口之间禁用观察的时间量解决了该问题。例如,图4A示出了两个观察窗 口 W1和W2。对于W1和W2之间的时间段D1,禁用观察。在该示例中,假设第一次观察到对 数据库对象的访问发生在观察窗口 W1的时间T1。还假设下一次观察到对数据库对象的访 问发生在观察窗口 W2的时间T2时,W1和W2之间没有观察。在这种情况下,计算AT等于 T2-T1-(D1的宽度)。从AT的计算中去除禁用观察的时间段D1,好像两个观察窗口 W1和 W2彼此紧邻那样计算AT。
[0028] 作为另一个例子,图4B示出了三个观察窗口 W1-W3。对于时间段D1和D2,禁用观 察。在该示例中,假设第一次观察到对数据库对象的访问发生在观察窗口 W1的时间T1。还 假设下一次观察到对数据库对象的访问发生在观察窗口 W3的时间T2。在观察窗口 W2中没 有观察到对数据库对象的访问。在这种情况下,计算AT等于T2-T1-(D1的宽度)-(D2的 宽度)。从AT的计算中去除禁用观察的时间段D1和D2。注意,不从AT中减去观察窗口 W2的宽度,即使其中没有观察到访问,因为W2表示在其期间观察被启用的时间,从而W2期 间没有访问表示与对数据库对象的真实访问频率有关的信息。以这种方式,还能够对于低 频访问计算AT。
[0029] 在一些数据库系统中,事件监视器被用于监测数据库的活动,并用于观察对数据 库对象的访问。可以用两个开关来实现事件监视器,一个启用和禁用监视器本身的状态开 关和针对数据库工作负载的采集子句(collect clause)形式的另一个开关。出于性能的考 虑,活动将不会采集监测信息,除非在工作负载开始时采集子句在数据库工作负载上有效, 而该信息不会到达事件监视器,除非在工作负载结束时事件监控器本身被启用。然而,当状 态和采集子句两者都被切换指示观察窗口的开始和结束,则可能永远观察不到在观察窗口 开始前开始和/或在观察窗口结束后结束的长期运行的活动。为了解决该问题,可以将两 个开关之一一直保持在"开启"或启用位置。这样,给定访问是否将被观察到仅取决于在单 个时间点对所述访问及时进行的单次检查。如果所述单次检查落入观察窗口内,则访问将 被观察到。
[0030] 虽然上面在数据库对象的环境下描述了本发明的实施例,但是可以在不脱离本发 明的精神和范围的情况下以上述方式对任何存储对象进行间歇采样。而且,间歇现象在性 质上可以为时间和/或空间的。空间间歇性的一个示例为当对几个非相邻的空间段而不是 前述示例中的时间段进行观察时,计算感兴趣的项发生的空间频率。在这种情况下,在图4A 和图4B中标记为"时间"的轴可以被重新标记为"距离",并在所有其他方面,可以采用和原 有的示例中一样的计算。
[0031] 为了示出的目的对本发明各种实施例进行了描述,但是不意在穷尽或限于所揭示 的实施例。在不脱离所述实施例的范围和精神的情况下,许多修改和变化对于本领域的普 通技术人员将显而易见。这里使用的术语被选择用来最好地解释实施例的原理、实际应用 或对市场上可见的技术进行的技术改进,或者用于使本领域的其他普通技术人员能够理解 本文所揭示的实施例。
【权利要求】
1. 一种用于对存储访问频率进行间歇采样的方法,所述方法由计算处理器执行,所述 方法包括: 由所述计算处理器确定采集窗口的持续时间; 由所述计算处理器确定所述采集窗口内的观察窗口的持续时间; 由所述计算处理器随机选择所述采集窗口内的所述观察窗口的位置;以及 由所述计算处理器在所述观察窗口期间观察对一个或多个存储对象的访问频率。
2. 根据权利要求1所述的方法,其中观察对一个或多个存储对象的访问频率包括: 确定对给定存储对象的新的访问发生;以及 响应于确定对给定存储对象的新的访问发生,将给定存储对象的增量时间计算为所述 新的访问的时间减去最近观察的对所述给定存储对象的在先访问的时间戳。
3. 根据权利要求2所述的方法,其中将所述增量时间计算为所述新的访问的时间减去 最近观察的对所述给定存储对象的在先访问的时间戳包括: 将在两个不同的观察窗口中对给定存储对象的两次连续访问的增量时间计算为好像 所述两个不同的时间窗口彼此紧邻一样。
4. 根据权利要求3所述的方法,其中观察对一个或多个存储对象的访问频率包括: 在第一观察窗口 W1和第二观察窗口 W2中观察对所述一个或多个存储对象的访问频 率,其中在W1和W2之间的时间段D1期间观察被禁用; 在W1中的第一时间T1观察对所述给定存储对象的第一次访问和在W2中的第二时间 T2观察对所述给定存储对象的第二次访问,其中T1和T2之间没有观察到对所述给定存储 对象的访问;以及 将所述增量时间计算为等于T2-T1-(D1的宽度)。
5. 根据权利要求3所述的方法,其中观察对一个或多个存储对象的访问频率包括: 在第一观察窗口 W1、第二观察窗口 W2和第三观察窗口 W3中观察对所述一个或多个存 储对象的访问频率,其中在W1和W2之间的时间段D1期间和在W2和W3之间的时间段D2 期间观察被禁用; 在W1中的第一时间T1观察对所述给定存储对象的第一次访问和在W3中的第二时间 T2观察对所述给定存储对象的第二次访问,其中D1和D2期间观察被禁用,其中T1和T2之 间没有观察到对所述给定存储对象的访问;以及 将所述增量时间计算为等于T2-T1-(D1的宽度)-(D2的宽度)。
6. 根据权利要求1所述的方法,其中由事件监视器执行对所述一个或多个存储对象的 访问频率的观察,其中使用用于所述事件监视器的状态开关和用于数据库工作负载的采集 子句来启用和禁用由所述事件监视器进行的监测,其中所述状态开关或所述采集子句保持 在启用位置。
7. 根据权利要求2所述的方法,还包括: 基于所观察的对所述多个存储对象的访问频率来计算所述多个存储对象的均值和标 准差; 基于所述增量时间上为所述给定存储对象计算的均值和所述多个存储对象的均值和 标准差来确定所述给定存储对象的z分数;以及 确定存储体系中对应于所述给定存储对象的z分数的层级。
8. 一种系统,包括: 处理器;以及 具有计算机可读程序代码的计算机可读存储介质,所述程序代码可由处理器执行以: 确定采集窗口的持续时间; 确定所述采集窗口内的观察窗口的持续时间; 随机选择所述采集窗口内的所述观察窗口的位置;以及 在所述观察窗口期间观察对一个或多个存储对象的访问频率。
9. 根据权利要求8所述的系统,其中可由所述处理器执行以观察对一个或多个存储对 象的访问频率的所述程序代码还可由所述处理器执行以: 确定对给定存储对象的新的访问发生;以及 响应于确定对所述给定存储对象的新的访问发生,将所述给定存储对象的增量时间计 算为所述新的访问的时间减去最近观察的对所述给定存储对象的在先访问的时间戳。
10. 根据权利要求9所述的系统,其中可由所述处理器执行以将所述增量时间计算为 所述新的访问的时间减去最近观察的对所述给定存储对象的在先访问的时间戳的所述程 序代码还可由所述处理器执行以: 将在两个不同的观察窗口中对给定存储对象的两次连续访问的增量时间计算为好像 所述两个不同的时间窗口彼此紧邻一样。
11. 根据权利要求10所述的系统,其中可由所述处理器执行以观察对所述一个或多个 存储对象的访问频率的所述程序代码还可由所述处理器执行以: 在第一观察窗口 W1和第二观察窗口 W2中观察对所述一个或多个存储对象的访问频 率,其中在W1和W2之间的时间段D1期间观察被禁用; 在W1中的第一时间T1观察对所述给定存储对象的第一次访问和在W2中的第二时间 T2观察对所述给定存储对象的第二次访问,其中T1和T2之间没有观察到对所述给定存储 对象的访问;以及 将所述增量时间计算为等于T2-T1-(D1的宽度)。
12. 根据权利要求10所述的系统,其中可由所述处理器执行以观察对所述一个或多个 存储对象的访问频率的所述程序代码还可由所述处理器执行以: 在第一观察窗口 W1、第二观察窗口 W2和第三观察窗口 W3中观察对所述一个或多个存 储对象的访问频率,其中在W1和W2之间的时间段D1期间和在W2和W3之间的时间段D2 期间观察被禁用; 在W1中的第一时间T1观察对所述给定存储对象的第一次访问和在W3中的第二时间 T2观察对所述给定存储对象的第二次访问,其中D1和D2期间观察被禁用,其中T1和T2之 间没有观察到对所述给定存储对象的访问;以及 将所述增量时间计算为等于T2-T1-(D1的宽度)-(D2的宽度)。
13. 根据权利要求9所述的系统,其中所述程序代码还可由所述处理器执行以: 基于所观察的对所述多个存储对象的访问频率来计算所述多个存储对象的均值和标 准差; 基于所述增量时间上为所述给定存储对象计算的均值和所述多个存储对象的均值和 标准差来确定所述给定存储对象的z分数;以及 确定存储体系中对应于所述给定存储对象的Z分数的层级。
【文档编号】G06F12/00GK104424035SQ201410444496
【公开日】2015年3月18日 申请日期:2014年9月3日 优先权日:2013年9月4日
【发明者】K·L·贝克, K·J·奇考尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1