CN101013427B - 用于管理数据的方法和*** - Google Patents

用于管理数据的方法和*** Download PDF

Info

Publication number
CN101013427B
CN101013427B CN 200710001448 CN200710001448A CN101013427B CN 101013427 B CN101013427 B CN 101013427B CN 200710001448 CN200710001448 CN 200710001448 CN 200710001448 A CN200710001448 A CN 200710001448A CN 101013427 B CN101013427 B CN 101013427B
Authority
CN
China
Prior art keywords
memory device
data object
data
time
described process
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.)
Active
Application number
CN 200710001448
Other languages
English (en)
Other versions
CN101013427A (zh
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.)
Qindarui Co.
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
Publication of CN101013427A publication Critical patent/CN101013427A/zh
Application granted granted Critical
Publication of CN101013427B publication Critical patent/CN101013427B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/6024History based prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种用于管理数据的方法和***,其中使用进程的历史执行信息来确定所述进程的数据要求集。然后在进程请求数据对象之前,使用数据要求集把所述进程用的数据从较慢的存储设备(例如,磁带)移动到较快的存储设备(例如,硬盘驱动器)(例如,预取)。依照这种方式,当把所预取的数据从较慢的存储设备移动到较快的存储设备时,可以在进程进行请求时提供所述数据而不会延迟其执行。

Description

