CN106020940A - 用于确定数据集的放置的存储层级的方法和系统 - Google Patents

用于确定数据集的放置的存储层级的方法和系统 Download PDF

Info

Publication number
CN106020940A
CN106020940A CN201610168014.3A CN201610168014A CN106020940A CN 106020940 A CN106020940 A CN 106020940A CN 201610168014 A CN201610168014 A CN 201610168014A CN 106020940 A CN106020940 A CN 106020940A
Authority
CN
China
Prior art keywords
task
data set
storage level
level
storage
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.)
Granted
Application number
CN201610168014.3A
Other languages
English (en)
Other versions
CN106020940B (zh
Inventor
A·古普塔
S·塞沙德里
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.)
International Business Machines Corp
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 CN106020940A publication Critical patent/CN106020940A/zh
Application granted granted Critical
Publication of CN106020940B publication Critical patent/CN106020940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了用于确定数据集的放置的存储层级的方法和系统。提供用于在工作流中的任务的执行期间确定数据集的放置的存储层级的计算机程序产品、系统和方法。对于作业的任务的工作流执行模式的表示指示所述任务以及由所述任务在其上操作的数据集的依赖性。基于在所述工作流执行模式中指示的任务的依赖性,做出对于任务的数据集到多个存储层级的分配的确定。所述数据集中由所述任务中经受事件的对象任务在其上操作的对象数据集到在对于所述对象任务对象的分配中指示的分配的存储层级的移动被调度。所述数据集的移动响应于关于所述对象任务的事件而被调度执行。

Description

