CN101013427B - 用于管理数据的方法和系统 - Google Patents
用于管理数据的方法和系统 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6024—History 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所述的分级存储管理系统,还包括用于预测所述进程将在第一时间执行的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/347,404 | 2006-02-03 | ||
US11/347,404 US8838620B2 (en) | 2006-02-03 | 2006-02-03 | Predictive data object retrieval |
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)
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 | 腾讯科技(深圳)有限公司 | 应用程序启动方法和装置 |
EP2947571B1 (en) | 2013-01-17 | 2019-09-18 | Sony Interactive Entertainment Inc. | Information processing device and file management method |
US9311359B2 (en) | 2013-01-30 | 2016-04-12 | International Business Machines Corporation | Join operation partitioning |
US10223156B2 (en) | 2013-06-09 | 2019-03-05 | Apple Inc. | Initiating background updates based on user activity |
US9603094B2 (en) | 2013-06-09 | 2017-03-21 | Apple Inc. | Non-waking push notifications |
US9256484B2 (en) | 2013-06-09 | 2016-02-09 | Apple Inc. | Dynamic adjustment of mobile device based on user activity |
US9392393B2 (en) | 2013-06-09 | 2016-07-12 | Apple Inc. | Push notification initiated background updates |
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 |
US9465679B2 (en) | 2014-05-30 | 2016-10-11 | Apple Inc. | Dynamic adjustment of mobile device based on adaptive prediction of system events |
US9813990B2 (en) | 2014-05-30 | 2017-11-07 | Apple Inc. | Dynamic adjustment of mobile device based on voter feedback |
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 |
US10491708B2 (en) | 2015-06-05 | 2019-11-26 | Apple Inc. | Context notifications |
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)
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 |
US7805449B1 (en) * | 2004-10-28 | 2010-09-28 | Stored IQ | System, method and apparatus for enterprise policy management |
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 |
-
2006
- 2006-02-03 US US11/347,404 patent/US8838620B2/en active Active
-
2007
- 2007-01-08 CN CN 200710001448 patent/CN101013427B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US8838620B2 (en) | 2014-09-16 |
CN101013427A (zh) | 2007-08-08 |
US20070185933A1 (en) | 2007-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101013427B (zh) | 用于管理数据的方法和系统 | |
US11038948B2 (en) | Real time updates and predictive functionality in block chain | |
CN102227121B (zh) | 基于机器学习的分布式缓存策略自适应切换方法及系统 | |
CN105074724B (zh) | 使用列式数据库中的直方图进行有效查询处理 | |
CN108446975B (zh) | 一种额度管理方法及装置 | |
CN100530133C (zh) | 用于在网格环境内管理工作负荷的方法和系统 | |
US20200057918A1 (en) | Systems and methods for training artificial intelligence to predict utilization of resources | |
CN111722806B (zh) | 云盘分配方法、装置、电子设备及存储介质 | |
JP2007502484A (ja) | 不活性顧客を予測するための方法およびシステム | |
CN105074664A (zh) | 成本最小化的任务调度程序 | |
US11593735B2 (en) | Automated and efficient personal transportation vehicle sharing | |
CN112416960A (zh) | 多场景下的数据处理方法、装置、设备及存储介质 | |
CN103514207A (zh) | 一种业务对象推送的方法以及装置 | |
CN110334059A (zh) | 用于处理文件的方法和装置 | |
CN111598360A (zh) | 服务策略确定方法、装置及电子设备 | |
Seo et al. | Rebalancing docked bicycle sharing system with approximate dynamic programming and reinforcement learning | |
TW200426602A (en) | Apparatus and methods for classification of web sites | |
US20080104383A1 (en) | Method, system and computer program for configuring server farms at minimum cost | |
CN110389817A (zh) | 多云系统的调度方法、装置和计算机程序产品 | |
CN110019440A (zh) | 数据的处理方法及装置 | |
CN113535673A (zh) | 生成配置文件及数据处理的方法和装置 | |
JP5877825B2 (ja) | データ処理装置、及びデータ処理方法 | |
JP2022094945A (ja) | コンピュータ実装方法、システム及びコンピュータプログラム(バッチジョブのスケジューリングの最適化) | |
Periyasami et al. | Combinatorial double auction based meta-scheduler for medical image analysis application in grid environment | |
CN114138758A (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 |