用于管理数据的方法和***
技术领域
本发明总体上涉及存储管理,尤其涉及用来预取进程用数据的方案。
背景技术
存储管理方案在较慢的存储设备(例如,离线/近线设备)和更昂贵和/或更受约束的较快存储设备(例如,在线/直接访问设备)之间频繁移动数据对象。使用较慢的存储设备能够使***以低成本存储大量数据对象。随着进程的执行,在要求数据对象时它会根据存储管理方案来请求数据对象。在当前存储管理方案中,所述存储管理方案会响应该请求而把数据对象从较慢的存储设备移动到较快的存储设备。在数据对象正被移动的同时,由于存储设备之间的数据对象移动比其它执行活动慢得多,所以进程的执行会被中止。对于诸如关键进程之类的某些进程来说,在请求数据对象时和数据对象达到可使用时之间的时间延迟呈现出不希望的限制。
为了解决此问题,某些存储管理方案包括用以在正在执行的进程要求某特定数据对象之前从较慢的存储设备中检索该数据对象并将其存储到较快的存储设备中的定制功能。例如,可以由管理员来分析特定的进程,所述管理员可以指定一个或多个所要求的、在执行进程之前被移动的数据对象。然而,由于为了使该功能发挥作用需要持续的人工干预及其定制性,所以此功能实现起来很麻烦并且难于保持通用。考虑到上述内容,在本领域中存在克服上述一个或多个缺陷的需求。
发明内容
本发明提供了一种用于管理数据的方案,其中使用进程用历史执行信息来确定所述进程的数据要求集。然后在该进程请求数据对象之前,使用该数据要求集以将所述进程用数据从较慢的存储设备(例如,磁带)移动到较快的存储设备(例如,硬盘驱动器)(例如,预取)。随后,所述数据可以被登台到较快的存储设备上直到所述进程完成执行为止。依照这种方式,当把所预取的数据从较慢的存储设备移动到较快的存储设备时,可以在进程请求时提供所述数据,而不会延迟进程的执行。在一个实施例中,本发明被实现为分级存储管理(hierarchical storage management HSM)***的一部分,并且为预测要执行的进程预取电子文件。可以基于执行调度和/或历史执行信息来预测要执行的进程。历史执行信息可以由操作***产生并维护。例如,历史执行信息可以包括用于该进程的***管理设备(SystemsManagement Facility SMF)数据。因此,本发明使用该进程的历史执行信息(诸如持续时间、频率和/或其它***事件的资料)来预见进程的执行和/或用于所述进程的数据要求集。然后使用该预见结果以在进程请求数据对象之前把数据对象移动到较快的存储设备上。
本发明的第一方面提供了一种用于管理数据的方法,所述方法包括:获得用于进程的历史执行信息;根据所述历史执行信息来确定用于所述进程的数据要求集;并且在所述进程请求包括在所述数据要求集中的数据对象之前把所述数据对象从第一存储设备移动到比所述第一存储设备更快的第二存储设备。
本发明的第二方面提供了一种用于管理数据的***,所述***包括:用于获得用于进程的历史执行信息的***;用于根据所述历史执行信息来确定用于所述进程的数据要求集的***;和用于在所述进程请求包括在所述数据要求集中的数据对象之前把所述数据对象从第一存储设备移动到比所述第一存储设备更快的第二存储设备的***。
本发明的第三方面提供了一种分级存储管理(HSM)***,包括:用于获得用于进程的历史执行信息的***;用于根据所述历史执行信息来确定用于所述进程的数据要求集的***;和用于在所述进程请求数据对象之前把包括在所述数据要求集中的电子文件从第一存储设备移动到比所述第一存储设备更快的第二存储设备的***。
本发明的第四方面提供了一种在计算机可读介质上所存储的程序产品,所述程序产品在被执行时使计算机基础结构能够管理数据,所述程序产品包括计算机程序代码,用于使所述计算机基础结构能够:获得用于进程的历史执行信息;根据所述历史执行信息来确定用于所述进程的数据要求集;并且在所述进程请求包括在所述数据要求集中的数据对象之前把所述数据对象从第一存储设备移动到比所述第一存储设备更快的第二存储设备。
本发明的第五方面提供了一种生成用于管理数据的***的方法,所述方法包括:提供一种计算机基础结构,可操作来:获得用于进程的历史执行信息;根据所述历史执行信息来确定用于所述进程的数据要求集;并且在所述进程请求包括在所述数据要求集中的数据对象之前把所述数据对象从第一存储设备移动到比所述第一存储设备更快的第二存储设备。
本发明的第六方面提供了一种用于管理数据的商业方法,所述商业方法包括管理计算机基础结构,所述计算机基础结构执行这里所描述的过程,并且根据所述管理来收款。
本发明的解释性方面被设计成用于解决这里所描述的问题以及未讨论的问题。
附图说明
结合附图根据本发明各个方面的以下详细描述可以更容易地理解本发明的上述及其它特征,所述附图描绘了本发明的各个实施例,其中:
图1依照本发明实施例示出了用于管理数据的解释性环境。
图2依照本发明实施例示出了在各个***之间的解释性数据流程图。
图3依照本发明实施例示出了可以被实现来管理数据的解释性进程。
应当注意附图并不是按比例绘制的。附图只意在描绘本发明的典型方面,由此不应当被认为是对本发明范围的限制。在附图中,附图之间同样的标记表示同样的元素。
具体实施方式
如上所指出,本发明提供了一种用于管理数据的方案,其中使用进程的历史执行信息来确定所述进程的数据要求集。然后使用该数据要求集以在进程请求数据对象之前把用于所述进程的数据从较慢的存储设备(例如,磁带)移动到较快的存储设备(例如,硬盘驱动器)(例如,预取)。随后,所述数据可以被登台到较快的存储设备上直到所述进程完成执行。依照这种方式,当把所预取的数据从较慢的存储设备移动到较快的存储设备时,可以在进程发出请求时提供所述数据,而不会延迟所述进程的执行。在一个实施例中,本发明被实现为分级存储管理(HSM)***的一部分,并且为预测要被执行的进程预取电子文件。可以基于执行调度和/或历史执行信息来预测要执行的进程。历史执行信息可以由操作***产生并维护。例如,历史执行信息可以包括用于进程的***管理设备(SMF)数据。因此,本发明使用进程的历史执行信息(诸如持续时间、频率和/或其它***事件的资料)来预测进程的执行和/或用于所述进程的数据要求集。然后在进程请求数据对象之前使用该预测结果以把数据对象移动到较快的存储设备上。如这里所用,除非另作说明,否则“集”意指一个或多个。
转向附图,图1依照本发明实施例示出了用于管理诸如一组数据对象50之类的数据的解释性环境10。就这一点而言,环境10包括计算机基础结构12,所述计算机基础结构12可以执行这里所描述的过程以管理数据对象50。特别地,所示出的计算机基础结构12包括计算设备14,所述计算设备14包括存储管理***30,所述存储管理***30使计算设备14通过执行这里所描述的过程来管理数据对象50。
所示出的计算设备14包括处理器20、存储器22A、输入/输出(I/O)接口24和总线26。此外,所示出的计算设备14与外部I/O设备/资源28以及存储***22B通信。如在本领域中所知,处理器20通常执行存储在存储器22A和/或存储***22B中的、诸如进程40之类的计算机程序代码。当执行计算机程序代码时,处理器20可以从/向存储器22A、存储***22B和/或I/O接口24读取和/或写入诸如数据对象50之类的数据。总线26提供计算设备14中的每个组件之间的通信链路。I/O设备28可以包括使个人能够与计算设备14交互的任何设备或者使计算设备14能够使用任何类型的通信链路与一个或多个其它计算设备进行通信的任何设备。
在任一情况下,计算设备14可以包括能够执行其上所安装的计算机程序代码的任何通用计算制造产品(例如,个人计算机、服务器等)。然而应当理解,计算设备14和存储管理***30只表示可以执行这里所描述的过程的各种可能的等效计算设备。就这一点而言,在其它实施例中,由计算设备14和存储管理***30所提供的功能可以通过包括了通用和/或专用硬件和/或计算机程序代码的任何组合的计算制造产品来实现。在每个实施例中,可以分别使用标准编程和工程技术来创建程序代码和硬件。
类似地,计算机基础结构12只解释性地说明了用于实现本发明的各种类型的计算机基础结构。例如在一个实施例中,计算机基础结构12包括两个或多个计算设备(例如,服务器群集),用于经由任何类型的通信链路(诸如网络、共享存储器等)通信来执行这里所描述的过程。此外,当执行这里所描述的过程时,计算机基础结构12中的一个或多个计算设备可以使用任何类型的通信链路与在计算机基础结构12外部的一个或多个其它计算设备进行通信。在任一种情况下,通信链路可以包括不同类型的有线和/或无线链路的任意组合;包括一种或多种网络(例如,因特网、广域网、局域网、虚拟专用网络等)的任意组合;和/或利用不同类型的传输技术与协议的任意组合。
如这里所述,存储管理***30使计算机基础结构12能够为在环境10中执行的各个进程40管理数据,诸如数据对象50。就这一点而言,所示出的存储管理***30包括接口***32、转送***34、调度***36和要求***38。这里进一步论述了这些***中的每一个***的操作。然而应当理解,在图1中所示出的某些不同***可以独立地实现、组合和/或存储到一个或多个包括在计算机基础结构12中的独立计算设备的存储器中。此外应当理解,某些***和/或功能可以不作为计算机基础结构12的一部分而实现,或者也可以包括附加***和/或功能作为计算机基础结构12的一部分。
无论如何,本发明提供了一种用于管理一组进程40的数据的方案。就这一点而言应当理解,虽然可以在环境10中实现本发明,然而也可以在更复杂的环境中实现本发明。例如,计算设备14可以包括具有多个处理器20的服务器,每个处理器20可以执行唯一的进程40。此外,可以根据存储管理***30在计算机基础结构12中的不同计算设备14上执行进程40。在后一种情况下,存储管理***30可以管理在计算机基础结构12中的多个计算设备14上执行的多个进程40的数据。就这一点而言,存储管理***30可以经由包括一个或多个公用/专用网络在内的通信链路的任意组合来提供进程40所用的数据对象50。
在任何情况下,当执行进程40时,可以要求访问一个或多个数据对象50。在这种情况下,接口***32可以从进程40接收对数据对象50的请求。响应于所述请求,接口***32可以提供进程40所用的数据对象50。例如,数据对象50可以包括存储在文件***中的电子文件。在这种情况下,接口***38可以从存储设备22B(例如,硬盘驱动器之类的固定存储设备)读取数据对象50,并且提供该进程40所用的数据。
然而,对于大型文件***来说,存储管理***30可以包括分级存储管理(HSM)***。在这种情况下,可以使用多“级”存储设备22B来存储数据对象50。每一级存储设备22B包括一组存储设备22B,可以按类似的时间周期内从其中获取数据对象50。例如,HSM***可以包括:一组“零级(level zero)”(例如,在线)存储设备22B,其中每一个包括硬盘驱动器;一组“一级(level one)”(例如,近线)存储设备22B,其中每一个包括光盘、直接存取存储设备(direct accessstorage device DASD)等;以及一组“二级”(例如,离线)存储设备22B,其中每一个包括磁带等。通常,访问存储在零级存储设备22B中的数据对象50比访问存储在一级存储设备22B中的数据对象50更快,依序地,访问存储在所述一级存储设备22B中的数据对象50比访问存储在二级存储设备22B中的数据对象50更快。然而,每个较慢级通常可以以更少的成本提供更大的存储空间。因此,HSM***与都使用零级存储设备22B相比可以以更低的成本在计算机基础结构12中提供更大的总存储空间。
当所请求的数据对象50并未存储在零级存储设备22B中时,传送***34可以在接口***32提供进程40所用的数据对象50之前把数据对象50从较慢的存储设备22B移动到较快的存储设备22B。在这种情况下,当转送***34在存储级之间移动数据对象50时进程40的执行会被延迟。对于诸如关键进程之类的一些进程40来说,不希望有此延迟。
为了降低进程40执行被延迟的次数,转送***34可以在进程40请求数据对象50之前把数据对象50从较慢的存储设备22B移动到较快的存储设备22B(例如,预取数据对象50)。就这一点而言,图2依照本发明实施例示出了各个***之间的解释性数据流程图。如图所示,存储管理***30可以管理包括在线存储设备22B1、近线存储设备22B2以及离线存储设备22B3在内的分级存储设备22B1-3。通常,操作***42可以包括用于调度要执行的进程40的调度器等。就这一点而言,进程40可以包括在由操作***42所维护的执行调度52(例如,调度器)中,所述执行调度52包括要执行的进程40的列表。可以使用事务处理方案(例如当由另一进程和/或用户请求执行时)和/或批处理方案(例如,在每天半夜执行)来调度进程50。
参照图1和2,调度***36可以预测出该进程40会在特定的时间执行。在一个实施例中,调度***36可以获得进程40的历史执行信息54并且根据该历史执行信息54来预测进程40的执行时间。例如,历史执行信息54可以表明进程40在过去的一个月里在每天大致半夜时被执行。替换性地,历史执行信息54也可以表明进程40已经按一定的时间百分比在特定的时间被执行,例如百分之六十的时间是在7:00AM。在任一种情况下,调度***36都可以预测进程40执行的时间和概率。
作为选择,调度***36可以读取执行调度52,所述执行调度52可以包括进程40的标识符和执行所述进程40的相应时间。另外,调度***36可以根据执行调度52中其它进程的数目、进程40的优先级等来确定进程40的估计执行时间。在后两种情况下,由于进程40被调度执行,所以其预测执行概率可能会是百分之百。此外,转送***34可以只为所有正在执行的进程40的子集预取数据对象50。在这种情况下,调度***36可以确定是否应当由转送***34来预取进程40用的数据对象50。例如,调度***36可以确定进程40是否包括关键进程40。如果是,则转送***34可以预取数据对象50。
在任一情况下,当想要预取进程40用的数据对象50时,要求***38可以确定进程40用的数据要求集56。在一个实施例中,要求***38可以获得进程40的历史执行信息54,所述要求***38可以据此预测/预见进程40用的数据要求集56。通常,每次操作***42执行进程40时,操作***42都可以更新包括关于进程40先前执行的数据(例如,一组执行记录)在内的历史执行信息54。例如,操作***42可以利用来自进程40在执行期间的诸如其存储(数据)、安全、资源利用、执行等要求的不同要求日志的数据来更新历史执行信息54。依照这种方式,操作***42可以建立进程40的历史执行的知识库。在一个实施例中,历史执行信息54包括由操作***42维护的***管理设备(SMF)数据。不管怎样,要求***38可以使用任何方案根据历史执行信息54来确定进程40用的数据要求集56。例如,要求***38可以分析历史执行信息54以便确定最后X次执行进程40所请求的数据对象50、进程40最频繁请求的数据对象50等。
随着时间的推移,要求***38可以管理进程40用的数据要求集56的知识库。特别是,随着进程40执行数的增加,开发了一种用于按照每个进程40的数据对象50和/或执行频率来定义数据要求集56的模式。要求***38可以独立地存储并管理此知识库并且使用它来预测进程40的将来执行情况和/或进程40的数据要求集56。此外,要求***38可以使用附加/候选方案来预测进程40的数据要求集56。就这一点而言,要求***38可以分析进程40以便确定数据要求集56。例如,当进程40尚未频繁执行时,要求***38可以分析进程40并确定在将来的执行中可能潜在需要的数据对象50。随后,可以把某些或全部数据对象50添加到所述数据要求集56中。另外,要求***38可以生成用户接口,提供应用程序接口(API)等,以使用户16(例如,人类或另一***)能够定义数据要求集56。在这种情况下,用户16可以指定应当把一个或多个数据对象50包括在数据要求集56中和/或排除在数据要求集56之外。
在任一情况下,在进程40请求任何数据对象50之前,转送***34根据其相应的数据要求集56来移动进程40所用的一组数据对象50。例如,转送***34可以把数据对象50从离线存储设备22B3移动到近线存储设备22B2和/或在线存储设备22B1。类似地,转送***34可以把数据对象50从近线存储设备22B2移动到在线存储设备22B1。可以根据进程40请求数据对象50的可能性、进程40的相对关键性、在每个存储设备22B1-2中可用的存储空间量等来确定目的地存储设备22B1-2和/或所预取的预取数据对象50的量。例如,对于始终执行并请求全部数据对象50的进程40来说,可以把数据对象50移动到在线存储设备22B1。相反地,对于频繁执行(例如,60%的时间)但是只是偶而(例如,预见其为10%的时间)要求特定数据对象50的关键性高的进程来说,可以把数据对象50预取到近线存储设备22B2。类似地,如果进程40具有高执行概率(例如,预见其大半时间会执行)并且预见其要求非常大的数据对象50,那么可以把某些或全部数据对象50预取到近线存储设备22B2上而把某些数据对象50保持在离线存储设备22B3上。
除预取数据对象50之外,转送***34可以移动已经被当前执行进程40所请求的数据对象50(例如,从较慢的存储设备移动到较快的存储设备)和/或移动已经由完成了的进程40所使用的数据对象50(例如,从较快的存储设备移动到较慢的存储设备)。就这一点而言,与移动当前执行进程40所用的数据对象50相比,转送***34可以以较低的优先级来执行预取。另外,转送***34可以把所预取的数据对象50登台到较快的存储设备22B1-2上直到该进程40执行。就这一点而言,转送***34还可以确保不会为了为其它进程40所要求的数据对象50创造空间而移动所预取的数据对象50。特别地,转送***34可以登台所预取的数据对象50直到进程40完成执行,直到经过了所预测的执行开始时间(加上任何预见的延迟间隔),和/或直到进程40执行的可能性低于阈值水平。
此外,转送***34可以依照“刚好及时(just-in-time)”的方式来执行预取。依照这种方式,转送***34可以降低需要登台的数据对象50的数目和/或数据对象50需要登台的总时间量。在一个实施例中,转送***34可以根据预取时间间隔来识别开始预取数据对象50的时间和调度执行进程40的时间。例如,用户16可以提供预取时间间隔,所述预取时间间隔指定了应当预取数据对象50的进程40执行之前的时间量。用户16例如可以根据预取操作所要求的最大时间量来选择预取时间间隔。
作为选择,转送***34可以确定所述预取时间间隔。特别地,一旦已知要预取的数据对象50的数据量以及预取的源和目的地存储设备22B1-3,那么转送***34就可以把预取时间间隔确定为把数据对象50的数据从较慢的(源)存储设备22B2-3移动到较快的(目的地)存储设备22B1-2所需的时间量。在任一情况下,转送***34可以通过例如从所预测的执行时间减去预取时间间隔(加上任何预见的***延迟)来计算开始预取数据对象50的时间。应当理解,当还没有频繁地执行进程40时,转送***34可以使用过大(导致额外的登台)和/或过小(导致执行的延迟)的预取时间间隔。另外,调度***36可能预测不太准确的执行时间和/或概率。然而,随着进程40执行数的增加,调度***36可以调整所预测的执行时间和/或概率,和/或转送***34可以调整预取时间间隔以获得更准确的结果。
无论如何,操作***42能够执行进程40。当执行时,进程40可以从存储管理***30请求数据对象50。作为响应,接口***32可以提供数据对象50以供进程40使用。当转送***34已经预取数据对象50时,接口***32可以在不产生用以移动数据对象50的附加延迟的情况下提供数据对象50。依照这种方式,不会不必要地延迟进程40的执行。随后,一旦进程40完成执行,那么转送***34就可以把数据对象50从较快的存储设备22B1-2移动到较慢的存储设备22B2-3以便释放在较快存储设备22B1-2上的存储空间。
如这里所述,本发明的实施例提供了一种用于管理数据的方法。就这一点而言,图3依照本发明实施例示出了可以由例如图1的计算机基础结构12实现用以管理数据的解释性过程。参照图1和3,在步骤S1,调度***36预见到进程40会执行。在步骤S2,要求***38获得进程40的历史执行信息54(图2)。在步骤S3,要求***38根据历史执行信息54来确定用于进程40的数据要求集56(图2)。例如,要求***38可以根据历史执行信息54的先前估计来管理用于进程40的知识库,并且在确定数据要求集56中平衡所述知识库。在步骤S4,转送***34根据所述数据要求集56把一组数据对象50从较慢的存储设备22B预取到较快的存储设备22B。在步骤S5,转送***34把所预取的数据对象组50登台到较快的存储设备22B上。在步骤S6,接口***32从进程40接收对该组数据对象50中的一个的请求,并在步骤S7,接口***32提供所预取的数据对象50以供进程40使用。
应当理解,图3所示出的步骤和相应的顺序只是解释性的。就这一点而言,在不脱离这里所描述的本发明的情况下,可以同时执行两个或多个步骤,可以修改所述顺序,可以执行一个或多个附加步骤,和/或可以删除一个或多个步骤。例如,在进程40已经执行之后,要求***38可以分析历史执行信息54以便更新用于进程40的知识库。另外,当没有预见到进程40要求数据对象50时,转送***34可以把数据对象50移动到较慢的存储设备。就这一点而言,所要求的发明并不受限于这里所示出并描述的特定步骤配置。
返回到图2,如这里所用,数据对象50可以包括存储在存储设备22B1-3中的相关数据的任何组。例如,数据对象50可以包括存储在文件***中的电子文件。然而应当理解,数据对象50可以包括相关数据的一部分,例如电子文件的一个扇区的数据。就这一点而言,进程40可以只请求电子文件中所有数据的一部分和/或转送***34可以只预取电子文件中所有数据的一部分。无论如何,应当理解数据对象50可以包括任何其它类型的存储单元,诸如数据储存库(诸如数据库等)内的一个或多个组成部分(component)。
另外,虽然示出并描述了三级存储设备22B1-3,然而应当理解可以实现任意级数的存储设备22B1-3。此外,存储设备22B1-3可以包括任何类型的存储设备22B1-3。例如,在本发明的另一实施例中,存储设备可以包括:高速缓冲存储器、主存储器、磁性存储器(例如硬盘)驱动器、光学存储设备等。更进一步地,应当理解,进程40表示任何类型的可执行实体,诸如应用程序、线程、程序模块、电子事务、电子服务请求等。就这一点而言,本发明可以以任何计算标度来管理多个分级存储等级。
虽然这里作为用于管理数据的方法和***而示出并描述,然而应当理解本发明进一步提供了各种候选实施例。例如在一个实施例中,本发明提供了一种存储在计算机可读介质上的程序产品,当其执行时能够使计算机基础结构使用历史执行信息54来管理数据和/或存储设备(图2)。就这一点而言,计算机可读介质包括诸如存储管理***30(图1)之类的程序代码,用于实现上述过程。应当理解,术语“计算机可读介质”包括程序代码的一种或多种任何类型的物理实施例。特别地,计算机可读介质可以包括嵌入在一种或多种便携式存储制造产品(例如,压缩盘、磁盘、磁带等)上的程序代码、嵌入在计算设备的一个或多个数据存储部分上的程序代码,所述数据存储部分包括诸如存储器22A(图1)和/或存储***22B(图1)(例如,固定磁盘、只读存储器、随机存取存储器、高速缓冲存储器等),作为越过网络的数据信号(例如,在程序产品的有线/无线电子分发期间)等。
在另一实施例中,本发明提供了一种生成用于使用历史执行信息54来管理数据和/或存储设备的***的方法(图2)。在这种情况下,可以获得(例如,创建、维护、利用等)诸如计算机基础结构12(图1)之类的计算机基础结构,获得(例如,创建、购买、使用、修改等)执行这里所描述过程的一个或多个***并将其部署到所述计算机基础结构中。就这一点而言,每个***的部署可以包括以下一个或多个:(1)把程序代码从计算机可读介质安装到诸如计算设备14(图1)之类的计算设备上;(2)向计算机基础结构添加一个或多个计算设备;以及(3)合并和/或修改所述计算机基础结构的一个或多个现有***以使所述计算机基础结构能够执行本发明的过程步骤。
在又一实施例中,本发明提供了一种在订阅、广告和/或收费的基础上执行这里所描述过程的商业方法。即,诸如存储管理供应商之类的服务供应商可以如这里所描述来管理数据。在这种情况下,服务供应商可以管理(例如,创建、维护、支持等)诸如计算机基础结构12(图1)之类的计算机基础结构,所述计算机基础结构12为一个或多个客户执行这里所描述的过程。作为回报,服务供应商可以按照订阅和/或计费协议从客户那里收款和/或所述服务供应商可以根据向一个或多个第三方的广告销售来收款。
如这里所用,应当理解术语“程序代码”和“计算机程序代码”是同义的并且意指用任何语言、代码或符号的指令集的任何表示,所述指令集使具有信息处理能力的计算设备直接地执行特定功能,或在以下任何组合之后执行特定功能:(a)转换为另一种语言、代码或符号;(b)以不同的材料形式再现;和/或(c)解压缩。就这一点而言,程序代码可以实现为一种或多种程序产品,诸如应用/软件程序、构成软件/功能库、操作***、用于特定计算和/或I/O设备的基本I/O***/驱动器等。
为了图示和描述本发明,已经给出了本发明的各个方面的以上描述,但并非意在把本发明穷举或限制为所公开的精确形式,而且显然地,可以对本发明进行多种修改和改进。这种修改和改进对所属领域的技术人员来说是显而易见的,并且包括在如后所附的本发明的范围内。