用于确定数据集的放置的存储层级的方法和系统
技术领域
本发明涉及用于在工作流中的任务执行期间确定数据集的放置(placement)的存储层级(tier)的计算机程序产品、系统和方法。
背景技术
企业正在将包括大数据分析的计算操作移动到云,其中计算可以跨(across)分布式计算节点而执行。管理多个任务跨各种计算节点的执行的一个系统称作ApacheTM (Apache是商标并且Hadoop是Apache软件基金会遍及世界的注册商标)。Hadoop是使得能够进行大数据集跨商品服务器的集群的分布式处理的开源软件项目。Hadoop被设计为以非常高的容错度从单个服务器向上扩展至数以千计的机器。Hadoop框架用来通过分布式映射化简(map-reduce)风格的处理在非常大的数据集上运行长期运行的分析工作。
一些Hadoop分布式计算环境利用由存储层管理的共享后端存储,其中每个计算节点被分配共享存储的一部分,该共享存储用作计算节点的本地存储。存储层可以使用热/冷(hot/cold)数据分类以确定将数据定位于不同存储层级上的什么位置,使得“热的”或者更频繁存取的数据被放置在更昂贵更高效能(performance)的存储层级中。其它选项包括将更高效能的层级分配给具有更高服务水平协议(SLA)保证的数据集或者基于定价模型来分配。
在本领域中存在对于用于在分布式计算环境中将存储层级分配给任务的改进技术的需要。
发明内容
提供用于在工作流中的任务执行期间确定数据集放置的存储层级的计算机程序产品、系统和方法。对于作业的任务的、指示所述任务以及由所述任务在其上操作的数据集的依赖性(dependency)的工作流执行模式的表示被处理。基于在所述工作流执行模式中指示的任务的依赖性,做出对于任务的数据集到多个存储层级的分配的确定,其中较高性能(performing)的存储层级包括相对于相对较低性能的存储层级的较快存取存储设备。所述数据集中由所述任务中经受事件的对象(subject)任务在其上操作的对象数据集到在对于所述对象任务对象的分配中指示的分配的存储层级的移动被调度。所述数据集的移动响应于关于所述对象任务的事件而被调度执行。
附图说明
图1例示计算环境的实施例。
图2a例示工作流执行计划的示例。
图2b例示作业的示例。
图3例示任务顶点(vertex)信息的实施例。
图4例示存储层级分配的实施例。
图5例示数据集放置调度事件的实施例。
图6例示将存储层级分配给任务的操作的实施例。
图7a和7b例示确定对于数据集的存储层级分配的调度的操作的实施例。
图8例示响应于任务事件而将数据集移动到分配的存储层级的操作的实施例。
图9描绘云计算节点的实施例。
图10描绘云计算环境的实施例。
图11描绘云计算环境的抽象模型层的实施例。
具体实施方式
描述的实施例提供确定多个存储层级中的存储层级以用于在定义工作流执行模式的不同作业中执行的任务的技术,所述多个存储层级每一个提供不同级别的存储效能。指示跨作业的任务的依赖性以及跨作业的依赖性的工作流执行模式被用来确定由任务在其上操作的数据集到不同存储层级的分配。存储层然后可以响应于诸如任务的开始和完成的不同任务事件,调度数据集在不同层级之间的移动。规则被用来确定数据集放置的调度,诸如基于数据集(包括由相同任务在其上操作、由多个任务同时在其上操作、由向一个依赖任务提供输入的多个任务在其上操作的数据集)的相关性以及其它准则,诸如基于给定效用函数的最优化放置(诸如使跨工作流或工作流内的总体经过时间最大化)。存储层然后响应于任务事件和对于正在发生的任务事件的数据集放置的确定调度来实现数据集放置操作。
图1例示在可以通过网络通信的一个或多个计算节点、虚拟节点和/或物理节点中实现的、具有应用层102和存储由在应用层102中执行的任务处理的数据集的存储层104的、诸如云计算环境的分布式计算环境100的实施例。可替代地,应用102和存储104层可以在单个计算设备或互连计算设备中实现。应用层102包括作业管理器106,其管理一个或多个作业1081、1082…108n的执行流,每个作业包括一个或多个待执行的任务1101、1102…110n。每个作业1081、1082…108n由一个或多个任务1101、1102…110n的集合组成。任务包括需要被执行的工作的单位,并且可以由作为子任务的任务组成,其中任务可以并行地同时运行或者顺序地运行(其中一个任务必须在另一个任务开始之前完成)。作业1081、1082…108n可以是相互依赖的,其中多个作业中的任务1101、1102…110n的某些可以依赖于在另一个作业中执行的任务的输入或完成。任务也可以依赖于相同作业内的任务的执行。对于顺序的工作流,任务1101、1102…110n的某个子集必须在相同或不同的作业1081、1082…108n中的下一个依赖任务可以开始之前完成。这样,任务可以依赖于相同或不同的作业中的任务的执行。分析工作负载常常包括跨作业的相互依赖,因为分析查询被转换成一系列批处理作业,其中一个作业的输出用作下一个作业的输入。
工作流执行模式200提供描述任务的执行流的流模式,诸如可以以有向非循环图(DAG)表示。工作流执行模式200可以根据Hadoop框架和本领域中已知的其它工作流处理框架来构造。工作流执行模式200可以包括大规模数据分析作业或其它类型的作业。
存储层104管理由任务1101、1102…110n在其上操作的数据集在不同存储层级1121、1122…112n上的放置。这样,由在应用层102中执行任务1101、1102…110n的计算节点使用的本地存储被分配共享存储层级1121、1122…112n的一个中的本地存储。每个存储类可以包括提供不同级别的存储效能的不同的存储管理类,其中较高效能的存储层级1121、1122…112n包括相对于较慢性能层级的较高性能存储设备。例如,最高性能层级1121可以由快速存取固态存储设备(SSD)组成,然而中等性能层级1122可以由快速存取硬盘驱动器组成,并且最慢性能层级112n可以由最慢性能硬盘驱动器组成。
存储层104包括存储层级管理器116以管理响应于任务执行事件而由任务1101、1102…110n在其上操作的数据集到存储层级1121、1122…112n上的放置。存储层级管理器116可以从应用层100接收工作流执行模式200并且从工作流执行模式确定存储层级分配400,该存储层级分配400提供存储层级1121、1122…112n到作业1081、1082…108n中的每个任务1101、1102…110n的分配。在某些实施例中,由任务1101、1102…110n在其上操作的数据集优选被放置在分配的存储层级1121、1122…112n上。存储层级管理器116还可以产生数据集放置调度500,该数据集放置调度500基于发生的不同事件或者任务的状态(诸如开始任务、结束任务等)提供用于将由任务在其上操作的数据集移动到存储层级1121、1122…112n中的调度。
在一个实施例中,存储层级管理器116可以预先产生数据集放置调度500以在任务1101、1102…110n通过应用层102的执行期间使用。在可替代的实施例中,数据集放置调度500的确定可以在处理任务事件的同时实时地做出,以在接收到任务事件时实现。
用来实现存储层级1121、1122…112n的存储设备可以由本领域中已知的一个或多个存储设备组成,这些存储设备诸如互连的存储设备,其中存储设备可以包括硬盘驱动器、由固态电子器件组成的固态存储设备(SSD)、EEPROM(电可擦除可编程只读存储器)、闪存、闪盘、随机存取存储(RAM)驱动器、存储级内存(SCM)等、相变存储器(PCM)、电阻式随机存取存储器(RRAM)、自旋转移矩存储器(STM-RAM)、导体桥接RAM(CBRAM)、磁硬盘驱动器、光盘、磁带等。一个存储层级中的存储设备可以组织为独立磁盘冗余阵列(RAID)阵列、磁盘簇(JBOD)阵列和其它布置。存储层级1121、1122…112n的每一个中的存储设备可以与和存储层级相关联的存储效能概况(profile)一致。
应用层102和存储层104可以在虚拟的或者物理的一个或多个计算节点上实现,所述计算节点在可以通过网络通信的计算系统中实现,该网络诸如存储区域网(SAN)、本地局域网(LAN)、内联网、因特网、广域网(WAN)、对等网络、无线网络、仲裁环网络等。在一个实施例中,计算环境100可以包括云计算环境,其中操作跨多个计算节点而分布。
虽然示出诸如作业、任务和存储层级等的元素的某些数量的实例,但是它们可以是任意数量的这些元素。
通过示例,图2a将工作流执行环境200的示例例示为包括多个作业2021、2022和2023。工作流200包括示出在模式200中包括顶点(例如300i)的任务的执行流的DAG。在图2a的示例中,不同作业中的任务依赖于相同和不同作业中的先前任务的执行和完成,并且作业与其它作业相互依赖。
图2b提供作业250的示例,作业250处理具有四个任务的查询,第一字符串查找(Grep)任务执行Grep操作,其是对于匹配字符串执行文档的搜索的任务,第二页面评级(Pagerank)任务用于根据次序对正在被搜索的文档集合进行评级,第三排序(Sort)任务用于对因Grep任务而产生的字符串进行排序,并且第四结合(Join)任务用于基于用户查询结合排序和页面评级操作的输出。
图3将对于在工作流执行模式200的工作流中表示的任务的一个的任务顶点信息300的实施例例示为包括:顶点标识符(ID)302,其标识工作流模式200中的顶点;包括由顶点302表示的任务306的作业的作业ID 304;父任务308,其包括在任务306可以开始之前必须完成的零个或一个或多个任务,诸如向任务306提供输入的任务或者在顺序工作流中在任务306之前的任务;子任务312,其包括在任务306完成之前不可以开始的零个或一个或多个任务,诸如从任务306接收输入的任务或者在顺序工作流中继续任务306的任务;以及由任务306在其上操作的一个或多个数据集312。
图4将存储层级分配400i的实例的实施例例示为包括任务ID 402和分配的存储层级404,该存储层级404包括存储层级1121、1122…112n中优选被分配给由任务402在其上操作的数据集的一个。
图5将数据集放置调度事件500i的实例的实施例例示为包括:任务i,j 502,其中i是作业j中的任务;对于任务502发生的事件504,例如开始、完成等;以及对于由经历任务事件504的任务502在其上操作的多个数据集5061…506n,数据集5041…504n响应于任务事件504而优选位于其上的分配的存储层级5081…508n。数据集放置调度事件500i中数据集506i和分配的存储层级508i对的存在可以指示将数据集506i移动到分配的存储层级508i
图6例示由存储层级管理器116执行以通过将规则应用到如在工作流执行模式200和任务顶点信息300i中表示的任务执行流来产生存储层级分配400的操作的实施例。当发起(在框600处)将存储层级1121、1122…112n分配给任务1101、1102…110n的操作时,存储层级管理器116处理(在框602处)工作流执行模式200和任务顶点信息300i。存储层级管理器116从工作流执行模式200确定(在框606处)相关数据集(related data set),该相关数据集包括以下数据集:由一个任务1101、1102…110n在其上操作的数据集;由来自作业1081、1082…108n的至少一个的一组任务1101、1102…110n同时在其上操作的数据集;由向依赖任务提供输入的一组任务1101、1102…110n在其上操作的数据集,在依赖任务可以执行之前,该依赖任务必须从所述一组任务接收输入;以及由作业1081、1082…108n的一个或者多个中的顺序任务(sequential task)1101、1102…110n在其上操作的数据集,其中序列(sequence)中的一个任务不可以开始,直到序列中的前一个任务完成。其它因素也可以用来确定相关数据集。对于相关数据集的每一个,做出(在框608处)当存在在相关数据集上操作的当前任务时在较高效能存储层级上是否存在足够的空间来存储相关数据集的确定。对于当存在在相关数据集上操作的一个或多个任务时可以被分配给较高效能存储层级1121的相关数据集,存储层级管理器116将在相关数据集上操作的任务分配(在框610处)给较高性能存储层级。对于当存在在相关数据集上操作的一个或多个任务时不可以被分配给较高效能存储层级的相关数据集,存储层级管理器116将在那些相关数据集上操作的任务分配(在框612处)给相对于较高性能存储层级的较低性能存储层级1122…112n
在确定如何将相关数据集分配给较高性能存储层级1121时,存储层级管理器116根据一些因素选择相关数据集来优化在较高效能存储层级1121上的放置,诸如根据大小,诸如通过将由较大数量的任务在其上操作的相关数据集优选放置在较高效能存储层级1121上,通过将由较高优先级的任务在其上操作的相关数据集优先放置在较高效能存储层级1121上等。
存储层级管理器116可以将不是相关数据集的部分的数据集分配(在框614处)给较低性能存储层级1122…112n。图6中确定的分配的结果是存储层级分配400提供存储层级404到任务402的优选分配。
图7a和7b例示由存储层级管理器116执行以基于工作流执行模式200、顶点信息300i和存储层级分配400确定数据集放置调度500的操作的实施例。关于图7a,当发起(在框702处)确定对于数据集的存储层级分配的调度的操作时,存储层级管理器116对于作业j中的任务i的对象任务(subject)i,j开始框702至726的操作的循环。对于每个对象任务i,j,存储层级管理器116对于将由对象任务i,j在其上操作的每个对象数据集k执行框704至724的操作的循环。如果(在框706处)当任务i,j开始时,数据集k没有正在被另一个任务操作,那么做出(在框708处)关于当任务i,j开始时数据集k是否在对于任务i,j 402的分配的存储层级404上的确定。如果(在框708处)当任务i,j开始时,数据集k不在对于任务i,j的分配的存储层级上,那么存储层级管理器116调度(在框712处)以在开始任务i,j时将数据集k移动到对于任务i,j的分配的存储层级,诸如通过将数据集k和分配的存储层级404作为数据集506i和分配的存储层级508i对添加到具有开始事件504的任务i,j 502的数据集放置调度事件500i。如果(在框708处)数据集k在对于任务i,j的分配的存储层级404上,则数据集k被调度(在框710处)以在开始任务i,j时保持在分配的存储层级404上。数据集k可以被调度以通过不添加数据集506i和分配的存储层级508i对到数据集放置调度事件500i而保持在分配的存储层级上。
如果(在框706处)当任务i,j开始时数据集k正在被另一个任务在上面操作,那么存储层级管理器116确定(在框714处)当任务i,j开始时,任务i,j的分配的存储层级404相对于数据集k所位于的当前存储层级是否是较高性能存储层级。如果是,那么存储层级管理器116调度(在框712处)以在开始任务i,j时将数据集k移动到对于任务i,j的分配的存储层级404,诸如通过将任务i,j和分配的存储层级404指示(indicate)到对于任务i,j开始事件的数据集放置调度事件500i。否则,如果(在框714处)对于任务i,j的分配的存储层级404相对于当前存储层级不是较高性能的,那么控制继续进行到框710以留下位于当前存储层级上的数据集。
在确定当开始任务i,j时对于数据集k执行的调度操作之后,控制继续进行(从框710或712)到图7b中的框716以对于任务i,j的完成执行调度。如果(在框716处)当任务i,j完成时,另外的任务没有继续在数据集k上操作,那么存储层级管理器116调度(在框718处)以在任务i,j完成时将数据集k移动到相对于数据集当前所位于的存储层级的较低效能存储层级。框718处的调度可以通过将数据集k和较低性能分配的存储层级404对添加到对于任务i,j 502和完成事件504的数据集放置调度事件500i以调度到较低性能存储层级的移动来执行。如果(在框716处)当任务i,j完成时另外的任务正在数据集k上操作,那么做出(在框720处)在数据集k上操作的另外的任务是否被分配给相对于数据集k当前所位于的当前存储层级的较低性能存储层级。如果是,那么存储管理器层级116调度(在框722处)以在任务i,j完成时将数据集k移动到分配给404另外的任务的存储层级。在对于完成的任务事件执行调度(从框718或722)或者确定当任务i,j完成时对于数据集k不需要调度(从框720的否分支)之后,那么控制继续进行(在框724处)回到框704,以考虑任务i,j在其上操作的下一个数据集,直到所有一个或多个数据集被考虑。在考虑由任务i,j在其上操作的所有数据集之后,控制继续进行(在框726处)回到框702,以考虑下一个任务i,j,直到所有作业1081、1082…108n中的所有任务1101、1102…110n被考虑。
响应于任务1101、1102…110n的开始或完成,存储层级管理器116确定(在框728处)随后被处理的数据集。存储层级管理器116调度(在框730处)随后将被处理的数据集到相对于至少一个其它存储层级具有较高效能的较高性能存储层级的预先放置(prestaging),以使得当数据集被处理时数据集在较高性能存储层级上可用。为了执行调度,预先放置的数据集和诸如较高性能存储层级的分配的存储层级对可以被添加到对于触发预先放置的任务调度事件的调度事件500i
图7a和7b的所描述的操作讨论响应于任务的开始和完成事件的数据集的移动的调度。在另外的实施例中,除了对象任务的完成和开始事件之外,由对象任务在其上操作的对象数据集的移动的调度可以对于关于对象任务而发生的其它类型的事件来执行。
通过图7a和7b的所描述的操作,当在数据集上操作的任务将要开始或完成时,数据集放置调度500基于关于数据集的其它任务操作的状态和存储层级分配400来产生。在可替代的实施例中,调度操作可以不存储在数据集放置调度500中,而是可以代替地当应用层102处理任务事件以实时地响应任务事件发生来确定数据集存储层级分配操作而实时地确定。
图8例示由存储层级管理器116执行以在任务正在应用层102处执行时执行数据集放置操作的操作的实施例。当从应用层102接收到任务的开始或完成的通知(在框800处)时,存储层级管理器116对于任务以及被通知的任务的事件确定(在框802处)存储层级调度事件。该确定可以通过处理对于任务502以及对其接收到通知的事件504的数据集放置调度事件500i来做出。如果移动操作被指定要执行,则存储层级管理器116执行(在框804处)调度操作以如对于调度事件(例如500i)所指定的将一个或多个数据集移动到分配的存储层级。当执行数据集放置操作以在分配的存储层级上移动或留下由经历事件的任务在其上操作的数据集时,存储层级管理器116将数据集放置操作完成的应答返回(在框806处)到应用层104。
通过图8的所描述的操作,应用层102与存储层104协同以确保当开始和完成任务时数据集位于适当的存储层级1122…112n上。在继续进行以处理工作流执行模式200中的作业1081、1082…108n的一个中的下一个任务之前,应用层102可以等待,直到从存储层104接收到数据集分配操作已完成的通知。
云计算实施例
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其它基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图9,示出云计算节点的示例的示意图,该云计算节点诸如在应用层102中执行作业和任务的节点和执行存储层级管理器116的存储层104管理操作的节点。云计算节点900仅仅是合适的云计算节点的一个示例并且不意图关于本文中描述的本发明的实施例的使用或功能的范围暗示任何限制。不论,云计算节点900能够被实现和/或执行在上文中阐述的功能的任何一个。
云计算节点900具有计算机系统/服务器902,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器902一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器902可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器902可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图9所示,云计算节点900中的计算机系统/服务器902以通用计算设备的形式表现。计算机系统/服务器902的组件可以包括但不限于:一个或者多个处理器或者处理单元904,系统存储器906,连接不同系统组件(包括系统存储器906和处理单元904)的总线908。
总线908表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器902典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器902访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器906可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)910和/或高速缓存存储器912。计算机系统/服务器902可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统913可以用于读写不可移动的、非易失性磁介质(图9未显示,通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线908相连。存储器906可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块916的程序/实用工具914,可以存储在存储器906中,这样的程序模块包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器902也可以与一个或多个外部设备918(例如键盘、指向设备、显示器920等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器902交互的设备通信,和/或与使得该计算机系统/服务器902能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口922进行。并且,计算机系统/服务器902还可以通过网络适配器924与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器924通过总线908与计算机系统/服务器902的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器902一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
现在参考图10,其中显示了示例性的云计算环境1000。如图所示,云计算环境1000包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点1000,本地计算设备例如可以是个人数字助理(PDA)或移动电话1002A,台式电脑1002B、笔记本电脑1002C和/或汽车计算机系统1002N。云计算节点1000之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点1000进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境1000提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图10显示的各类计算设备1002A-N仅仅是示意性的,云计算节点1000以及云计算环境1000可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图11,其中显示了云计算环境1000(图10)提供的一组功能抽象层。首先应当理解,图11所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图11所示,提供下列层和对应功能:
硬件和软件层1102包括硬件和软件组件。硬件组件的示例包括:大型机、基于RISC(精简指令集计算机)架构的服务器;存储设备;网络和联网组件。在一些实施例中,软件组件包括网络应用服务器软件。
虚拟层1104提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层1106可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
存储层104可以在管理层1106的功能中实现。
工作负载层1108提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及上面描述的应用层102。
本发明可以是系统、方法和/或计算机程序产品。该计算机程序产品可以包括计算机可读存储介质(一个或多个),其上具有用于使处理器执行本发明的各方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如,但不限于,电子存储设备、磁存储设备、光学存储设备、电磁存储设备、半导体存储设备、或前述存储设备的任何合适的组合。计算机可读存储介质的更多具体例子的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备(诸如其上记录有指令的凹槽中的穿孔卡或抬高结构)、以及前述存储介质的任何合适的组合。如本文中使用的计算机可读存储介质本身不被解释为暂时信号,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
本文中描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者经由网络(例如,互联网、局域网、广域网和/或无线网)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发这些计算机可读程序指令以供存储在各个计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言(诸如Java、Smalltalk、C++等)以及传统的过程编程语言(诸如“C”编程语言或类似的编程语言)。计算机可读程序指令可以完全在用户的计算机上执行,部分地在用户的计算机上,作为独立软件包执行,部分地在用户的计算机上且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以进行到外部计算机的连接(例如,使用互联网服务提供商通过互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)、或可编程逻辑阵列(PLA))可以通过利用计算机可读程序指令的状态信息使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
本发明的各方面在本文中参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图进行描述。将理解,流程图和/或框图中的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以生成机器,使得经由计算机或其它可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图中的一个框或多个框中指定的功能/动作的手段。这些计算机可读程序指令也可以被存储在可以引导计算机、可编程数据处理装置和/或其它设备以特定方式运作的计算机可读存储介质中,以使得其中存储有指令的计算机可读存储介质包括制造品,该制造品包括实现流程图和/或框图中的一个框或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令也可以被加载到计算机、其它可编程数据处理装置或其它设备上,以使一系列操作步骤在该计算机、其它可编程装置或其它设备上被执行以生成计算机实现过程,以使得在该计算机、其它可编程装置或其它设备上执行的指令实现流程图和/或框图中的一个框或多个框中指定的功能/动作。
附图中的流程图和框图例示根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这一点上,流程图或框图中的每个框可以表示模块、程序段或指令部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实现中,框中标注的功能可以不按附图中标注的次序出现。例如,连续示出的两个框事实上可以被基本上同时地执行,或者这些框有时可以按相反次序执行,这取决于涉及的功能。还将指出,框图和/或流程图中的每个框以及框图和/或流程图中的框的组合可以由专用的基于硬件的系统实现,这些系统执行指定的功能或动作,或者执行专用硬件和计算机指令的组合。
这里使用的参考字符,诸如i,j,k,n,在这里使用来表示元素的实例的可变数量,其可以代表相同或不同的值,并且当在不同描述的实例中与不同或相同的元素一起使用时可以代表相同或不同的值。
术语“一个实施例”、“实施例”、“多个实施例”、“该实施例”、“这些实施例”、“一个或多个实施例”、“一些实施例”以及“一种实施例”意思是“本发明的一个或多个(但不是所有)实施例”,除非另外明白地指定。
术语“包括”、“包含”、“具有”及其变化意思是“包括但是不局限于”,除非另外明白地指定。
项目的列举清单不意味着项目的任意或所有是相互排斥的,除非另外明白地指定。
术语“一”、“一个”和“该”意思是“一个或多个”,除非另外明白地指定。
彼此通信的设备不需要彼此处于连续的通信中,除非另外明白地指定。另外,彼此通信的设备可以直接地或者通过一个或多个中间设备间接地通信。
具有彼此通信的几个组件的实施例的描述不意味着所有这种组件都是必需的。相反,描述了各种可选的组件以例示本发明的多种可能的实施例。
当在这里描述单个设备或物品时,可以使用多于一个设备/物品(不论它们是否合作)代替单个设备/物品将是显而易见的。类似地,在这里描述多于一个设备或物品的情况下(不论它们是否合作),可以使用单个设备/物品代替多于一个设备或物品,或者可以使用不同数量的设备/物品代替所示数量的设备或程序将是显而易见的。设备的功能性和/或特征可以作为替换地由没有明确地描述为具有这种功能性/特征的一个或多个其它设备来实施。因此,本发明的其它实施例不需要包括设备自身。
已经为了例示和描述的目的而呈现本发明的各种实施例的前述描述。它不意图是穷举的或者将本发明限制为公开的精确形式。考虑到上面的讲授,许多修改和变化是可能的。本发明的范围不意图由该详细描述,而是由附加于此的权利要求书所限制。上面的说明书、示例和数据提供本发明的组成的制造和使用的完整描述。因为可以做出本发明的许多实施例而不背离本发明的精神和范围,所以本发明存在于附加之后在这里的权利要求书中。

Claims (18)

1.一种耦合到多个存储层级的系统,包括:
多个计算节点;和
计算机可读存储介质,该计算机可读存储介质具有程序指令,当该程序指令由计算节点执行时该程序指令执行操作,该操作包括:
处理对于作业的任务的、指示所述任务和由任务在其上操作的数据集的依赖性的工作流执行模式的表示;
基于在所述工作流执行模式中指示的任务的依赖性,确定对于任务的数据集到多个存储层级的分配,其中较高性能的存储层级包括相对于相对较低性能的存储层级的较快存取存储设备;以及
调度所述数据集中由所述任务中经受事件的对象任务在其上操作的对象数据集到在对于对象任务对象的分配中指示的分配的存储层级的移动,其中数据集的移动响应于关于所述对象任务的事件而被调度执行。
2.根据权利要求1所述的系统,其中所述对象任务包括将开始的下一个任务,其中所述操作还包括:
确定将由所述下一个任务在其上操作的数据集是否在当前的存储层级上正被另一个任务在其上操作;以及
响应于确定数据集正被另一个任务在其上操作,确定所述分配的存储层级相对于当前的存储层级是否是较高性能的存储层级,其中响应于确定所述分配的存储层级相对于当前的存储层级是较高性能的,数据集被调度以移动到所述分配的存储层级,并且其中响应于确定所述分配的存储层级相对于当前的存储层级不是较高性能的,数据集被调度以保持在当前的存储层级上。
3.根据权利要求1所述的系统,其中所述对象任务包括完成的任务,其中所述操作还包括:
确定由所述完成的任务在其上操作的数据集所位于的当前的存储层级相对于被分配给当前正在由所述完成的任务在其上操作的数据集上操作的另外的任务的存储层级是否是较高性能的存储层级;以及
响应于确定被分配给所述完成的任务的存储层级相对于被分配给所述完成的任务的存储层级是较高性能的存储层级,调度由所述完成的任务在其上操作的数据集到被分配给所述另外的任务的存储层级的移动。
4.根据权利要求1所述的系统,其中所述操作还包括:
确定另外的任务是否当前正在由完成的任务在其上操作的数据集上操作;以及
响应于确定不存在当前正在由所述完成的任务在其上操作的数据集上操作的另外的任务,调度由所述完成的任务在其上操作的数据集到相对于被分配给所述完成的任务的较低性能的存储层级的移动。
5.根据权利要求1所述的系统,其中所述工作流执行模式包括多个作业,其中作业中的每一个包括在数据集上操作的多个任务,其中确定所述分配包括:
确定包括以下中的至少一个的相关数据集:由作业的一个中的单个任务在其上操作的多个数据集;由来自作业的至少一个的第一组任务在其上同时操作的多个数据集;在来自作业的至少一个的至少一个依赖任务可以执行之前,必须由来自作业的至少一个的第二组任务在其上操作的多个数据集;以及由顺序工作流的作业部分的至少一个中的顺序任务操作的多个数据集;以及
将在相关数据集上操作的任务分配给相对于至少一个其它存储层级具有较高效能的优选较高性能的存储层级。
6.一种任务到存储层级以存储由所述任务处理的数据集的方法,包括:
处理对于作业的任务的、指示所述任务和由任务在其上操作的数据集的依赖性的工作流执行模式的表示;
基于在所述工作流执行模式中指示的任务的依赖性,确定对于任务的数据集到多个存储层级的分配,其中较高性能的存储层级包括相对于相对较低性能的存储层级的较快存取存储设备;以及
调度所述数据集中由所述任务中经受事件的对象任务在其上操作的对象数据集到在对于对象任务对象的分配中指示的分配的存储层级的移动,其中数据集的移动响应于关于所述对象任务的事件而被调度执行。
7.根据权利要求6所述的方法,还包括:
确定所述对象数据集是否已经位于所述分配的存储层级上,其中响应于确定所述对象数据集还没有位于所述分配的存储层级上,所述对象数据集被调度以移动到所述分配的存储层级。
8.根据权利要求6所述的方法,其中执行所述任务的工作流执行模式的应用层将对于所述作业的任务的工作流执行模式传输给管理到存储层级的存取的存储层,其中所述存储层执行确定所述分配和数据集的移动的调度的操作,其中所述方法还包括:
由所述存储层通知应用层对于下一个任务的数据集位于所述分配的存储层级上;以及
响应于从所述存储层接收到由所述下一个任务在其上操作的数据集位于所述分配的存储层级上的通知,由所述应用层执行下一个任务。
9.根据权利要求6所述的方法,其中确定所述分配包括:
确定包括由单个任务在其上操作的多个数据集的相关数据集,其中所述相关数据集位于相同的存储层级上。
10.根据权利要求6所述的方法,其中确定所述分配包括:
将相同的存储层级分配给同时在相同的数据集上操作的多个任务。
11.根据权利要求6所述的方法,其中确定所述分配包括:
将相同的存储层级分配给在至少一个数据集上操作的多个输入任务,所述输入任务向不可以执行直到接收到来自该输入任务的输入的依赖任务提供输入。
12.根据权利要求6所述的方法,其中分配给多个输入任务的相同的存储层级被分配给相对于至少一个其它存储层级具有较高效能的优选较高性能的存储层级。
13.根据权利要求6所述的方法,其中还包括:
确定随后将由所述工作流执行模式中的任务中的一个处理的数据集;以及
调度随后将被处理的数据集到相对于至少一个其它存储层级具有较高效能的较高性能存储层级的预先放置,以使得当数据集被处理时数据集在较高性能的存储层级上可用。
14.根据权利要求6所述的方法,其中所述对象任务包括将开始的下一个任务,还包括:
确定将由所述下一个任务在其上操作的数据集是否在当前的存储层级上正被另一个任务在其上操作;以及
响应于确定数据集正被另一个任务在其上操作,确定所述分配的存储层级相对于当前的存储层级是否是较高性能的存储层级,其中响应于确定所述分配的存储层级相对于当前的存储层级是较高性能的,数据集被调度以移动到所述分配的存储层级,并且其中响应于确定所述分配的存储层级相对于当前的存储层级不是较高性能的,数据集被调度以保持在当前的存储层级上。
15.根据权利要求6所述的方法,其中所述对象任务包括完成的任务,还包括:
确定由所述完成的任务在其上操作的数据集所位于的当前的存储层级相对于被分配给当前正在由所述完成的任务在其上操作的数据集上操作的另外的任务的存储层级是否是较高性能的存储层级;以及
响应于确定被分配给所述完成的任务的存储层级相对于被分配给所述完成的任务的存储层级是较高性能的存储层级,调度由所述完成的任务在其上操作的数据集到被分配给所述另外的任务的存储层级的移动。
16.根据权利要求6所述的方法,其中所述对象任务包括完成的任务,还包括:
确定另外的任务是否当前正在由所述完成的任务在其上操作的数据集上操作;以及
响应于确定不存在当前正在由所述完成的任务在其上操作的数据集上操作的另外的任务,调度由所述完成的任务在其上操作的数据集到相对于被分配给所述完成的任务的较低性能的存储层级的移动。
17.根据权利要求6所述的方法,其中所述工作流执行模式包括多个作业,其中作业中的每一个包括在数据集上操作的多个任务,其中确定所述分配包括:
确定包括以下中的至少一个的相关数据集:由作业的一个中的单个任务在其上操作的多个数据集;由来自作业的至少一个的第一组任务在其上同时操作的多个数据集;在来自作业的至少一个的至少一个依赖任务可以执行之前,必须由来自作业的至少一个的第二组任务在其上操作的多个数据集;以及由顺序工作流的作业部分的至少一个中的顺序任务操作的多个数据集;以及
将在所述相关数据集上操作的任务分配给相对于至少一个其它存储层级具有较高效能的优选较高性能的存储层级。
18.根据权利要求17所述的计算机程序产品,其中所述操作还包括:
确定对于所述相关数据集在优选较高性能的存储层级上是否存在足够的空间;以及
响应于确定所述优选较高性能的存储层级不具有足够的空间来存储所述相关数据集,将在所述相关数据集上操作的任务分配给具有足够空间来存储所述相关数据集的、相对于所述优选较高性能的存储层级的较低性能的存储层级。
CN201610168014.3A 2015-03-31 2016-03-23 用于确定数据集的放置的存储层级的方法和系统 Active CN106020940B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/675,610 US9430290B1 (en) 2015-03-31 2015-03-31 Determining storage tiers for placement of data sets during execution of tasks in a workflow
US14/675,610 2015-03-31

Publications (2)

Publication Number Publication Date
CN106020940A true CN106020940A (zh) 2016-10-12
CN106020940B CN106020940B (zh) 2019-02-15

Family

ID=56739876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610168014.3A Active CN106020940B (zh) 2015-03-31 2016-03-23 用于确定数据集的放置的存储层级的方法和系统

Country Status (3)

Country Link
US (3) US9430290B1 (zh)
CN (1) CN106020940B (zh)
DE (1) DE102016205297A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106993019A (zh) * 2016-11-29 2017-07-28 上海壹账通金融科技有限公司 分布式任务调度方法和系统
CN110147280A (zh) * 2019-05-14 2019-08-20 河南城建学院 基于安全与成本感知的大数据应用调度方法
CN110402431A (zh) * 2017-03-23 2019-11-01 亚马逊科技公司 使用有向无环图进行事件驱动的调度
CN112817744A (zh) * 2021-01-14 2021-05-18 内蒙古蒙商消费金融股份有限公司 一种任务处理方法及装置

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3140734B1 (en) 2014-05-09 2020-04-08 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9430290B1 (en) 2015-03-31 2016-08-30 International Business Machines Corporation Determining storage tiers for placement of data sets during execution of tasks in a workflow
WO2017117216A1 (en) * 2015-12-29 2017-07-06 Tao Tao Systems and methods for caching task execution
US11086550B1 (en) * 2015-12-31 2021-08-10 EMC IP Holding Company LLC Transforming dark data
US10409863B2 (en) * 2016-02-05 2019-09-10 Sas Institute Inc. Verification and export of federated areas and job flow objects within federated areas
US10650045B2 (en) 2016-02-05 2020-05-12 Sas Institute Inc. Staged training of neural networks for improved time series prediction performance
US10331495B2 (en) 2016-02-05 2019-06-25 Sas Institute Inc. Generation of directed acyclic graphs from task routines
US10338968B2 (en) 2016-02-05 2019-07-02 Sas Institute Inc. Distributed neuromorphic processing performance accountability
US10346476B2 (en) 2016-02-05 2019-07-09 Sas Institute Inc. Sketch entry and interpretation of graphical user interface design
US11474863B2 (en) * 2018-06-22 2022-10-18 Sas Institute Inc. Federated area coherency across multiple devices in many-task computing
US10795935B2 (en) 2016-02-05 2020-10-06 Sas Institute Inc. Automated generation of job flow definitions
US10642896B2 (en) 2016-02-05 2020-05-05 Sas Institute Inc. Handling of data sets during execution of task routines of multiple languages
US10650046B2 (en) 2016-02-05 2020-05-12 Sas Institute Inc. Many task computing with distributed file system
US10380185B2 (en) 2016-02-05 2019-08-13 Sas Institute Inc. Generation of job flow objects in federated areas from data structure
US11579861B2 (en) 2016-02-12 2023-02-14 Nutanix, Inc. Virtualized file server smart data ingestion
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US11119813B1 (en) * 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US10296390B2 (en) 2016-10-14 2019-05-21 International Business Machines Corporation Feedback mechanism for controlling dispatching work tasks in a multi-tier storage environment
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US10437799B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US10437800B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US10437633B1 (en) * 2016-12-30 2019-10-08 EMC IP Holding Company LLC Data storage system management with promotion of task-level resource identifiers to higher objects
USD898059S1 (en) 2017-02-06 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
US10514993B2 (en) * 2017-02-14 2019-12-24 Google Llc Analyzing large-scale data processing jobs
CN107168781A (zh) * 2017-04-07 2017-09-15 广东银禧科技股份有限公司 一种3d打印子任务调度方法和装置
USD898060S1 (en) 2017-06-05 2020-10-06 Sas Institute Inc. Display screen or portion thereof with graphical user interface
US10956052B1 (en) 2017-07-21 2021-03-23 EMC IP Holding Company LLC Online address to hash (A2H) metadata scanner
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
JP7271164B2 (ja) * 2018-12-21 2023-05-11 キヤノン株式会社 情報処理装置、管理システム、情報処理装置の制御方法及びプログラム
US11188231B2 (en) 2019-03-01 2021-11-30 International Business Machines Corporation Data placement on storage devices
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11216388B2 (en) * 2019-04-30 2022-01-04 EMC IP Holding Company LLC Tiering between storage media in a content aware storage system
US20200396287A1 (en) * 2019-06-17 2020-12-17 Netflix, Inc. Distributed global object storage
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
JP7326969B2 (ja) * 2019-07-30 2023-08-16 富士通株式会社 情報処理装置,ストレージシステム及びスケジューリングプログラム
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
CN113448493B (zh) * 2020-03-27 2024-04-26 伊姆西Ip控股有限责任公司 用于备份数据的方法、电子设备和计算机可读介质
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
CN112035236B (zh) * 2020-09-08 2023-02-14 深圳天源迪科信息技术股份有限公司 基于多因子协同的任务调度方法、装置、及存储介质
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
EP4113297A1 (fr) * 2021-06-30 2023-01-04 Bull SAS Procédé de gestion des travaux dans un système informatique et système associé
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
GB2611542B (en) * 2021-10-06 2023-11-15 Advanced Risc Mach Ltd Circuitry and method

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130006948A1 (en) * 2011-06-30 2013-01-03 International Business Machines Corporation Compression-aware data storage tiering
US20130024650A1 (en) * 2011-07-18 2013-01-24 Lsi Corporation Dynamic storage tiering
US8387066B1 (en) * 2007-09-28 2013-02-26 Emc Corporation Dependency-based task management using set of preconditions to generate scheduling data structure in storage area network
CN104025054A (zh) * 2011-12-15 2014-09-03 赛门铁克公司 虚拟环境中的动态存储分层
US20140337360A1 (en) * 2010-01-27 2014-11-13 Precise Software Solutions, Inc. Dynamic storage blocks tiering
US20140337577A1 (en) * 2011-12-23 2014-11-13 Oracle International Corporation Sub-lun auto-tiering
US20150067285A1 (en) * 2013-09-05 2015-03-05 Fujitsu Limited Storage control apparatus, control method, and computer-readable storage medium

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869165B2 (en) * 2008-03-20 2014-10-21 International Business Machines Corporation Integrating flow orchestration and scheduling of jobs and data activities for a batch of workflows over multiple domains subject to constraints
WO2011112917A2 (en) * 2010-03-11 2011-09-15 Entegrity LLC Methods and systems for data aggregation and reporting
JP5443490B2 (ja) * 2010-03-29 2014-03-19 パナソニック株式会社 光ディスク再生装置
WO2013061382A1 (ja) * 2011-10-28 2013-05-02 株式会社日立製作所 計算機システム及びストレージ管理方法
US8856291B2 (en) 2012-02-14 2014-10-07 Amazon Technologies, Inc. Providing configurable workflow capabilities
US8972983B2 (en) 2012-04-26 2015-03-03 International Business Machines Corporation Efficient execution of jobs in a shared pool of resources
US8793381B2 (en) 2012-06-26 2014-07-29 International Business Machines Corporation Workload adaptive cloud computing resource allocation
US9760294B2 (en) * 2012-11-07 2017-09-12 Hitachi, Ltd. Computer system, storage management computer, and storage management method
US9442954B2 (en) 2012-11-12 2016-09-13 Datawise Systems Method and apparatus for achieving optimal resource allocation dynamically in a distributed computing environment
US10048075B2 (en) 2013-07-19 2018-08-14 Sap Se Trajectory data compression
US9773014B2 (en) * 2014-06-03 2017-09-26 Samsung Electronics Co., Ltd. Heterogeneous distributed file system using different types of storage mediums
US9513967B2 (en) * 2014-09-18 2016-12-06 International Business Machines Corporation Data-aware workload scheduling and execution in heterogeneous environments
JP2016184310A (ja) * 2015-03-26 2016-10-20 富士通株式会社 情報処理システム、制御装置および情報処理システムの制御方法
US9430290B1 (en) 2015-03-31 2016-08-30 International Business Machines Corporation Determining storage tiers for placement of data sets during execution of tasks in a workflow

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8387066B1 (en) * 2007-09-28 2013-02-26 Emc Corporation Dependency-based task management using set of preconditions to generate scheduling data structure in storage area network
US20140337360A1 (en) * 2010-01-27 2014-11-13 Precise Software Solutions, Inc. Dynamic storage blocks tiering
US20130006948A1 (en) * 2011-06-30 2013-01-03 International Business Machines Corporation Compression-aware data storage tiering
US20130024650A1 (en) * 2011-07-18 2013-01-24 Lsi Corporation Dynamic storage tiering
CN104025054A (zh) * 2011-12-15 2014-09-03 赛门铁克公司 虚拟环境中的动态存储分层
US20140337577A1 (en) * 2011-12-23 2014-11-13 Oracle International Corporation Sub-lun auto-tiering
US20150067285A1 (en) * 2013-09-05 2015-03-05 Fujitsu Limited Storage control apparatus, control method, and computer-readable storage medium

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GABRIEL ALATORRE: "Intelligent Information Lifecycle Management in Virtualized Storage Enviroments", 《2014 ANNUAL SRII GLOBAL CONFERENCE》 *
K.R.KRISH: "hatS: A Heterogeneity-Aware Tiered Storage for Hadoop", 《2014 14TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER,CLOUD AND GRID COMPUTING》 *
李俊杰: "面向海量存储系统的分层存储技术研究", 《中国优秀硕士论文全文数据库信息科技辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106993019A (zh) * 2016-11-29 2017-07-28 上海壹账通金融科技有限公司 分布式任务调度方法和系统
CN106993019B (zh) * 2016-11-29 2019-11-19 深圳壹账通智能科技有限公司 分布式任务调度方法和系统
CN110402431A (zh) * 2017-03-23 2019-11-01 亚马逊科技公司 使用有向无环图进行事件驱动的调度
CN110402431B (zh) * 2017-03-23 2024-02-06 亚马逊科技公司 使用有向无环图进行事件驱动的调度
CN110147280A (zh) * 2019-05-14 2019-08-20 河南城建学院 基于安全与成本感知的大数据应用调度方法
CN110147280B (zh) * 2019-05-14 2023-01-31 河南城建学院 基于安全与成本感知的大数据应用调度方法
CN112817744A (zh) * 2021-01-14 2021-05-18 内蒙古蒙商消费金融股份有限公司 一种任务处理方法及装置

Also Published As

Publication number Publication date
US20180107527A1 (en) 2018-04-19
US20160335134A1 (en) 2016-11-17
US9864642B2 (en) 2018-01-09
US9430290B1 (en) 2016-08-30
CN106020940B (zh) 2019-02-15
DE102016205297A1 (de) 2016-10-06
US10489217B2 (en) 2019-11-26

Similar Documents

Publication Publication Date Title
CN106020940A (zh) 用于确定数据集的放置的存储层级的方法和系统
CN103297492B (zh) 用于在联网计算环境之间迁移数据的方法和系统
CN103365725B (zh) 在多个云之间动态分配工作负荷部署单元的方法和系统
CN103299274B (zh) 确定运行图像的最佳计算环境的系统和方法
CN103365781B (zh) 用于动态地重新配置存储系统的方法和设备
CN103226489B (zh) 用于在计算环境中创建虚拟单元的方法和系统
US20150178052A1 (en) Automated experimentation platform
CN107567696A (zh) 计算集群内的资源实例群组的自动扩展
CN105893139A (zh) 在云存储环境中用于向租户提供存储服务的方法和装置
CN103814358A (zh) 服务器群内的虚拟机放置
US9996888B2 (en) Obtaining software asset insight by analyzing collected metrics using analytic services
CN107003906A (zh) 云计算技术部件的类型到类型分析
CN104866513A (zh) 用于跨租户数据访问的系统和方法
Bosin et al. Extending the SOA paradigm to e-Science environments
CN103970607A (zh) 使用等价集合来计算优化虚拟机分配的方法和装置
CN105074702A (zh) 提供单租户和多租户环境的数据库系统
CN104660669A (zh) 针对应用模式组件从多个主机选择一个主机的方法和系统
CN105989523A (zh) 用于分析的基于策略的数据收集处理及协商的方法与系统
US7430513B2 (en) Data storage management driven by business objectives
CN104252345A (zh) 在云环境中管理复杂对象的方法及系统
CN105988911B (zh) 在系统日志中建立信任链
Rezgui et al. CloudFinder: A system for processing big data workloads on volunteered federated clouds
Quintero et al. IBM software defined environment
Stotzka et al. Perspective of the Large Scale Data Facility (LSDF) supporting nuclear fusion applications
Eberhart et al. Semantic technologies and cloud computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant