CN113590320A - 分布式批量任务调度的资源处理方法、装置、设备及介质 - Google Patents
分布式批量任务调度的资源处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113590320A CN113590320A CN202110862667.2A CN202110862667A CN113590320A CN 113590320 A CN113590320 A CN 113590320A CN 202110862667 A CN202110862667 A CN 202110862667A CN 113590320 A CN113590320 A CN 113590320A
- Authority
- CN
- China
- Prior art keywords
- resource
- task
- type
- current
- resources
- 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.)
- Pending
Links
Images
Classifications
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种分布式批量任务调度的资源处理方法、装置、设备及介质,涉及自动程序设计技术领域,其中该方法包括:在接收到当前任务时,确定当前任务类型;根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量;在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量。本发明可以高效准确地进行分布式批量任务调度的资源处理。
Description
技术领域
本发明涉及自动程序设计技术领域,尤其涉及一种分布式批量任务调度的资源处理方法、装置、设备及介质。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
银行业务的分布式批处理***,往往需要处理种类繁多的批量任务,如文件处理任务、数据库卸数任务、数据库更新任务、常驻服务任务等等。各种任务类型的资源需求呈现多样化,资源约束和偏好也越来越复杂,目前已有的资源处理方法存在的问题包括:分布式场景下资源处理功能不足,资源分配方案不合理以及资源处理效率不佳等。
发明内容
本发明实施例提供一种分布式批量任务调度的资源处理方法,用以高效准确地进行分布式批量任务调度的资源处理,该方法包括:
在接收到当前任务时,确定当前任务类型;
根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量;
在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量。
在一个实施例中,上述分布式批量任务调度的资源处理方法还可以包括:在根据执行当前类型任务所需申请每一类型有限资源需求量,以及所需申请每一类型有限资源的剩余量确定资源不满足时,释放所有已获取类型资源的访问权限。
在一个实施例中,上述分布式批量任务调度的资源处理方法还可以包括:对分配给当前任务的所需每一类型有限资源进行加锁处理。
在一个实施例中,上述分布式批量任务调度的资源处理方法还可以包括:对资源已使用数量进行实时更新与动态优先调整。
在一个实施例中,资源类型可以包括:有限数量资源、互斥资源、任务可运行的处理器范围资源。
在一个实施例中,在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量,可以包括:
在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,根据预先为当前类型任务设置的偏好信息,为当前类型任务分配所述所需每一类型资源及其需求量。
在一个实施例中,任务类型可以包括:文件处理任务、数据库卸数任务、数据库更新任务和常驻服务任务。
在一个实施例中,上述分布式批量任务调度的资源处理方法还可以包括:
在监听到分布式资源等待队列中的资源节点下有资源释放事件发生时,按任务权重、任务进入等待队列时间排序,遍历等待队列,给满足执行条件的任务打标;
在监听到任务打标事件发生时,将被打标任务作为所述当前任务。
本发明实施例还提供一种分布式批量任务调度的资源处理装置,用以高效准确地进行分布式批量任务调度的资源处理,该装置包括:
类型确定单元,用于在接收到当前任务时,确定当前任务类型;
资源需求确定单元,根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量;
处理单元,用于在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量。
在一个实施例中,所述处理单元还用于在根据执行当前类型任务所需申请每一类型有限资源需求量,以及所需申请每一类型有限资源的剩余量确定资源不满足时,释放所有已获取类型资源的访问权限。
在一个实施例中,上述分布式批量任务调度的资源处理装置还包括:加锁单元,用于对分配给当前任务的所需每一类型有限资源进行加锁处理。
在一个实施例中,上述分布式批量任务调度的资源处理装置还包括:动态处理单元,用于对资源已使用数量进行实时更新与动态优先调整。
在一个实施例中,所述处理单元具体用于:
在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,根据预先为当前类型任务设置的偏好信息,为当前类型任务分配所述所需每一类型资源及其需求量。
在一个实施例中,上述分布式批量任务调度的资源处理装置还包括:
打标单元,用于在监听到分布式资源等待队列中的资源节点下有资源释放事件发生时,按任务权重、任务进入等待队列时间排序,遍历等待队列,给满足执行条件的任务打标;
当前任务确定单元,用于在监听到任务打标事件发生时,将被打标任务作为所述当前任务。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述分布式批量任务调度的资源处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述分布式批量任务调度的资源处理方法的计算机程序。
本发明实施例中,分布式批量任务调度的资源处理方案,通过:在接收到当前任务时,确定当前任务类型;根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量;在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量,可以实现高效准确地进行分布式批量任务调度的资源处理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中分布式批量任务调度的资源处理方法的流程示意图;
图2为本发明实施例中资源节点示意图;
图3为本发明另一实施例中分布式批量任务调度的资源处理方法的流程示意图;
图4为本发明另一实施例中分布式批量任务调度的资源处理方法的流程示意图;
图5为本发明实施例中分布式批量任务调度的资源处理装置的结构示意图;
图6为本发明实施例中计算机设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在介绍本发明实施例之前,首先对本发明涉及的名词进行介绍。
1.资源控制(处理)又称为资源管理,其核心目标是:提高***的资源利用率,保证***任务高效有序地执行。
2.分布式:分布式***(distributed system)是建立在网络之上的软件***。正是因为软件的特性,所以分布式***具有高度的内聚性和透明性。在一个分布式***中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个***似的。***拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。***中存在一个以全局的方式管理计算机资源的分布式操作***。通常,对用户来说,分布式***只有一个模型或范型。在操作***之上有一层软件中间件(middleware)负责实现这个模型。一个著名的分布式***的例子是万维网(World WideWeb),在万维网中,所有的一切看起来就好像是一个文档(Web页面)一样。
3.批处理:批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows***中。批处理文件的扩展名为bat。目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于微软的强大的PowerShell的,用来批量处理一些任务的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括***本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前***下可运行的程序都可以放在批处理文件中运行。
银行业务的分布式批处理***,往往需要处理种类繁多的批量任务,如文件处理任务、数据库卸数任务、数据库更新任务、常驻服务任务等等。各种任务类型的资源需求呈现多样化,资源约束和偏好也越来越复杂,例如一个任务运行需要考虑CPU、内存、网络、磁盘甚至内存带宽、网络带宽等,还需要考虑数据本地行,对物理机的偏好等;并且不同类型任务在实际调度过程中不可避免会调度至相同的数据节点上,这就需要对不同种类的任务进行资源隔离以减少两者之间的干扰;此外在调度过程中,也需要对任务所需资源进行实时更新与动态优先调整,以保证任务调度的灵活准确。因此,需要一套高效可行的分布式批量任务调度的资源控制方法。
目前在市面上存在着为数众多的分布式资源管理(处理)方法,但是不同的资源调度方法所适用的应用场景也各不相同。本发明实施例所提供的资源控制方法,能更适应银行业务批处理***的特性,满足***任务调度需求。
具体实施时,控制(处理)资源的类型分为:Quantity-Resource,Control-Resource(Share,Exclude)和Host-Resource,即在一个实施例中,资源类型可以包括:有限数量资源、互斥资源、任务可运行的处理器范围资源。其中:QR(Quantity-Resource)代表有限数量资源,表示任务所需资源的数量。CR(Control-Resource)代表互斥资源,即任务所需的临界资源。CRS(Control-Resource Share)代表可共享互斥资源,CRE(Control-ResourceExclude)代表独占互斥资源。HR(Host-Resource)代表任务可运行的处理器范围资源。
具体实施时,资源配置以单一功能任务为单位,多个资源配置支持竖线分割。其中,QR的配置格式为:任务功能标识:资源类型-资源名称-资源数量。CR配置格式为:任务功能标识:资源类型-资源名称。HR配置格式为:HOST:主机名。
具体实施时,资源信息是通过在Zookeeper中,创建资源节点(Resources Node)进行记录与维护。Sharding(分库)子节点用于存储数据库分片资源信息;QR(数量资源)子节点用于存储处理器全局资源信息。资源节点如图2所示,当***中的资源使用情况发生变更时,其对应资源节点中的信息也会被实时更新。
考虑到现有技术存在的问题,发明人提出一种分布式批量任务调度的资源处理方案,该方案将上述提到的CPU、内存、网络等可共享的资源视为有限数量资源(QR),并根据实际资源的大小设定等价的抽象资源数量。例如设置全局CPU-QR资源数量为100,并为不同类型的任务设置资源CPU-QR需求量,当任务在分配与执行时,首先进行CPU-QR资源的申请,等到资源满足后,才开始真正地提交处理;而针对有主机资源偏好的情况,可以为任务设置主机资源(HR),这样在分配任务时,则会根据资源申请,将对应任务进行指定分发。
因此,本发明实施例提出的分布式批量任务调度的资源处理方案为一套完整的控制资源类型,并依靠使用Zookeeper提供的特性,实现了一种在分布式批量***中,通过对调度任务所需资源进行定义、申请、等待以及释放等操作,以提高分布式资源管理效率、建立资源隔离机制、保证任务高效有序执行的控制(处理)方法。
下面对该分布式批量任务调度的资源处理方案进行详细介绍。
图1为本发明实施例中分布式批量任务调度的资源处理方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤101:在接收到当前任务时,确定当前任务类型;
步骤102:根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量;
步骤103:在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量。
本发明实施例中,分布式批量任务调度的资源处理方法,通过:在接收到当前任务时,确定当前任务类型;根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量;在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量,可以实现高效准确地进行分布式批量任务调度的资源处理。下面结合图2至图4对该方法涉及的各个步骤进行详细介绍。
本发明实施例可以使用Zookeeper,并将其应用于数据发布与订阅、分布式协调与通知、分布式锁、分布式队列等场景,通过对调度任务所需资源进行定义、申请、等待以及释放等操作,实现了一种可用于分布式批量任务调度的资源控制方法。下面进行详细介绍。
一、首先,介绍上述步骤101。
在一个实施例中,任务类型可以包括:文件处理任务、数据库卸数任务、数据库更新任务和常驻服务任务等。该些任务均为银行分布式场景下的任务。
二、接着,介绍上述步骤102。
具体实施时,预先配置的任务类型与所需每一类型资源及其需求量的关系可以是一张表格,资源类型的小类可以包括CPU、内存、网络等资源,执行一项任务可能用到多个类型资源,资源需求量可以为预先定义的抽象数量,例如执行一项任务需要CPU类型资源的需求数量(需求量)是10,CPU类型资源的剩余量是100,内存类型资源的需求数量是15,内存类型资源的剩余量是200等等。
三、接着,介绍上述步骤103。
具体实施时,在上述步骤103中,若资源足够分配,进行资源分配。
在一个实施例中,如图3所示,上述分布式批量任务调度的资源处理方法还可以包括步骤104:在根据执行当前类型任务所需申请每一类型有限资源需求量,以及所需申请每一类型有限资源的剩余量确定资源不满足时,释放所有已获取类型资源的访问权限。
具体实施时,若资源不足以分配,则阻塞等待资源,例如任务需要多种资源时,会保证资源申请/释放的原子性(如果把一个操作看作是一个程序,它要么完整的被执行,要么完全不执行,这种特性就叫原子性)。资源申请/释放操作在申请多个资源访问权限时,由于某一资源限制而无法成功完成,此时任务执行器将释放所有已经获取的资源访问权限,退出等待并进入等待队列以防止死锁。
在一个实施例中,在上述步骤103中,在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量,可以包括:
在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,根据预先为当前类型任务设置的偏好信息,为当前类型任务分配所述所需每一类型资源及其需求量。
具体实施时,针对有主机资源偏好的情况,可以为任务设置主机资源(HR),这样在分配任务时,则会根据资源申请,将对应任务进行指定分发。
四、接着,介绍进一步优选的步骤。
在一个实施例中,上述分布式批量任务调度的资源处理方法还可以包括:对分配给当前任务的所需每一类型有限资源进行加锁处理。
具体实施时,考虑到不同类型任务在实际调度过程中不可避免会调度至相同的数据节点上,这就需要对不同种类的任务进行资源隔离以减少两者之间的干扰,因此,对分配给当前任务的所需每一类型有限资源进行加锁处理,实现资源隔离,保证分布式批量任务调度的资源处理的准确性,进一步提高***稳定性。
在一个实施例中,如图4所示,上述分布式批量任务调度的资源处理方法还可以包括步骤105:对资源已使用数量进行实时更新与动态优先调整。
具体实施时,对资源已使用数量进行实时更新与动态优先调整保证了任务调度的灵活准确。
在一个实施例中,上述分布式批量任务调度的资源处理方法还可以包括:
在监听到分布式资源等待队列中的资源节点下有资源释放事件发生时,按任务权重、任务进入等待队列时间排序,遍历等待队列,给满足执行条件的任务打标;
在监听到任务打标事件发生时,将被打标任务作为所述当前任务。
具体实施时,本发明实施例还提供了资源等待方案:资源等待队列是通过带优先权重的分布式队列实现的。当任务调度中心监听到资源节点(/resource)下有资源释放事件发生时,按任务权重、任务进入等待队列时间排序,遍历等待队列,给满足执行条件的任务打标;任务执行器监听到打标事件,即可进行申请资源重新执行;如果任务等待时间超过最大值,则任务返回等待资源超时,整个流程执行结束。
针对资源等待举一例子,假设:任务调度中心计划分配以下任务到主机1进行执行:
任务(task)需要资源:独占互斥资源(表资源名1)1个。
1.执行器客户端程序调用接口,创建临时节点/写锁_0001,锁定资源。
2.临时节点创建失败,则表示资源申请失败,添加任务节点到/tasks/wait_res资源等待队列,并开始监听所添加节点,任务执行进入等待状态。
3.当任务调度中心监听到资源节点下有资源释放事件发生时,按任务权重、任务进入等待队列时间排序,遍历等待队列,给满足执行条件的任务打标。
4.任务执行器监听到打标事件,即可进行申请资源重新执行。
5.如果任务等待时间超过最大值,则任务返回等待资源超时,整个流程执行结束。
为了便于理解本发明如何实施,下面举个例子介绍资源申请与释放。
资源申请与释放:任务执行器在执行功能任务时,会主动根据任务的资源定义配置进行资源申请与释放。资源申请/释放是通过访问并维护对应的资源节点信息来完成的。当任务需要多种资源时,会保证资源申请/释放的原子性(如果把一个操作看作是一个程序,它要么完整的被执行,要么完全不执行,这种特性就叫原子性)。资源申请/释放操作在申请多个资源访问权限时,由于某一资源限制而无法成功完成,此时任务执行器将释放所有已经获取的资源访问权限,退出等待并进入等待队列以防止死锁。
一、首先介绍QR资源申请与释放。
QR资源为某一种***资源定义了并发访问限制。QR资源节点中,记录了该资源在***中的总数与已使用数。任务调度中心的资源配置管理模块会根据全局资源定义,对QR资源节点中的总数进行初始化,并且在动态调整了全局资源配置后进行及时更新。
当新的QR资源操作发起时,任务执行器会查找到对应的资源节点,并执行以下操作:
1.接收一个TimeOut参数,表示加锁阻塞等待与资源阻塞等待的最大容忍时间。
2.操作执行时,首先会先尝试LOCK所有操作资源的记录。
3.若LOCK失败,则阻塞等待直到达到TimeOut,将任务节点添加到资源等待队列,并开始监听所添加节点,任务执行进入等待状态。
4.若LOCK成功,则开始尝试申请/释放资源。
5.若资源不足以分配,则阻塞等待资源直到达到TimeOut,将任务节点添加到资源等待队列,并开始监听所添加节点,任务执行进入等待状态。
6.若资源足够分配(资源满足),则更新资源节点信息,获取/释放资源。
7.操作完成后,UNLOCK资源。
综上,QR资源申请与释放的具体例子:假设:任务调度中心计划分配以下任务到主机1(Host 1)进行执行:
任务task需要资源:数量资源(资源名2)1个。
资源申请的过程:
1.锁定资源/主机1/资源名2。
2.执行器客户端,更新/主机1/资源名2节点数据信息:判断资源是否满足分配(m>n),若满足,则将资源已用数量n加1。
3.执行任务。
资源释放的过程:
1.任务执行完成。
2.锁定资源/主机1/资源名2。
3.执行器客户端,更新/主机1/资源名2节点数据信息:将资源已用数量n减1。
二、接着,介绍CR资源申请/释放。
CR资源为某一种***资源定义了互斥共享访问限制。它是通过在对应资源节点中添加分布式锁来实现。分布式锁用于控制分布式***之间同步访问共享资源的一种方式,可以保证不同***访问一个或一组资源时的一致性,主要分为排它锁和共享锁。
CRE资源通过排它锁实现。排它锁又称为写锁或独占锁,若事务T1对数据对象O1加上了排它锁,那么在整个加锁期间,只允许事务T1对O1进行读取和更新操作,其他任何事务都不能再对这个数据对象进行任何类型的操作,直到T1释放了排它锁。
获取锁:在获取排它锁时,所有任务执行器通过调用接口,在资源节点下创建临时子节点。Zookeeper可以保证只有一个临时节点能够创建成功;没有申请成功的执行器会将任务节点添加到资源等待队列,并注册监听所添加节点,任务执行进入等待状态。
释放锁:当获取锁的任务执行器宕机或者正常完成业务逻辑时都会导致临时节点的删除,此时,对全局资源节点注册监听的任务调度中心会到通知,将重新唤醒资源等待队列中的任务。
CRS资源通过共享锁实现。共享锁又称为读锁,若事务T1对数据对象O1加上共享锁,那么当前事务只能对O1进行读取操作,其他事务也只能对这个数据对象加共享锁,直到该数据对象上的所有共享锁都被释放。
获取锁:在需要获取共享锁时,所有任务执行器都会到资源节点下面创建一个临时顺序节点,如果是读请求,那么就创建例如/shard1/TBPC1010/CR/aaa-READ-0001的节点,如果是写请求,那么就创建例如/shard1/TBPC1010/CR/bbb-WRIT-0002的节点。
判断读写顺序,不同事务可以同时对一个数据对象进行读写操作,而更新操作必须在当前没有任何事务进行读写情况下进行,通过Zookeeper来确定分布式读写顺序,大致分为四步。
1.创建完节点后,获取资源节点/shard1/TBPC1010/CR/下所有子节点,并对该节点变更注册监听。
2.确定自己的节点序号在所有子节点中的顺序。
3.对于读请求:若没有比自己序号小的子节点或所有比自己序号小的子节点都是读请求,那么表明自己已经成功获取到共享锁,同时开始执行读取逻辑,若有写请求,则需要等待。对于写请求:若自己不是序号最小的子节点,那么需要等待。
4.接收到Watcher通知后,重复步骤1。
释放锁:其释放锁的流程与独占锁一致。
对于读请求,只向比自己序号小的最后一个写请求节点注册Watcher监听;而对于写请求,只向比自己序号小的最后一个节点注册Watcher监听。这样每个锁竞争者,只需要关注资源节点下序号比自己小的那个节点是否存在即可,减小了不必要的***性能影响和网络开销。
综上,CR资源申请/释放的具体例子:假设:任务调度中心计划分配以下任务到主机1进行执行:
任务task需要资源:独占互斥资源(表资源名1)1个。
资源申请的过程:
1.执行器客户端程序调用接口,创建临时节点/写锁_0001,锁定资源。
2.若临时节点创建成功,则表示资源申请成功,任务继续执行。
3.若临时节点创建失败,则表示资源申请失败,任务进入资源等待队列,并注册监听所添加节点,等待资源。
资源释放的过程:
1.任务执行完成。
2.临时节点自动删除,完成资源释放。
3.其他等待任务监听到该资源变化,进行资源申请。
综上,本发明实施例对分布式调度任务所需资源类型进行定义了,设计了一套完整的资源申请与释放的方法,并引入了在资源不足的情况下的资源等待机制。本发明实施例提供的分布式批量任务调度的资源处理方法具有以下优势:
1.功能完整的分布式场景下的资源管理(控制、处理)。
2.高效的资源感知调度策略(例如根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量等)。
3.动态优先级调度策略(例如在监听到分布式资源等待队列中的资源节点下有资源释放事件发生时,按任务权重、任务进入等待队列时间排序,遍历等待队列,给满足执行条件的任务打标等)。
本发明实施例中还提供了一种分布式批量任务调度的资源处理装置,如下面的实施例所述。由于该装置解决问题的原理与分布式批量任务调度的资源处理方法相似,因此该装置的实施可以参见分布式批量任务调度的资源处理方法的实施,重复之处不再赘述。
图5为本发明实施例中分布式批量任务调度的资源处理装置的结构示意图,如图5所示,该装置包括:
类型确定单元01,用于在接收到当前任务时,确定当前任务类型;
资源需求确定单元02,根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量;
处理单元03,用于在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量。
本发明实施例中,分布式批量任务调度的资源处理装置,通过:在接收到当前任务时,确定当前任务类型;根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量;在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量,可以实现高效准确地进行分布式批量任务调度的资源处理。
在一个实施例中,所述处理单元还用于在根据执行当前类型任务所需申请每一类型有限资源需求量,以及所需申请每一类型有限资源的剩余量确定资源不满足时,释放所有已获取类型资源的访问权限。
在一个实施例中,上述分布式批量任务调度的资源处理装置还包括:加锁单元,用于对分配给当前任务的所需每一类型有限资源进行加锁处理。
在一个实施例中,上述分布式批量任务调度的资源处理装置还包括:动态处理单元,用于对资源已使用数量进行实时更新与动态优先调整。
在一个实施例中,所述处理单元具体用于:
在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,根据预先为当前类型任务设置的偏好信息,为当前类型任务分配所述所需每一类型资源及其需求量。
在一个实施例中,上述分布式批量任务调度的资源处理装置还包括:
打标单元,用于在监听到分布式资源等待队列中的资源节点下有资源释放事件发生时,按任务权重、任务进入等待队列时间排序,遍历等待队列,给满足执行条件的任务打标;
当前任务确定单元,用于在监听到任务打标事件发生时,将被打标任务作为所述当前任务。
本发明实施例还提供了一种计算机设备,如图6所示,包括存储器302、处理器304及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述分布式批量任务调度的资源处理方法。
具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的分布式批量任务调度的资源处理方法的计算机程序。
具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本发明实施例中,分布式批量任务调度的资源处理方案,通过:在接收到当前任务时,确定当前任务类型;根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量;在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量,可以实现高效准确地进行分布式批量任务调度的资源处理。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种分布式批量任务调度的资源处理方法,其特征在于,包括:
在接收到当前任务时,确定当前任务类型;
根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量;
在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量。
2.如权利要求1所述的分布式批量任务调度的资源处理方法,其特征在于,还包括:在根据执行当前类型任务所需申请每一类型有限资源需求量,以及所需申请每一类型有限资源的剩余量确定资源不满足时,释放所有已获取类型资源的访问权限。
3.如权利要求1所述的分布式批量任务调度的资源处理方法,其特征在于,还包括:对分配给当前任务的所需每一类型有限资源进行加锁处理。
4.如权利要求1所述的分布式批量任务调度的资源处理方法,其特征在于,还包括:对资源已使用数量进行实时更新与动态优先调整。
5.如权利要求1所述的分布式批量任务调度的资源处理方法,其特征在于,资源类型包括:有限数量资源、互斥资源和任务可运行的处理器范围资源。
6.如权利要求1所述的分布式批量任务调度的资源处理方法,其特征在于,在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量,包括:
在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,根据预先为当前类型任务设置的偏好信息,为当前类型任务分配所述所需每一类型资源及其需求量。
7.如权利要求1所述的分布式批量任务调度的资源处理方法,其特征在于,任务类型包括:文件处理任务、数据库卸数任务、数据库更新任务和常驻服务任务。
8.如权利要求1所述的分布式批量任务调度的资源处理方法,其特征在于,还包括:
在监听到分布式资源等待队列中的资源节点下有资源释放事件发生时,按任务权重、任务进入等待队列时间排序,遍历等待队列,给满足执行条件的任务打标;
在监听到任务打标事件发生时,将被打标任务作为所述当前任务。
9.一种分布式批量任务调度的资源处理装置,其特征在于,包括:
类型确定单元,用于在接收到当前任务时,确定当前任务类型;
资源需求确定单元,根据当前任务类型,以及预先配置的任务类型与所需每一类型资源及其需求量的关系,确定执行当前类型任务所需每一类型资源及其需求量;
处理单元,用于在根据执行当前类型任务所需每一类型资源及其需求量,以及所需每一类型资源及其剩余量确定资源满足时,为当前类型任务分配所述所需每一类型资源及其需求量。
10.如权利要求9所述的分布式批量任务调度的资源处理装置,其特征在于,还包括:加锁单元,用于对分配给当前任务的所需每一类型有限资源进行加锁处理。
11.如权利要求9所述的分布式批量任务调度的资源处理装置,其特征在于,还包括:动态处理单元,用于对资源已使用数量进行实时更新与动态优先调整。
12.如权利要求9所述的分布式批量任务调度的资源处理装置,其特征在于,还包括:
打标单元,用于在监听到分布式资源等待队列中的资源节点下有资源释放事件发生时,按任务权重、任务进入等待队列时间排序,遍历等待队列,给满足执行条件的任务打标;
当前任务确定单元,用于在监听到任务打标事件发生时,将被打标任务作为所述当前任务。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一所述方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至8任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110862667.2A CN113590320A (zh) | 2021-07-29 | 2021-07-29 | 分布式批量任务调度的资源处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110862667.2A CN113590320A (zh) | 2021-07-29 | 2021-07-29 | 分布式批量任务调度的资源处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113590320A true CN113590320A (zh) | 2021-11-02 |
Family
ID=78251723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110862667.2A Pending CN113590320A (zh) | 2021-07-29 | 2021-07-29 | 分布式批量任务调度的资源处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590320A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661438A (zh) * | 2022-03-23 | 2022-06-24 | 杭州杰竞科技有限公司 | 基于事件驱动的分布式工作流调度***及方法 |
CN115801584A (zh) * | 2022-11-17 | 2023-03-14 | 烽火通信科技股份有限公司 | 一种基于分布式事务的Qos带宽分配的方法和装置 |
CN116521363A (zh) * | 2023-04-06 | 2023-08-01 | 中保车服科技服务股份有限公司 | 一种代码打包方法、计算机设备及存储介质 |
-
2021
- 2021-07-29 CN CN202110862667.2A patent/CN113590320A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114661438A (zh) * | 2022-03-23 | 2022-06-24 | 杭州杰竞科技有限公司 | 基于事件驱动的分布式工作流调度***及方法 |
CN115801584A (zh) * | 2022-11-17 | 2023-03-14 | 烽火通信科技股份有限公司 | 一种基于分布式事务的Qos带宽分配的方法和装置 |
CN116521363A (zh) * | 2023-04-06 | 2023-08-01 | 中保车服科技服务股份有限公司 | 一种代码打包方法、计算机设备及存储介质 |
CN116521363B (zh) * | 2023-04-06 | 2024-01-30 | 中保车服科技服务股份有限公司 | 一种代码打包方法、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113590320A (zh) | 分布式批量任务调度的资源处理方法、装置、设备及介质 | |
CA3000422C (en) | Workflow service using state transfer | |
US20200007456A1 (en) | Computerized methods and systems for managing cloud computer services | |
US11941434B2 (en) | Task processing method, processing apparatus, and computer system | |
US10503671B2 (en) | Controlling access to a shared resource | |
WO2017170470A1 (ja) | ネットワーク機能仮想化管理オーケストレーション装置と方法とプログラム | |
US8868604B2 (en) | Methods and apparatus for implementing Semi-distributed Lock Management | |
CN109726008B (zh) | 资源分配方法及设备 | |
CN112052068A (zh) | 一种Kubernetes容器平台CPU绑核的方法与装置 | |
CN111709723B (zh) | Rpa业务流程智能处理方法、装置、计算机设备和存储介质 | |
US8127295B1 (en) | Scalable resource allocation | |
US7574439B2 (en) | Managing a nested request | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN113360893B (zh) | 基于容器的智能合约执行方法、装置及存储介质 | |
US20180365080A1 (en) | Architecture and services supporting reconfigurable synchronization in a multiprocessing system | |
US7657590B2 (en) | Load balancing system and method | |
US9274819B2 (en) | Performing garbage collection using a virtual thread in operating system without kernel thread support | |
CN113360251B (zh) | 智能合约执行与跨合约调用方法、装置及存储介质 | |
JP4571090B2 (ja) | スケジューラプログラム、サーバシステム、スケジューラ装置 | |
CN111813564B (zh) | 集群资源管理方法、装置及容器集群管理*** | |
CN114462388A (zh) | 句柄管理或通信方法、电子设备、存储介质及程序产品 | |
CN112328408A (zh) | 数据处理方法、装置、***、设备及存储介质 | |
CN113760524A (zh) | 任务执行方法和装置 | |
CN114647663A (zh) | 一种资源处理方法、装置、***、电子设备及存储介质 | |
CN117742979B (zh) | 一种面向时空数据处理的分布式锁方法及电子设备 |
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 |