Claims (23)

1.一种管理数据的方法,所述方法包括:
获得进程的历史执行信息;
根据所述历史执行信息来确定所述进程的数据要求集;以及
在所述进程请求包括在所述数据要求集中的数据对象之前,把所述数据对象从第一存储设备移动到比所述第一存储设备更快的第二存储设备中。
2.如权利要求1所述的方法,还包括在所述进程执行之前把所述数据对象登台到所述第二存储设备上。
3.如权利要求1所述的方法,还包括:
从所述进程接收对所述数据对象的请求;以及
响应所述请求而提供所移动的数据对象以供所述进程使用。
4.如权利要求1所述的方法,其中所述确定步骤包括根据所述历史执行信息来管理所述进程的数据要求知识库。
5.如权利要求1所述的方法,还包括在获得进程的历史执行信息之前预测所述进程将在第一时间执行。
6.如权利要求5所述的方法,还包括在所述第一时间之前根据所述第一时间和预取时间间隔来标识第二时间,所述移动按照第二时间开始。
7.如权利要求6所述的方法,所述标识包括:
根据把所述数据对象从所述第一存储设备移动到第二存储设备所需要的时间量来确定所述预取时间间隔;以及
根据所述第一时间和预取时间间隔来计算所述第二时间。
8.如权利要求6所述的方法,还包括:
分析使用了所述预取时间间隔的进程的执行;以及
根据所述分析来调整所述预取时间间隔。
9.如权利要求1所述的方法,还包括在已执行所述进程之后把所述数据对象从所述第二存储设备移动到所述第一存储设备。
10.如权利要求1所述的方法,还包括在所述获得步骤之前确定所述进程包括关键进程。
11.一种用于管理数据的***,所述***包括:
用于获得进程的历史执行信息的装置;
用于根据所述历史执行信息来确定所述进程的数据要求集的装置;和
用于在所述进程请求包括在所述数据要求集中的数据对象之前把所述数据对象从第一存储设备移动到比所述第一存储设备更快的第二存储设备中的装置。
12.如权利要求11所述的***,还包括用于在所述进程执行之前把所述数据对象登台到所述第二存储设备上的装置。
13.如权利要求11所述的***,还包括:
用于从所述进程接收对所述数据对象的请求的装置;和
用于响应于所述请求而提供所移动的数据对象以供所述进程使用的装置。
14.如权利要求11所述的***,其中用于确定所述进程的数据要求集的装置包括用于根据所述历史执行信息来管理所述进程的数据要求知识库的装置。
15.如权利要求11所述的***,还包括用于预测所述进程将在第一时间执行的装置。
16.如权利要求15所述的***,还包括用于在所述第一时间之前根据所述第一时间和预取时间间隔来标识第二时间的装置,其中所述移动按照第二时间开始。
17.如权利要求16所述的***,还包括用于把所述数据对象从所述第二存储设备移动到所述第一存储设备的装置。
18.如权利要求11所述的***,还包括用于确定所述进程包括关键进程的装置。
19.如权利要求11所述的***,其中所述数据对象包括电子文件。
20.一种分级存储管理***,包括:
用于获得进程的历史执行信息的***;
用于根据所述历史执行信息来确定所述进程的数据要求集的***;和
用于在所述进程请求数据对象之前把包括在所述数据要求集中的数据对象从第一存储设备移动到比所述第一存储设备更快的第二存储设备中的***。
21.如权利要求20所述的分级存储管理***,其中所述历史执行信息包括***管理设备数据。
22.如权利要求20所述的分级存储管理***,还包括用于在所述进程执行之前将电子文件登台到所述第二存储设备中的装置。
23.如权利要求20所述的分级存储管理***,还包括用于预测所述进程将在第一时间执行的装置。
CN 200710001448 2006-02-03 2007-01-08 用于管理数据的方法和*** Active CN101013427B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/347,404 US8838620B2 (en) 2006-02-03 2006-02-03 Predictive data object retrieval
US11/347,404 2006-02-03

Publications (2)

Publication Number Publication Date
CN101013427A CN101013427A (zh) 2007-08-08
CN101013427B true CN101013427B (zh) 2010-09-29

Family

ID=38335274

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200710001448 Active CN101013427B (zh) 2006-02-03 2007-01-08 用于管理数据的方法和***

Country Status (2)

Country Link
US (1) US8838620B2 (zh)
CN (1) CN101013427B (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5081498B2 (ja) * 2007-05-24 2012-11-28 株式会社日立製作所 計算機システム、および、その制御方法
CN101944101B (zh) * 2010-07-14 2012-07-25 北京北大众志微***科技有限责任公司 一种文件预取动态定量指示方法及装置
JP5671897B2 (ja) * 2010-09-13 2015-02-18 富士ゼロックス株式会社 画面制御装置、画像形成装置およびプログラム
US9201794B2 (en) 2011-05-20 2015-12-01 International Business Machines Corporation Dynamic hierarchical memory cache awareness within a storage system
US8621157B2 (en) * 2011-06-13 2013-12-31 Advanced Micro Devices, Inc. Cache prefetching from non-uniform memories
CN102662690B (zh) * 2012-03-14 2014-06-11 腾讯科技(深圳)有限公司 应用程序启动方法和装置
WO2014111984A1 (ja) 2013-01-17 2014-07-24 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびファイル管理方法
US9311359B2 (en) 2013-01-30 2016-04-12 International Business Machines Corporation Join operation partitioning
US9256484B2 (en) 2013-06-09 2016-02-09 Apple Inc. Dynamic adjustment of mobile device based on user activity
US9603094B2 (en) 2013-06-09 2017-03-21 Apple Inc. Non-waking push notifications
US9392393B2 (en) 2013-06-09 2016-07-12 Apple Inc. Push notification initiated background updates
US10223156B2 (en) * 2013-06-09 2019-03-05 Apple Inc. Initiating background updates based on user activity
JP2015088146A (ja) * 2013-11-01 2015-05-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
US10117600B2 (en) 2014-04-15 2018-11-06 Apple Inc. Pacing activity data of a user
US9432796B2 (en) 2014-05-30 2016-08-30 Apple Inc. Dynamic adjustment of mobile device based on peer event data
US9813990B2 (en) 2014-05-30 2017-11-07 Apple Inc. Dynamic adjustment of mobile device based on voter feedback
US9465679B2 (en) 2014-05-30 2016-10-11 Apple Inc. Dynamic adjustment of mobile device based on adaptive prediction of system events
US9432839B2 (en) 2014-05-30 2016-08-30 Apple Inc. Dynamic adjustment of mobile device based on thermal conditions
US9672248B2 (en) 2014-10-08 2017-06-06 International Business Machines Corporation Embracing and exploiting data skew during a join or groupby
US9922064B2 (en) 2015-03-20 2018-03-20 International Business Machines Corporation Parallel build of non-partitioned join hash tables and non-enforced N:1 join hash tables
US10303791B2 (en) 2015-03-20 2019-05-28 International Business Machines Corporation Efficient join on dynamically compressed inner for improved fit into cache hierarchy
US10650011B2 (en) * 2015-03-20 2020-05-12 International Business Machines Corporation Efficient performance of insert and point query operations in a column store
US10108653B2 (en) 2015-03-27 2018-10-23 International Business Machines Corporation Concurrent reads and inserts into a data structure without latching or waiting by readers
US10831736B2 (en) 2015-03-27 2020-11-10 International Business Machines Corporation Fast multi-tier indexing supporting dynamic update
US10594835B2 (en) 2015-06-05 2020-03-17 Apple Inc. Efficient context monitoring
US20170083013A1 (en) * 2015-09-23 2017-03-23 International Business Machines Corporation Conversion of a procedural process model to a hybrid process model
US10452273B2 (en) 2016-09-24 2019-10-22 International Business Machines Corporation Preemptive event-based data migration
US20180150443A1 (en) * 2016-11-25 2018-05-31 Google Inc. Application program interface for managing complication data
JP6253752B1 (ja) * 2016-11-29 2017-12-27 株式会社東芝 階層化ストレージシステム
US10613764B2 (en) 2017-11-20 2020-04-07 Advanced Micro Devices, Inc. Speculative hint-triggered activation of pages in memory
FR3075413B1 (fr) * 2017-12-20 2020-01-10 Bull Sas Procede de pre-chargement de donnees
CN109299139B (zh) * 2018-09-29 2022-02-22 创新先进技术有限公司 一种信息查询方法及装置
JP7200746B2 (ja) * 2019-02-25 2023-01-10 富士通株式会社 制御装置、及び制御プログラム
CN110727463B (zh) * 2019-09-12 2021-08-10 无锡江南计算技术研究所 一种基于动态信用的零级指令循环缓冲预取方法及装置
CN112835853B (zh) * 2020-12-31 2024-03-22 北京聚云科技有限公司 一种数据处理类型确定方法及装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026391A (en) * 1997-10-31 2000-02-15 Oracle Corporation Systems and methods for estimating query response times in a computer system
US7010536B1 (en) * 1998-01-30 2006-03-07 Pattern Intelligence, Inc. System and method for creating and manipulating information containers with dynamic registers
US6434682B1 (en) * 2000-09-28 2002-08-13 International Business Machines Corporation Data management system with shortcut migration via efficient automatic reconnection to previously migrated copy
US6931395B2 (en) * 2001-10-25 2005-08-16 International Business Machines Corporation Method and apparatus for optimizing queries in a logically partitioned computer system
US7299346B1 (en) * 2002-06-27 2007-11-20 William K. Hollis Method and apparatus to minimize computer apparatus initial program load and exit/shut down processing
US7801894B1 (en) * 2004-10-28 2010-09-21 Stored IQ Method and apparatus for harvesting file system metadata
US7334218B2 (en) * 2002-09-02 2008-02-19 International Business Machines Corporation Method for adaptively assigning of data management applications to data objects
US7031958B2 (en) * 2003-02-06 2006-04-18 International Business Machines Corporation Patterned based query optimization
US7912851B2 (en) * 2003-10-22 2011-03-22 International Business Machines Corporation Caching pages via host variable correlation
US7844582B1 (en) * 2004-10-28 2010-11-30 Stored IQ System and method for involving users in object management
US8214191B2 (en) * 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
US8209524B2 (en) * 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
US20070110408A1 (en) * 2005-11-14 2007-05-17 Chi-Lun Chang Device for displaying boot animation of optical disc player and method thereof
US20070143246A1 (en) * 2005-12-15 2007-06-21 International Business Machines Corporation Method and apparatus for analyzing the effect of different execution parameters on the performance of a database query

Also Published As

Publication number Publication date
CN101013427A (zh) 2007-08-08
US8838620B2 (en) 2014-09-16
US20070185933A1 (en) 2007-08-09

Similar Documents

Publication Publication Date Title
CN101013427B (zh) 用于管理数据的方法和***
CN102227121B (zh) 基于机器学习的分布式缓存策略自适应切换方法及***
CN105074724B (zh) 使用列式数据库中的直方图进行有效查询处理
US11038948B2 (en) Real time updates and predictive functionality in block chain
CN100530133C (zh) 用于在网格环境内管理工作负荷的方法和***
CN108446975B (zh) 一种额度管理方法及装置
CN109753356A (zh) 一种容器资源调度方法、装置及计算机可读存储介质
JP2007502484A (ja) 不活性顧客を予測するための方法およびシステム
CN105074664A (zh) 成本最小化的任务调度程序
CN103493076B (zh) 用于优化重复的搜索请求的改进预订***的方法和***
US11341097B2 (en) Prefetching based on historical use and real-time signals
US11593735B2 (en) Automated and efficient personal transportation vehicle sharing
CN109324905A (zh) 数据库操作方法、装置、电子设备及存储介质
CN103514207A (zh) 一种业务对象推送的方法以及装置
CN110334059A (zh) 用于处理文件的方法和装置
CN111598360A (zh) 服务策略确定方法、装置及电子设备
Seo et al. Rebalancing docked bicycle sharing system with approximate dynamic programming and reinforcement learning
EP1916599A1 (en) Method, system and computer program for configuring server farms at minimum cost
TW200426602A (en) Apparatus and methods for classification of web sites
CN113760521A (zh) 一种虚拟资源的分配方法和装置
CN110019440A (zh) 数据的处理方法及装置
JP2022094945A (ja) コンピュータ実装方法、システム及びコンピュータプログラム(バッチジョブのスケジューリングの最適化)
Periyasami et al. Combinatorial double auction based meta-scheduler for medical image analysis application in grid environment
WO2021106176A1 (ja) ソフトウェア配置システム、ソフトウェア配置装置、ソフトウェア配置方法、拠点コンピュータおよびプログラム
CN113535673A (zh) 生成配置文件及数据处理的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20211206

Address after: USA New York

Patentee after: Qindarui Co.

Address before: USA New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right