CN113037538B - 分布式资源管理中低时延节点本地调度的系统和方法 - Google Patents
分布式资源管理中低时延节点本地调度的系统和方法 Download PDFInfo
- Publication number
- CN113037538B CN113037538B CN202110161417.6A CN202110161417A CN113037538B CN 113037538 B CN113037538 B CN 113037538B CN 202110161417 A CN202110161417 A CN 202110161417A CN 113037538 B CN113037538 B CN 113037538B
- Authority
- CN
- China
- Prior art keywords
- module
- resources
- resource
- sub
- local
- 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
- 238000000034 method Methods 0.000 title claims abstract description 186
- 230000008569 process Effects 0.000 claims abstract description 87
- 238000012545 processing Methods 0.000 claims abstract description 54
- 238000013468 resource allocation Methods 0.000 claims abstract description 25
- 239000003795 chemical substances by application Substances 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 16
- 230000003139 buffering effect Effects 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims 1
- 230000015654 memory Effects 0.000 abstract description 24
- 238000007726 management method Methods 0.000 description 13
- 239000012634 fragment Substances 0.000 description 8
- 238000002955 isolation Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/042—Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
提供一种分配资源和处理接收待处理作业的分布式系统内的作业的系统。所述系统包括处理器(1308)和耦合到所述处理器的存储器(1306)。所述存储器(1306)包括至少一个进程和至少一个资源分配器(1504)。所述进程用于处理接收待处理作业的分布式系统内的作业。所述资源分配器(1504)可通信地与至少一个进程耦合,用于在分配给所述进程用于处理作业的一个或多个资源的限制内生成一个或多个子进程。当使用根据第一方面的所述系统时,所述系统提供:用于分布式处理系统的低时延节点本地调度框架,其允许直接在节点上进行资源分配,不必联系中央资源主控器(1502)做进一步分配资源,从而实现低时延。
Description
技术领域
本公开一般涉及数据处理技术,更具体地,涉及分布式资源管理中的低时延节点本地调度的技术。
背景技术
通过网络连接并通过适当的软件和管理策略统一的自主机器的集合本身是计算机系统。基于网络的计算机系统这个概念在计算机行业中变得越来越重要。基于网络的计算机不止包括客户端-服务器计算以及对双方关系的关注。在基于网络的计算中,服务(或资源)变成更通用的概念,并且不再需要绑定到单个机器;相反,其成为所有基于网络的计算机的特征。基于网络的计算机或环境可以出现在许多情况中,例如出现在局域网上的用户工作站和服务器机器的异构集合中;在由通过高速网络连接的各个处理器组成的专用“集群”机器中;或者在将几个此类环境连接在一起的校园或企业或全球网络中。
分布式系统是一种模型,其中位于联网计算机上的组件通过传递消息来通信和协调其动作。这些组件互相交互以实现共同的目标。在分布式系统中,并行运行的应用可以通过在不同节点上并行执行任务来利用多个互连节点的组合资源容量。所有这些环境中的重要组件是资源管理系统,而资源管理系统的重要方面是其作业调度能力。
传统地,为了将可用资源分配给多个节点上的分布式应用,典型的分布式资源调度(distributed resource scheduling,DRS)框架如图1所示工作。如图1所示,在将可用资源分配给多个节点上的分布式应用时涉及的主要组件是资源主控器(resource master,RM)、应用管理器(application manager,AM)、资源代理(resource agent,RA)和容器。该容器本质上是指一个进程,该进程负责在AM所要求的并且随后由RM分配的物理资源的范围内执行单个任务单元。RM跟踪集群上的活动RA和可用资源,并根据AM指定的资源需求将这些资源作为容器分配给应用。应用管理器AM处理应用生命周期并协调执行应用的所有任务(作为容器执行)。AM从RM请求得到所需的资源,例如但不限于存储器、CPU等,以启动任务,并且在接收到这些资源时,联系资源代理以启动这些任务作为容器。RA在每个节点上运行,并且向RM发送关于该节点上的可用资源的周期性更新消息。RA基于RM分配的资源在节点上启动容器进程。RA还对容器执行资源实施并监控其资源使用。每个容器可以具有不同的资源(例如RAM、CPU)需求。应用可以通过将其工作分为多个任务然后并行运行多个容器来完成执行。
传统的根据图1的典型分布式资源调度框架处理资源请求的分布式执行流程如图2所示。如图2所示,考虑应用(应用管理器)运行相当长的时间并服务客户端的临时请求。分布式处理系统中的应用管理器(application manager,AM)可以永远运行,除非故障或崩溃。以下步骤指示AM如何服务临时(ad-hoc)客户端请求:1、用户向DRS框架上运行的AM发出临时请求;2、AM评估该临时请求,识别其在一个或多个节点上所需的资源,并向这些节点上的RM请求资源;3、RA立即向RM更新节点资源;4、RM尝试基于调度器队列层级来调度节点的资源(如果空闲的话)。
然而,由于RM仅在特定时间段之后异步调度,或者在RA立即向RM更新节点资源时调度,所以AM基于客户端的临时请求分配请求资源时可能出现比较大的延迟;RM基于队列或资源池层级进行调度。如果已经提交的队列或资源池应用没有足够的空闲资源,则将存在延迟。请求的节点可能没有足够的资源,然后应用需要等待,直到节点空闲,或在其它位置/节点运行,该其它位置/节点将具有可能妨碍性能的其它开销(例如但不限于网络延迟、较慢的磁盘等)。因此,对于低时延节点本地分配来说,现有DRS框架不是最佳的,所以一些现有应用使用图3所示的DRS框架中处理临时请求的替代方法。根据该替代技术,应用在集群的每个节点上启动单独的代理,这些代理管理执行DRS框架外的请求。RM仍然管理集群上的资源,并且当应用请求资源时,将资源分配给AM。启动与从RM请求的资源相等的伪容器。
如图3所示,单独启动(每个节点上的)AM和应用代理或应用专用后台程序。应用代理向AM注册,使得AM知道哪个代理启动并运行。每当向AM提交请求时,AM计算该请求需要多少资源,以及在哪里执行请求片段,在哪里执行可以基于数据所在的位置计算,但不限于数据位置。基于此,AM从RM(属于分布式资源调度框架)获取请求的节点上的资源。在获取资源之后,AM联系在请求的节点上运行的应用代理执行请求片段。AM还联系RA启动伪容器,使得资源调度框架可以计算已经授予的资源。应注意,这些伪容器不执行任何工作。应用代理使请求执行器处理从分布式资源调度框架接收的资源范围内的请求片段。
然而,如图3所示,在DRS框架中处理临时请求所采用的替代方法具有很多缺点。其中一个主要缺点是没有利用DRS的高级特征,例如自适应调度,因为DRS框架工作不能检测应用代理和请求执行器的实际资源用量。只知道伪容器的资源用量,因为是睡眠作业,伪容器的资源用量几乎为0。另一个主要缺点是替代方法在云上不容易缩放。云对DRS框架具有内置自动缩放支持。该方法中当应用进程在DRS框架之外运行时,每当节点在云上按比例增大或减小时,不可能自动按比例增大或减小应用进程(主要是应用代理的进程)。需要单独启动或关闭应用进程。而且,其中一个缺点与应用自身实施的资源隔离相关联。根据该方法,应用代理需要实施请求执行器(request executor,RE)的资源隔离,资源隔离主要是DRS框架的责任,因为DRS框架负责管理资源。应用需要关注支持不同操作系统和不同类型的资源(磁盘、网络等),但这不是应用的主要功能。
相应地,需要提供一种具有分布式资源管理的分布式处理系统低时延节点本地调度框架,分布式处理系统例如临时请求处理系统,或用于处理作业请求的其它分布式系统。该框架允许直接在节点上进行资源分配,不必联系中央资源主控器进一步分配资源,从而实现低时延。本领域的技术人员应注意并理解,本文以非限制性的方式示出/描述了与临时请求相关的本发明的实施例,本发明还可以执行用于其它作业请求的低时延节点本地调度。使用这种其它作业请求代替临时请求仍视为是在本公开的范围内。
分布式处理系统中现有作业调度技术的上述缺陷仅旨在概述常规系统/机制/技术的一些问题,而非旨在详尽描述。在阅读以下描述后,本文所描述的各种非限制性实施例的常规系统/机制/技术的其它问题及相应益处可变得更明显。
发明内容
提供此发明内容是为了介绍与分布式资源管理中的低时延节点本地调度的系统和方法相关的概念,下文在详细描述中进一步描述所述概念。本发明内容不旨在识别所要求保护主题的基本特征,也并不旨在用于确定或限制所要求保护主题的范围。
本公开的主题是提供一种具有分布式资源管理的分布式处理系统的低时延节点本地调度框架,其允许直接在节点上进行资源分配,不必联系中央资源主控器(resourcemaster,RM)做进一步分配资源,从而实现低时延。该框架还确保资源隔离及调整本地分配的资源大小。
根据第一方面,提供一种在节点上分配资源和处理分布式系统内的至少一个作业请求的系统,所述系统包括:处理器;以及存储器,可操作地耦合到所述处理器,所述处理器用于执行所述存储器中的多个模块,所述多个模块包括:应用管理器模块,与资源主控模块可操作地通信以用于分配资源;本地资源分配器模块,可操作地位于资源代理模块中以用于在所述资源主控模块分配所述资源之后生成主进程模块;在接收所述作业请求后,所述应用管理器模块与所述主进程模块可操作地通信;所述主进程模块与本地资源分配器模块可操作地通信,从而所述本地资源分配器模块基于所述资源分配,生成处理所述作业请求的一个或多个子进程模块。
在根据第一方面的系统的第一可能实施方式中,所述本地资源分配器模块进行的所述资源分配包括:
为所述主进程模块分配资源;为所述一个或多个子进程模块分配缓冲资源。
在根据第一方面的系统的第二可能实施方式中,所述本地资源分配器模块用于跟踪所述资源分配。
在根据第一方面的系统的第三可能实施方式中,所述本地资源分配器模块用于确定所述一个或多个子进程模块的所述资源分配是否在所述主进程模块预设的资源的限制内。
在根据第一方面的系统的第四可能实施方式中,所述本地资源分配器模块用于为一个或多个子进程模块调整所述资源的大小。
在根据第一方面的系统的第五可能实施方式中,所述本地资源分配器模块用于暂停所述一个或多个子进程模块。
在根据第一方面的系统的第六可能实施方式中,所述主进程模块用于与所述一个或多个子进程模块进行协调。
在根据第一方面的系统的第七可能实施方式中,所述至少一个作业请求包括临时作业请求。
根据第二方面,提供一种在节点上分配资源和处理分布式系统内的至少一个作业请求的方法,所述方法包括:应用管理器模块与资源主控模块通信以进行资源分配;所述资源主控模块分配资源后,在资源代理模块中定位本地资源分配器模块,以生成主进程模块;接收所述作业请求后,所述应用管理器模块与所述主进程模块通信;所述主进程模块与所述本地资源分配器模块通信,从而基于所述本地资源分配器模块对所述资源的分配生成处理所述作业请求的一个或多个子进程模块。
在根据第二方面的方法的第一可能实施方式中,所述本地资源分配器模块对所述资源的分配包括:为所述主进程模块分配资源;为所述一个或多个子进程模块分配缓冲资源。
在根据第二方面的方法的第二可能实施方式中,跟踪所述本地资源分配器模块进行的所述资源分配。
在根据第二方面的方法的第三可能实施方式中,所述本地资源分配器模块确定所述一个或多个子进程模块的所述资源分配是否在所述主进程模块预设的资源的限制内。
在根据第二方面的方法的第四可能实施方式中,所述本地资源分配器模块为所述一个或多个子进程模块调整所述资源的大小。
在根据第二方面的方法的第五可能实施方式中,所述本地资源分配器模块暂停所述一个或多个子进程模块。
在根据第二方面的方法的第六可能实施方式中,所述主进程模块与所述一个或多个子进程模块进行协调。
在根据第二方面的方法的第七可能实施方式中,处理所述至少一个作业请求包括处理临时作业请求。
为了解决当前DRS框架中的上述问题,本公开提供一种节点本地调度方法。相应地,本公开提供RA中一种新的本地资源分配器模块,用于在每个节点上运行,还引入了主容器和子容器的概念。本地资源分配器用于在特殊容器——主容器的资源限制范围内,在本地资源分配器运行的节点上分配资源。应用可以请求用于主容器的资源,包括主容器所需的资源和可启动多个子容器的一些缓冲资源。
以上提到的与第一实施方式有关的各种选择方案和优选实施例参考其它实施方式也适用。
附图说明
该详细描述是参考附图描述的。在附图中,参考编号最左边的数字表示该参考编号在该附图中首次出现。所有附图使用相同数字指代相同特征和组件。
图1示出分布式资源管理/分布式资源调度(distributed resource scheduling,DRS);
图2示出DRS框架中临时资源请求的分布式执行流程;
图3示出DRS框架中处理临时请求所采用的替代方法;
图4示出根据本公开的实施例的分布式处理系统的低时延节点本地调度框架的系统架构;
图5示出根据本公开的实施例的分布式处理系统的低时延节点本地调度框架的工作;
图6示出根据本公开的实施例的根据分布式处理系统的低时延节点本地调度框架的请求处理;
图7是根据本公开的实施例的节点中分配的资源的分层视图;
图8示出根据本公开的实施例的本地资源分配器中的本地资源的组映射;
图9示出根据本公开的实施例的示例1,其示出(MPPDB)临时查询处理系统情景中使用的低时延节点本地调度框架;
图10示出根据本公开的实施例的示例2,其示出保证低时延节点本地调度框架实现高性能的低时延;
图11示出根据本公开的实施例的示例3,其示出低时延节点本地调度框架实现的优化集群资源利用;
图12示出根据本公开的实施例的示例4,其示出低时延节点本地调度框架实现的云的可扩展性;
图13示出根据本公开的实施例的资源分配和处理分布式系统内的作业的系统;
图14示出根据本公开的实施例的资源分配和处理分布式系统内的作业的方法;以及
图15是根据本公开的实施例的示意图。
应当理解,附图是为了说明本发明的概念,而不是按比例绘制的。
具体实施方式
下文参考本公开的实施例中的附图清楚地描述本公开的实施例中的技术方案。显然,所描述的实施例仅是本公开的实施例的一部分,而不是全部的实施例。本领域的普通技术人员在不付出创造性劳动的前提下基于本公开的实施例获得的所有其它实施例应属于本公开的保护范围内。
本发明可以有多种方式实现,包括实现为进程、装置、系统、物质组成、计算机可读介质例如计算机可读存储介质,或者其中程序指令经由光学或电子通信链路发送的计算机网络。在本说明书中,这些实施方式或者本发明可以采取的任何其它形式可以称为技术。一般情况下,所公开进程的步骤顺序可以在本发明的范围内进行更改。
下面提供了本发明的一个或多个实施例的详细描述以及说明本发明原理的附图。本发明是结合这些实施例进行描述,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限制,并且本发明包括许多替代方案、修改和等同物。为了提供对本发明的透彻理解,下文描述中阐述了许多具体细节。提供这些细节用于举例,本发明可以根据权利要求书实现,不需要部分或者所有这些具体细节。为了清楚描述,没有对与本发明相关技术领域中已知的技术材料进行详细描述,从而避免对本发明造成不必要地模糊。
下文描述中陈述许多具体细节,以对本发明各实施例进行通彻理解。然而,所属领域的技术人员应理解,可以在没有这些具体细节的情况下实践本公开。在其它情况下,没有详细描述已知的方法、步骤和组件、模块、单元和/或电路,以免模糊本发明。
尽管本发明的实施例在这方面不受限制,但是利用诸如“处理”、“计算”、“运算”、“确定”、“建立”、“分析”、“检查”等术语的讨论可以指计算机、计算平台、计算系统或其它电子计算设备的操作和/或进程,这些操作和/或进程将表示为计算机的寄存器和/或存储器内的物理(例如电子)量的数据操控和/或变换为类似地表示为计算机的寄存器和/或存储器或可存储指令以执行操作和/或处理的其它信息非瞬时性存储介质内的物理量的其它数据。
虽然本发明的实施例不限于此,但是如本文所用,术语“多个(plurality和aplurality)”可包括例如“多个(multiple)”或“两个或更多个”。贯穿本说明书可使用术语“多个(plurality或a plurality)”描述两个或更多个组件、设备、元件、单元、参数等。除非明确说明,否则本文中所描述的方法不限制为特定次序或顺序。另外,所描述的方法实施例或其元件中的一些可同时、同时间点或并行发生或执行。
当前的DRS框架具有资源主控器(resource master,RM)和不同节点上运行的一个或多个资源代理(resource agent,RA)。在分布式处理系统中,任务进一步分解为在这些节点上并行执行的子任务。应用可以根据相关数据驻留以执行每个子任务的位置,从RM请求特定节点上的资源(CPU、存储器等)。如果子任务可以在与数据子集所在的相同的节点上运行,则子任务希望进程驻留在相同的节点上,因为不必跨节点拷贝数据,所以执行将更快。
RM然后根据集群上的当前资源分配将资源分配给应用(基于应用请求的资源)。一旦获取容器形式的资源,应用将在分配中给出的节点上启动子任务。容器只是在分配的资源限制内运行的进程。
目前,在临时查询或临时请求处理系统的情况下,即用户可以随时查询任何东西的情况下,当前的DRS框架方法并不起作用。原因在于,当接收到查询时,应用需要根据查询/请求中要求的数据从RM请求资源。目前,请求的资源可能不能立即可用,因为有其它低优先级应用在使用这些资源。而且,直到接收资源代理的下一个节点报告,才能分配资源。所有这些都能在分配的资源中引入延迟,因而会降低查询/请求处理性能。应用可能请求每个节点上的资源并自己保持,但是这将导致集群资源利用率较差,因为即使应用不使用资源,也需要保持这些资源。
因此,为了解决当前DRS框架中的上述问题,本公开提供一种节点本地调度方法。相应地,本公开提供RA中一种新的本地资源分配器模块,用于在每个节点上运行,还引入了主容器和子容器的概念。本地资源分配器用于在特殊容器——主容器的资源限制范围内,在本地资源分配器运行的节点上分配资源。应用可以请求用于主容器的资源,包括主容器所需的资源和可启动多个子容器的一些缓冲资源。
例如,该应用可以在节点上初始请求用于主容器的8GB的资源。8GB可以包括,例如主容器请求的用于自身运行的2GB资源和6GB缓冲资源。基于正处理的数据量,每当作业请求到来时,主容器可以从本地资源分配器请求子容器。这些子容器在该节点上执行子请求。本地资源分配器在主容器的缓冲资源的限制(即6GB)内分配资源。子容器可以是任何资源大小,只要在主容器的限制内。这允许执行细粒度调度的能力。
如果正在执行请求,则使用6GB缓冲资源中的全部或部分缓冲资源。当前的DRS框架已经允许通过启动低优先级任务来利用空闲/未使用的资源(即使这些资源已经分配),当需要使用已分配的资源时,可以抢占低优先级任务。因此,如果6GB的缓冲资源未被利用,根据本公开的其它应用仍然可以使用缓冲资源。
在分布式处理系统中,例如临时请求处理系统中,RM通常将作为AM运行,而应用代理作为主容器运行。初始化时RM请求用于每个节点上的RA(作为主容器)的资源。当查询出现时,每个节点上的RA可以在为请求代理(作为主容器运行)设置的资源限制内向本地资源分配器(RA内部)请求待启动的子容器。这确保了在节点上获取资源时没有延迟,因为调度是在节点本地进行。此外,由于主容器与资源代理中运行的本地资源分配器之间的通信,本公开支持暂停运行子容器以及调整子容器的资源大小。
相应地,本公开的目的是提供一种分布式处理系统(例如临时请求处理系统)的低时延节点本地调度框架,其允许直接在节点上进行资源分配,不必联系中央资源主控器进一步分配资源,从而实现低时延。该框架还确保资源隔离及调整本地分配的资源大小。
为了实现上述目的,本公开提供主容器和子容器的概念。主容器是在分配的资源限制内协调启动子容器的特殊容器。公开提供一种DRS框架的机制,以满足主容器的此类请求。
公开了分布式资源管理中的低时延节点本地调度的系统和方法。
尽管描述了分布式资源管理中的低时延节点本地调度的系统和方法的各方面,但是本公开可以在任意数目的不同计算系统、环境和/或配置中实施,在以下示例性系统、设备/节点/装置和方法的上下文中描述这些实施例。
以下借助示例图和一个或多个示例解释本公开的实施例。然而,提供这样的示例图和示例是出于说明的目的,以便更好地理解本公开,而不应解释为限制本公开的范围。
现参考图4,图4示出根据本公开的实施例的临时请求处理系统的低时延节点本地调度框架的系统架构。
在一个实施例中,图4示出根据本公开引入的用于实现本公开的目的的各种新组件。
根据本公开,在资源代理(resource agent,RA)中引入/添加新的应用程序接口(application program interface,API),API能够接受启动具有主容器所需的资源以及子容器所需的缓冲/附加资源的主容器的请求。RA包括本地资源分配器。本地资源分配器负责在节点中可用资源限制内将资源本地分配给主容器和相关联的子容器。主容器是负责在特定节点上协调应用的子容器请求的特殊容器。主容器用于启动多个子容器。本地资源分配器在为主容器留出的资源限制内启动子容器。
根据本发明,可以为主容器引入API以请求调整子容器的资源大小/暂停子容器。
现参考图5,图5示出根据本公开的实施例的临时请求处理系统的低时延节点本地调度框架的工作。
如图5所示:
在步骤1:应用管理器(application manager,AM)向资源主控器(resourcemaster,RM)请求用于主容器的资源。请求的资源包括启动子容器所需的缓冲资源。在一个示例中,如图5所示,AM向RM请求用于主容器(及其子容器)的6GB的资源。
在步骤2:AM然后联系RA启动主容器,该主容器指定主容器自身所需的资源和为启动子容器而留出的资源。在一个示例中,如图5所示,AM联系RA启动具有用于主容器的2GB资源以及用于子容器的另外4GB缓冲资源的主容器。这4GB资源可用于启动各种大小的子容器。
在步骤3:本地资源分配器跟踪为主容器留出的所有资源(包括缓冲资源),并启动主容器。
现参考图6,图6示出根据本公开的实施例根据临时请求处理系统的低时延节点本地调度框架的请求处理。如图6所示:
在步骤1:临时请求到达AM。
在步骤2:AM通知主容器启动子容器。
在步骤3:主容器联系本地资源分配器启动请求的子容器。在一个示例中,如图6所示,主容器可以请求本地资源分配器启动大小分别为2GB的两个子容器。
在步骤4:本地资源分配器检查待启动的子容器是否在主容器限制内,如果是,则启动子容器。子容器大小可以是主容器的资源限制内的任何大小,有助于进行细粒度资源分配。在一个示例中,如图6所示,因为主容器分配有6GB的资源且仅需要2GB用于自身运行,本公开用于在该主容器内启动高达4GB的资源的子容器。
参考图6所示的示例,即如果在6GB的主容器限制内启动大小分别为2GB的两个子容器,可以在本地资源分配器中查看容器(主容器和子容器)的层级,如图7所示。图7是根据本公开的实施例的节点中分配的资源的分层视图。本地资源的分层组还可以映射到保证不同容器之间的资源隔离的控制组。一种控制组映射可以如图8所示。图8示出根据本公开的实施例的控制组可以实现的节点中分配的资源之间的隔离。
在一个实施方式中,本地资源分配器可选地支持以下功能,为子容器中的任务优先调整资源大小和暂停子容器。
现参考图9,图9示出根据本公开的实施例的示例1,其示出大规模并行处理数据库(massively parallel processing database,MPPDB)查询处理系统情景中使用的低时延节点本地调度框架。临时请求处理系统,例如MPPDB系统,可以利用本公开按照临时查询请求,运行每个节点上运行的查询代理作为主容器,启动查询执行器作为各种大小的子容器。如图9所示:
在步骤1:查询主控器可以充当AM并向RM请求资源以启动作为主容器运行的查询代理进程。所请求的资源可能等于查询代理所需的资源加上运行子容器所需的最小数目的资源。应用可以决定为子容器保留多少资源。
在步骤2:一旦接收到所需资源,查询主控器联系指定节点的对应RA,以启动查询代理作为主容器。
在步骤3:RA然后在节点上启动查询代理作为主容器。
在步骤4:查询到达查询主控器,查询主控器可以解析该查询并创建查询方案。
在步骤5:基于查询方案,查询主控器联系请求的节点上的查询代理(作为主容器运行)并行执行查询片段。
在步骤6:基于并行执行查询片段所需的资源,查询代理(主容器)联系RA启动查询执行器作为查询代理的子容器。
在步骤7:资源代理内的本地资源分配器检查查询代理请求的资源是否在资源限制内,然后RA启动子容器。本地资源分配器还对子容器实施资源限制。
从以上情景可以注意到,查询主控器不需要请求RM为临时查询分配资源,并且资源分配是在DRS范围内,因此资源是隔离的并且在空闲时可以关注集群的优化利用。
现参考图10,图10示出根据本公开的实施例的示例2,其示出保证低时延节点本地调度框架实现高性能的低时延。本公开保证了需要本地非常快速(低时延)启动容器的应用的高性能。在没有本发明的情况下,在分布式资源调度框架中,应用需要与RM交互并等待,直到资源分配给所需节点。
如图10所示,每当新的请求到达时,应用管理器可以只通知节点上已经启动的应用代理(作为主容器运行)执行需要在那个节点上执行的请求片段。然后,主容器可以联系节点上的RA以在其资源限制内启动子容器以执行请求片段。或者,应用可以在请求结束之后保持该子容器,在下一请求到达时调整子容器大小。本公开还允许较高优先级请求到来时暂停子容器。由于分配是在节点上本地完成的,因此服务该请求时延较低。
在一个示例中,假定临时请求处理系统中,在其中一个节点上主容器分配有6GB资源,启动应用代理作为主容器并使用2GB资源,从而为子容器保留4GB的资源。另外,启动大小分别为1GB的两个子容器(子容器1和子容器2)来处理已经进行的请求。当新请求到来时,流程将如图10所示:
在步骤1:新请求到达AM。
在步骤2:AM通知节点上须执行请求片段的应用代理(作为主容器运行),新的请求已经到达,新的请求需要节点上有另外两个大小分别为1GB的子容器。
在步骤3:主容器/应用代理请求(RA中)本地资源分配器另外启动两个大小分别为1GB的子容器。
在步骤4:本地资源分配器检查请求启动这些子容器的主容器的限制,可以服务该请求时,开始启动子容器3和子容器4。
如上所述,当新请求到来时,本公开能够在主容器的限制内本地进行分配,这有助于实现低时延并由此实现更高性能。
现参考图11,示出根据本公开的实施例的的示例3,其示出低时延节点本地调度框架实现的优化的集群资源利用。根据本公开,不需要保持预启动/预热的容器。相反,本公开允许预留用于RM中主容器的资源,因此在非高峰时间,自适应调度等高级特征可以按需要起作用,其可以调整主容器本身的大小。自适应调度是分布式资源调度框架中的一个特征,当容器的实际资源用量小于容器的分配资源时,该特征允许该框架过度分配资源。
参考图11所示的示例,节点资源是8GB,实际用量是4GB(2GB主容器+2GB用于其它容器),因此RM可用剩余的4GB自适应地过度调度按需要可以抢占的低优先级容器。本公开保证可以启动临时请求处理系统中的所有进程作为容器,即在DRS框架内启动,这意味着可以利用自适应调度等特征。
现参考图12,图12示出根据本公开的实施例的示例4,其示出低时延节点本地调度框架实现的云的可扩展性。根据本公开,临时请求处理系统可以轻易启动应用代理作为主容器。这意味着当节点扩大及随后启动RA时,应用还可以在新增的节点上启动应用代理作为主容器,从而实现可扩展性。云中的临时请求处理系统的典型流程可以如图12所示。
如图12所示,假定现有节点已经启动应用代理作为主容器,且请求执行器作为子容器运行。因此,在本公开之后,扩大节点的流程将如下工作:
在步骤1:扩大节点,即在云上添加新节点。由于云通常支持DRS框架的自动缩放,RA也将在新节点上自动启动。
在步骤2:新节点上运行的RA注册RM。
在步骤3:通知AM新增的节点。
在步骤4:AM然后也可以通过在新节点上启动其应用代理作为主容器来扩大。因此,AM向RM请求用于主容器的资源和一些缓冲资源。
在步骤5:当从RM接收到资源时,AM请求RA启动应用代理作为主容器。
在一个实施方式中,本公开更适合于多租户情景。如果应用需要服务多租户资源请求,本公开更适合,因为保证了子容器的资源隔离。这意味着不同的子容器可以处理来自不同租户的不同请求,不妨碍处理其它请求。该方案保证了一个繁重的请求不独占所有系统资源,并且在分配给该繁重的请求的系统资源的限制内使用资源。
图13示出根据本公开的实施例的资源分配和处理分布式系统内的作业的系统。
尽管考虑将资源分配和处理分布式系统内的作业的系统实施为系统1300来解释本公开,但是可以理解,系统1300还可以在各种计算系统中实施,例如膝上型计算机、台式计算机、笔记本电脑、工作站、主机计算机、服务器、网络服务器等。可以理解,多个用户可以通过一个或多个用户设备接入系统1300。系统1300的示例可以包括但不限于便携式计算机、个人数字助理、手持式设备和工作站。系统1300通过网络可通信地耦合到其它节点。
在一个实施方式中,网络可以是无线网络、有线网络或其组合。网络可以实施为不同类型的网络中的一种,例如企业内部网、局域网(local area network,LAN)、广域网(wide area network,WAN)、互联网等。网络可以是专用网络或共享网络。共享网络表示使用多种协议来互相通信的不同类型的网络的关联,协议例如超文本传输协议(hypertexttransfer protocol,HTTP)、传输控制协议/因特网协议(transmission controlprotocol/Internet protocol,TCP/IP)、无线应用协议(wireless applicationprotocol,WAP)等。此外,网络可以包括多种网络设备,包括路由器、网桥、服务器、计算设备、存储设备等。
在一个实施例中,系统1300可以包括至少一个处理器1302、输入/输出(input/output,I/O)接口1304和存储器1306。至少一个处理器1302可以实施为一个或多个微处理器、微计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令操控信号的任何设备。除其它能力外,至少一个处理器1302还用于提取和执行存储在存储器1306中的计算机可读指令。
I/O接口1304可以包括多种软件和硬件接口,例如,网站接口、图形用户接口等。I/O接口1304可允许系统1300直接与用户交互或通过客户端设备(未示出)与用户交互。此外,I/O接口1304可以使系统1300与网络服务器和外部数据服务器(未示出)等其它计算设备通信。I/O接口1304可以促进多种网络和协议类型内的多种通信,该网络和协议类型包括:有线网络,例如LAN、电缆等;和无线网络,例如WLAN、蜂窝式网络或卫星。I/O接口1304可以包括一个或多个端口,用于将多个设备互相连接或与另一服务器连接。
存储器1306可以包括本领域中已知的任何计算机可读介质,例如包括:易失性存储器,例如静态随机存取存储器(static random access memory,SRAM)和动态随机存取存储器(dynamic random access memory,DRAM);和/或非易失性存储器,例如只读存储器(read only memory,ROM)、可擦除可编程ROM、快闪存储器、硬盘、光盘以及磁带。存储器1306可以包括执行系统1300的相应功能的逻辑。
在第一实施例中,提供一种资源分配和处理接收待处理的作业的分布式系统内的作业的系统1300。系统1300包括处理器1302和耦合到处理器的存储器1306处理器用于执行存储器1306中的多个模块。存储器包括至少一个进程1308和至少一个资源分配器1312。至少一个进程1308用于处理接收待处理的作业的分布式系统内的作业。至少一个资源分配器1312可通信地与至少一个进程1308耦合,并用于在分配给至少一个进程1308用于处理作业的一个或多个资源的限制内生成一个或多个子进程1314。
在第一实施例的第一具体实施方式中,该系统可以包括与一个或多个子进程1314相关联的一个或多个缓冲进程。
在第一实施例的第二具体实施方式中,至少一个资源分配器用于在系统的范围内将一个或多个子进程本地分配给至少一个进程。
在第一实施例的第三具体实施方式中,至少一个进程1308用于调整处理作业的一个或多个子进程1314的大小和/或暂停该一个或多个子进程1314。
在第一实施例的第四具体实施方式中,至少一个进程1308用于协调处理作业的一个或多个子进程1314请求。
在第一实施例的第五具体实施方式中,该系统还包括驻留在存储器1306中的至少一个资源代理1310,其具有驻留在资源代理中的至少一个资源分配器1312,其中至少一个资源代理1310用于生成至少一个进程1308,该至少一个进程1308指定至少一个进程1308所需的一个或多个资源,以及留出用于生成一个或多个子进程1314的一个或多个资源。
在第一实施例的第六具体实施方式中,至少一个资源分配器1312还用于跟踪分配可用的一个或多个资源,从而基于一个或多个可用的资源生成至少一个进程。
在第一实施例的第七具体实施方式中,系统1300还可以包括至少一个资源管理器,用于发送至少一个进程待处理的作业。
在第二实施例中,提供一种资源分配和处理接收待处理的作业的分布式系统内的作业的系统1300。系统1300包括处理器1302和耦合到处理器1302的存储器1306,处理器1302用于执行存储器1306中的多个模块。存储器1306包括至少一个应用管理器、至少一个进程1308和至少一个资源分配器1312。至少一个应用管理器用于接收待处理的作业。至少一个进程1308用于使用一个或多个子进程1314处理作业。至少一个资源分配器1312可通信地与至少一个进程1308耦合,并用于在分配给至少一个进程1308用于处理作业的一个或多个资源的限制内生成一个或多个子进程1314。至少一个资源分配器1312驻留在至少一个资源代理1310中。
参考图14,根据本公开的实施例,示出一种资源分配和处理接收待处理的用户作业的分布式系统内的作业的方法。可以在计算机可执行指令的一般上下文中描述该方法。通常,计算机可执行指令可包括执行特定功能或实施特定抽象数据类型的例程、程序、对象、组件、数据结构、进程、模块、功能等。该方法还可在分布式计算环境中实践,其中由通信网络连接的远程处理设备执行功能。在分布式计算环境中,计算机可执行指令可位于包括存储器设备的本地和远程计算机存储介质中。
描述该方法的次序不应理解为限制,并且可按任何次序组合任何数目的所描述的方法框来实施该方法或替代性方法。此外,可在不脱离本文描述的标的物的保护范围的情况下从该方法中删除各个框。此外,该方法可以在任何合适的硬件、软件、固件或其组合中实施。然而,为了便于解释,在下文描述的实施例中,该方法视为在上述系统1300中实施。
现参考图14:
在步骤1402,至少一个进程1308接收待处理的作业。
在步骤1404,至少一个资源分配器1312可通信地与至少一个进程1308耦合。至少一个资源分配器1312在分配给至少一个进程1308用于处理作业的一个或多个资源的限制内生成一个或多个子进程1314。
参考图15,在1501,应用管理器模块(1501)与资源主控模块(1502)可操作地通信以分配资源。应用管理器模块(1501)与资源代理模块(1503)可操作地通信或联系以用于在资源主控模块(1502)分配资源之后生成主进程模块(1505)(即,主容器)。本地资源分配器模块(1504),可操作地位于资源代理模块(1503)中。本地资源分配器模块(1504)用于生成主进程模块(1505)并跟踪所分配的资源。在接收到作业请求之后,应用管理器模块(1501)与主进程模块(1505)可操作地联系或通信,然后主进程模块(1505)与本地资源分配器模块(1504)可操作地联系或通信,用于生成一个或多个子进程模块(1506和1507),由此本地资源分配器模块(1504)用于基于资源分配生成处理作业请求的一个或多个子进程模块(1506和1507),从而实现资源的低时延节点本地分配。
本领域技术人员可以理解,任何已知的或者新的算法都可以用于实施本公开。然而,应注意,与任何已知的或者新的算法无关,本发明提供一种将用于备份操作期间的方法以实现上述益处和技术改进。
本领域普通技术人员能够认识到,结合本说明书所公开的实施例中所描述的示例,可以通过电子硬件或计算机软件与电子硬件的组合实现单元和算法步骤。功能是由硬件还是由软件执行取决于技术方案的特定应用和设计约束条件。本领域技术人员可以使用不同的方法来实施针对每个特定应用的所描述的功能,但是不应该认为该实施方式超出了本公开的范围。
本领域技术人员可清楚地理解,出于方便和简单描述的目的,对于前述系统、装置和单元的详细工作进程,可参考前述方法实施例中的对应进程,本文中不再描述细节。
在本公开提供的几个实施例中,应理解,可以以其它方式实施公开的系统、装置和方法。例如,所描述的装置实施例仅仅是示例性的。例如,单元划分仅仅是逻辑功能划分且在实际实现中可以是其它划分。例如,可将多个单元或部件合并或集成到另一系统中,或可忽略或不执行部分特征。另外,可通过一些接口实现所显示或论述的互相耦合或直接耦合或通信连接。装置或单元之间的直接耦合或通信连接可通过电子、机械或其它形式实现。
当这些功能以软件功能单元的形式实现以及作为单独产品销售或使用时它们可存储在计算机可读存储介质中。基于此理解,本公开的技术方案实质上,或促进现有技术的部分,或技术方案的一部分可以软件产品的形式实施。计算机软件产品存储在存储介质中,并且包括用于指示计算机节点(可以是个人计算机、服务器或网络节点)执行本公开的实施例中描述的方法的全部或部分步骤的若干指令。上述存储介质包括:可以存储程序代码的任何介质,例如USB盘、可移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁盘或光学光盘。
除非另外明确说明,彼此通信的设备不必彼此连续通信。另外,彼此通信的设备可以通过一个或多个媒介直接或间接通信。
虽然本文描述了单个设备或制品,但显然可以使用不止一个设备/制品(不论它们是否协作)来代替单个设备/制品。类似地,虽然本文描述了不止一个设备或制品(不论它们是否协作),但显然可以使用单个设备/制品来代替不止一个设备或制品,或者可以使用不同数量的设备/制品,而不是所示数量的设备或程序。设备的功能和/或特征可替代性地由没有明确地描述为具有这种功能/特征的一个或多个其它设备来实施。因此,本发明的其它实施例不必包括设备本身。
最后,出于可读性和指导性的目的已经主要选择了说明书中使用的语言,并且该语言未被选择成限定或限制本发明的主题。因此,本发明的范围并非意在由这一详细描述限制,而是由在基于本文的应用上所附的任何权利要求限制。相应地,本发明的实施例的公开希望说明而不是限制所附权利要求书中阐述的本发明的范围。
关于本文中任何复数和/或单数术语的使用,本领域技术人员可以从复数形式转换为单数形式,和/或从单数形式转换为复数形式,以适合具体环境和/或应用。为清晰起见,本文中可明确地阐述各种单数/复数排列。
尽管已经以专用于结构特征和/或方法的语言描述了分布式资源管理中的低时延节点本地调度系统和方法的实施方式,但是应当理解,所附权利要求不必限于所描述的具体特征或方法。事实上,公开特定特征和方法是作为实施分布式资源管理中的低时延节点本地调度的系统和方法的示例。
Claims (17)
1.一种分配资源和处理分布式系统内至少一个作业请求的系统,其特征在于,包括:
应用管理器模块、资源主控模块、本地资源分配器模块和主进程模块,其中,所述本地资源分配器模块和主进程模块位于所述分布式系统中的一个节点;
所述应用管理器模块,与资源主控模块通信以用于给所述节点分配资源;
在接收所述至少一个作业请求后,所述应用管理器模块与所述主进程模块可操作地通信;
所述主进程模块与所述本地资源分配器模块可操作地通信,从而所述本地资源分配器模块对所述资源进行分配,在所述节点生成处理所述至少一个作业请求的一个或多个子进程模块;
其中,所述本地资源分配器模块对所述资源的分配包括:
从所述资源中为所述主进程模块分配主进程资源,所述主进程资源包括所述主进程模块所需的资源和启动所述一个或多个子进程模块所需的缓冲资源;
为所述一个或多个子进程模块分配所述缓冲资源。
2.根据权利要求1所述的系统,其特征在于,
所述本地资源分配器模块,可操作地位于资源代理模块中以用于在所述资源主控模块分配资源之后生成所述主进程模块。
3.根据权利要求1所述的系统,其特征在于,所述本地资源分配器模块用于跟踪所述资源分配。
4.根据权利要求1所述的系统,其特征在于,所述本地资源分配器模块用于确定所述一个或多个子进程模块的所述资源分配是否在所述主进程模块预设的资源的限制内。
5.根据权利要求1或4所述的系统,其特征在于,所述本地资源分配器模块用于为一个或多个子进程模块调整所述资源的大小。
6.根据权利要求1所述的系统,其特征在于,所述本地资源分配器模块用于暂停所述一个或多个子进程模块。
7.根据权利要求1所述的系统,其特征在于,所述主进程模块用于与所述一个或多个子进程模块进行协调。
8.根据权利要求1所述的系统,其特征在于,所述至少一个作业请求包括临时作业请求。
9.一种分配资源和处理分布式系统内至少一个作业请求的方法,其特征在于,包括:
应用管理器模块与资源主控模块通信以给所述分布式系统中的节点分配资源;
接收所述至少一个作业请求后,应用管理器模块与主进程模块通信;
所述主进程模块与本地资源分配器模块通信,从而基于所述本地资源分配器模块对所述资源的分配生成处理所述至少一个作业请求的一个或多个子进程模块,所述主进程模块与所述本地资源分配器模块位于所述节点;
其中,所述本地资源分配器模块对所述资源的分配包括:
从所述资源中为所述主进程模块分配主进程资源,所述主进程资源包括所述主进程模块所需的资源和启动所述一个或多个子进程模块所需的缓冲资源;
为所述一个或多个子进程模块分配所述缓冲资源。
10.根据权利要求9所述的方法,其特征在于,还包括:
所述资源主控模块分配资源后,资源代理模块中的所述本地资源分配器模块生成所述主进程模块。
11.根据权利要求9所述的方法,其特征在于,还包括:跟踪所述本地资源分配器模块进行的所述资源分配。
12.根据权利要求9所述的方法,其特征在于,还包括:所述本地资源分配器模块确定所述一个或多个子进程模块的所述资源分配是否在所述主进程模块预设的资源的限制内。
13.根据权利要求9或12所述的方法,其特征在于,还包括:所述本地资源分配器模块为所述一个或多个子进程模块调整所述资源的大小。
14.根据权利要求9所述的方法,其特征在于,还包括:所述本地资源分配器模块暂停所述一个或多个子进程模块。
15.根据权利要求9所述的方法,其特征在于,还包括:所述主进程模块与所述一个或多个子进程模块进行协调。
16.根据权利要求9所述的方法,其特征在于,处理所述至少一个作业请求包括处理临时作业请求。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求9至16任一项所述方法的步骤。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201741013938 | 2017-04-19 | ||
ININ201741013938 | 2017-04-19 | ||
CN201880018352.6A CN110431806B (zh) | 2017-04-19 | 2018-04-19 | 分布式资源管理中低时延节点本地调度的系统和方法 |
PCT/CN2018/083636 WO2018192543A1 (en) | 2017-04-19 | 2018-04-19 | System and method for low latency node local scheduling in distributed resource management |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880018352.6A Division CN110431806B (zh) | 2017-04-19 | 2018-04-19 | 分布式资源管理中低时延节点本地调度的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113037538A CN113037538A (zh) | 2021-06-25 |
CN113037538B true CN113037538B (zh) | 2022-11-25 |
Family
ID=63856218
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880018352.6A Active CN110431806B (zh) | 2017-04-19 | 2018-04-19 | 分布式资源管理中低时延节点本地调度的系统和方法 |
CN202110161417.6A Active CN113037538B (zh) | 2017-04-19 | 2018-04-19 | 分布式资源管理中低时延节点本地调度的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880018352.6A Active CN110431806B (zh) | 2017-04-19 | 2018-04-19 | 分布式资源管理中低时延节点本地调度的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11561830B2 (zh) |
EP (2) | EP3593496B1 (zh) |
CN (2) | CN110431806B (zh) |
WO (1) | WO2018192543A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210096259A (ko) * | 2018-12-07 | 2021-08-04 | 헤이디언 슈퍼컴퓨팅 엘티디 | 컴퓨팅 리소스 할당 |
US11580321B2 (en) * | 2019-04-08 | 2023-02-14 | Ares Technologies, Inc. | Systems, devices, and methods for machine learning using a distributed framework |
CN111835679B (zh) * | 2019-04-18 | 2022-03-25 | 华为技术有限公司 | 多租户场景下的租户资源管理方法和装置 |
US11249793B2 (en) | 2019-11-26 | 2022-02-15 | Shoreline Software, Inc. | Executing a pipeline command sequence designed for execution on a single node across a fleet of nodes |
US11133989B2 (en) | 2019-12-20 | 2021-09-28 | Shoreline Software, Inc. | Automated remediation and repair for networked environments |
US11157282B2 (en) * | 2020-02-18 | 2021-10-26 | Shoreline Software, Inc. | Scaling performance across a large number of customer nodes |
CN111367659B (zh) | 2020-02-24 | 2022-07-12 | 苏州浪潮智能科技有限公司 | 一种Kubernetes中节点的资源管理方法、设备以及介质 |
US11481394B2 (en) | 2020-02-24 | 2022-10-25 | Shoreline Software, Inc. | Elimination of measurement lag for operations across a large number of customer nodes |
CN113065054B (zh) * | 2021-03-31 | 2024-03-01 | 北京达佳互联信息技术有限公司 | 请求处理方法、装置、电子设备及存储介质 |
US20230072962A1 (en) * | 2021-09-03 | 2023-03-09 | International Business Machines Corporation | Distributed system workload management via node autonomy |
CN116737445B (zh) * | 2023-08-14 | 2023-10-27 | 南京翼辉信息技术有限公司 | 一种利用伪容器实现资源隔离的控制方法 |
CN117785488B (zh) * | 2024-02-27 | 2024-04-26 | 矩阵起源(深圳)信息科技有限公司 | 查询调度方法、装置、设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706798B1 (en) * | 2013-06-28 | 2014-04-22 | Pepperdata, Inc. | Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system |
CN103944769A (zh) * | 2014-05-05 | 2014-07-23 | 江苏物联网研究发展中心 | 基于rpc协议的集群资源统一管理系统 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6694345B1 (en) | 1999-10-05 | 2004-02-17 | International Business Machines Corporatioin | External job scheduling within a distributed processing system having a local job control system |
US6671065B1 (en) * | 1999-11-29 | 2003-12-30 | Xerox Corporation | Method and apparatus to optimize transition of resources from a lower priority to a higher priority job |
US7093004B2 (en) | 2002-02-04 | 2006-08-15 | Datasynapse, Inc. | Using execution statistics to select tasks for redundant assignment in a distributed computing platform |
US6988139B1 (en) * | 2002-04-26 | 2006-01-17 | Microsoft Corporation | Distributed computing of a job corresponding to a plurality of predefined tasks |
US7441241B2 (en) * | 2004-05-20 | 2008-10-21 | International Business Machines Corporation | Grid non-deterministic job scheduling |
US8091088B2 (en) * | 2005-02-22 | 2012-01-03 | Microsoft Corporation | Method and system for hierarchical resource management involving hard and soft resource limits |
US8392564B1 (en) * | 2005-06-20 | 2013-03-05 | Oracle America, Inc. | Cluster-wide resource usage monitoring |
US8185899B2 (en) | 2007-03-07 | 2012-05-22 | International Business Machines Corporation | Prediction based priority scheduling |
US8566835B2 (en) * | 2007-12-13 | 2013-10-22 | Hewlett-Packard Development Company, L.P. | Dynamically resizing a virtual machine container |
US20100077403A1 (en) * | 2008-09-23 | 2010-03-25 | Chaowei Yang | Middleware for Fine-Grained Near Real-Time Applications |
US9262232B2 (en) * | 2012-02-29 | 2016-02-16 | Red Hat, Inc. | Priority build execution in a continuous integration system |
RU2012128956A (ru) * | 2012-07-10 | 2014-01-20 | Александр Яковлевич Богданов | Способ управления ресурсами в вычислительной системе |
US8942715B2 (en) * | 2012-08-02 | 2015-01-27 | Apple Inc. | Distributed computing in a wireless communication system |
CN103593242B (zh) | 2013-10-15 | 2017-04-05 | 北京航空航天大学 | 基于Yarn框架的资源共享控制系统 |
CN104780146B (zh) * | 2014-01-13 | 2018-04-27 | 华为技术有限公司 | 资源管理方法及装置 |
US10061780B2 (en) * | 2014-04-28 | 2018-08-28 | Bank Of America Corporation | Information management command process device |
US9413626B2 (en) * | 2014-12-05 | 2016-08-09 | Amazon Technologies, Inc. | Automatic management of resource sizing |
US10956189B2 (en) * | 2015-02-13 | 2021-03-23 | Red Hat Israel, Ltd. | Methods for managing virtualized remote direct memory access devices |
CN105357042B (zh) * | 2015-10-30 | 2018-09-07 | 浪潮(北京)电子信息产业有限公司 | 一种高可用集群系统及其主节点和从节点 |
US10331474B2 (en) * | 2016-01-08 | 2019-06-25 | Hitachi, Ltd. | Machine system, physical machine, and memory control method |
CN107066319B (zh) * | 2017-01-17 | 2020-11-10 | 北京中电普华信息技术有限公司 | 一种面向异构资源的多维调度系统 |
-
2018
- 2018-04-19 EP EP18788044.8A patent/EP3593496B1/en active Active
- 2018-04-19 WO PCT/CN2018/083636 patent/WO2018192543A1/en unknown
- 2018-04-19 CN CN201880018352.6A patent/CN110431806B/zh active Active
- 2018-04-19 EP EP22166633.2A patent/EP4083800A1/en active Pending
- 2018-04-19 CN CN202110161417.6A patent/CN113037538B/zh active Active
-
2019
- 2019-10-21 US US16/658,699 patent/US11561830B2/en active Active
-
2023
- 2023-01-09 US US18/151,946 patent/US12118391B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8706798B1 (en) * | 2013-06-28 | 2014-04-22 | Pepperdata, Inc. | Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system |
CN103944769A (zh) * | 2014-05-05 | 2014-07-23 | 江苏物联网研究发展中心 | 基于rpc协议的集群资源统一管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110431806A (zh) | 2019-11-08 |
US20200050487A1 (en) | 2020-02-13 |
US20230161622A1 (en) | 2023-05-25 |
CN110431806B (zh) | 2021-02-05 |
US11561830B2 (en) | 2023-01-24 |
EP3593496A4 (en) | 2020-01-15 |
EP3593496B1 (en) | 2022-05-04 |
CN113037538A (zh) | 2021-06-25 |
EP3593496A1 (en) | 2020-01-15 |
EP4083800A1 (en) | 2022-11-02 |
WO2018192543A1 (en) | 2018-10-25 |
US12118391B2 (en) | 2024-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113037538B (zh) | 分布式资源管理中低时延节点本地调度的系统和方法 | |
US10467725B2 (en) | Managing access to a resource pool of graphics processing units under fine grain control | |
US10831551B2 (en) | Computing session workload scheduling and management of parent-child tasks using a blocking yield API to block and unblock the parent task | |
Sotomayor et al. | Capacity leasing in cloud systems using the opennebula engine | |
US8756599B2 (en) | Task prioritization management in a virtualized environment | |
US8336056B1 (en) | Multi-threaded system for data management | |
CN109564528B (zh) | 分布式计算中计算资源分配的系统和方法 | |
US9588787B2 (en) | Runtime virtual process creation for load sharing | |
CN111316237B (zh) | 用于实时虚拟网络功能编排的方法、装置和系统 | |
US20150309830A1 (en) | Estimating migration costs for migrating logical partitions within a virtualized computing environment based on a migration cost history | |
JP2005327279A (ja) | 仮想計算機をマイグレーションするためのシステム、方法、およびプログラム | |
Verner et al. | Scheduling processing of real-time data streams on heterogeneous multi-GPU systems | |
US10013264B2 (en) | Affinity of virtual processor dispatching | |
KR102338849B1 (ko) | 실시간 운영 체제에서 스택 메모리 관리를 제공하는 방법 및 시스템 | |
US9507633B2 (en) | Scheduling method and system | |
CN115168040A (zh) | 一种作业抢占调度方法、装置、设备和存储介质 | |
US8977752B2 (en) | Event-based dynamic resource provisioning | |
US9336049B2 (en) | Method, system, and program for scheduling jobs in a computing system | |
US10824640B1 (en) | Framework for scheduling concurrent replication cycles | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
KR101334842B1 (ko) | 가상화 지원 단말 플랫폼을 위한 가상머신 관리장치 및 방법 | |
Kim et al. | Sophy+: Programming model and software platform for hybrid resource management of many-core accelerators | |
CN117950816A (zh) | 作业调度方法、装置和芯片 | |
CN117130787A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
Kim et al. | SoPHy: A Software Platform for Hybrid Resource Management of Homogeneous Many-core Accelerators |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |