CN110609735B - 任务管理方法、设备和计算机程序产品 - Google Patents
任务管理方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN110609735B CN110609735B CN201810623341.2A CN201810623341A CN110609735B CN 110609735 B CN110609735 B CN 110609735B CN 201810623341 A CN201810623341 A CN 201810623341A CN 110609735 B CN110609735 B CN 110609735B
- Authority
- CN
- China
- Prior art keywords
- sub
- tasks
- progress
- schedules
- subtasks
- 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
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开的实施例涉及一种尤其适于在当前存储系统中使用的任务管理方法、设备和计算机程序产品。该方法包括:将待处理的任务划分为第一数目的多个子任务,使得多个子任务所需的处理时间相同;将待报告的、与任务的处理相关联的进度划分为第二数目的多个子进度,其中第二数目小于第一数目,并且多个子进度中的每个子进度具有相同的数值;以及基于第一数目和第二数目、并且根据子进度与子任务之间的预定义的映射关系,将多个子进度中的每个子进度与多个子任务中的相应的一个子任务相关联。通过这种子进度与子任务的映射关系,可以提供一种与以浮点型显示非常接近但仍基于整数型显示的工作进度。这在不改变现有存储系统精度显示的同时,确保了良好的用户体验。
Description
技术领域
本公开的实施例总体上涉及存储系统,并且更具体地涉及在存储系统中使用的任务管理方法、设备和计算机程序产品。
背景技术
“作业”是一种工作线程,其中用于执行工作内容并在工作内容被处理的同时报告其进度百分比,以便用户对作业的进展情况有一些基本了解。某些存储产品从问世的第一天起,其作业进度百分比就被设定在整数精度等级。
在被打包在一个作业中执行的一个组操作中,可能包含有许多子任务,这些子任务被安排在独立的多个线程中执行并由线程池提供服务。注意到,每个子任务的权重(即,所花费的时间)可以假定为相等,并且总的工作进度可以是一个近似值。它旨在随着每个子任务完成而增加组操作的工作进度。在调度线程执行这些子任务之前,总的可用的工作进度百分比(通常为100%)被均匀分配给所有子任务,方法是用100除以任务编号,这样,每个子任务就可以提前知道在其完成时需要增加多少个百分比。
发明内容
本公开的各种实施例提供了一种任务管理方法、设备和计算机程序产品。
本公开的第一方面提供了一种任务管理方法。该方法包括:将待处理的任务划分为第一数目的多个子任务,使得多个子任务所需的处理时间相同;将待报告的、与任务的处理相关联的进度划分为第二数目的多个子进度,其中第二数目小于第一数目,并且多个子进度中的每个子进度具有相同的数值;以及基于第一数目和第二数目、并且根据子进度与子任务之间的预定义的映射关系,将多个子进度中的每个子进度与多个子任务中的相应的一个子任务相关联。
本公开的第二方面提供了一种任务管理设备。该设备包括:处理单元;以及存储器,耦合至处理单元并且存储有指令,指令在由处理单元执行时执行以下动作:将待处理的任务划分为第一数目的多个子任务,使得多个子任务所需的处理时间相同;将待报告的、与任务的处理相关联的进度划分为第二数目的多个子进度,其中第二数目小于第一数目,并且多个子进度中的每个子进度具有相同的数值;以及基于第一数目和第二数目、并且根据子进度与子任务之间的预定义的映射关系,将多个子进度中的每个子进度与多个子任务中的相应的一个子任务相关联。
本公开的第三方面提供了一种用于任务管理的计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据本公开第一方面所述方法的步骤。
附图说明
在此提供本文所描述的附图,用以进一步解释本公开,并构成本公开的一部分。本公开的示例性实施例及其描述用于解释本公开,而并非不恰当地限制本公开。
图1示意性地示出了一种任务管理系统;
图2示出了根据本公开实施例的任务管理方法的流程图;
图3示意性地示出了根据本公开实施例的在子任务数目大于总进度数的情况下进度报告的示意图;以及
图4示出了用来实施本公开的实施例的设备的示意性框图。
在附图中,相同或相似的附图标记用于表示相同或相似的元件。
具体实施方式
现在将参照附图中示出的若干示例实施例来描述本公开的原理。尽管本公开的示例实施例在附图中示出,但是应当理解,实施例的描述仅仅是为了便于本领域技术人员更好地理解并由此实现本公开,而不以任何方式限制本公开的范围。
如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实施例”和“一种实施例”要被解读为“至少一个实施例”。术语“另一个实施例”要被解读为“至少一个其他实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
在当前的一些存储系统中,作业进度百分比被设定在整数精度级。通常,当子任务的数目小于总进度(通常为100)时,可以通过用100除以子任务的数目,来将可用的工作进度百分比均匀分配给所有子任务。这样,每个子任务就可以提前知道在其完成时需要增加多少个百分比
然而,当子任务数量超过总进度(例如,100)时,每个子任务将被分配给0进度百分比(作为整数型值除法的结果),这会导致每个子任务完成后总进度不会增加,由此使得用户无法知晓子任务的完成进度,这将导致用户体验变差。
一种可能改进的方案是将现有的工作进度百分比的精度级别从整数型改为浮点型以显示准确的进度。但是,某些存储系统中,从第一天起就已经设计和实施了工作进度百分比模型,并且已经广泛用于所有功能区、技术栈和发布的产品。因此,如果将现有的工作进度百分比的精度等级从整数型改变为浮点型,将会导致已有系统的显著变化。另外,浮点型也有其自身的缺点,诸如性能下降、潜在的平台支持不足、额外的显示格式等。
图1示意性地示出了根据本公开实施例的任务管理系统。如图1所示,该系统包括一个包含有多个线程101-1、101-2、101-3、101-4、101-5、…、101-N的线程池110,其中每个线程用于处理一个特定的子任务102-1、102-2、102-3、102-4、102-5、…、102-N。
如图1进一步所示,系统还包括一个进度条120,其用于在上述多个子任务被处理的同时报告其进度百分比,以便用户对作业的进展情况有一些基本了解。在本文中,上述每个子任务的权重(也既,处理所需时间)可以被假定为相等。总的工作进度可以是一个近似值,它旨在随着每个子任务完成而增加组操作的工作进度。通常情况下,总的工作进度的百分比被设置为100%。此外,图1还示出了映射表130,其可以预先确定出在每个子任务完成之后,进度条120将要增加的百分比。
传统上,如图1所示,当子任务的数量小于总进度(例如,100%)的百分比时,每个子任务完成之后,整个作业的进度的百分比增加P%,其中P的值等于100除以子任务的数量。例如,当子任务的数量为20时,每个子任务完成之后,整个作业的进度百分比都将增加5%。
然而,如上所述,当子任务数量超过100时,由于整数型除法,使得每个子任务将被分配给0进度百分比。这会导致在每个子任务完成后总进度不会增加,或一直显示为增加0%。这就意味着用户无法知道子任务的处理进程,这将导致用户体验变差。
为此,本公开的实施例提出了一种用于任务管理的新方案。根据本公开的各个实施例中所描述的解决方案,无需将现有的工作进度百分比的精度等级从整数型改变为浮点型,与此同时,还能够提供给用户一种与以浮点型显示非常接近的、但仍基于整数型的工作进度显示。这确保了良好的用户体验。
以下参考图2至图4来说明本公开的基本原理和若干示例实现方式。应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制本公开的范围。
图2示出了根据本公开实施例的任务管理方法200的流程图。下文的描述将首先参考图1所示的任务管理系统进行。
在210处,待处理的任务划被分为第一数目的多个子任务102-1、102-2、…、102-N,使得多个子任务所需的处理时间相同。例如,这样的多个子任务可以是对多个文件系统创建数据副本。在本文中,为了方便讨论,将第一数目用N表示。
在220处,将待报告的、与任务的处理相关联的进度划分为第二数目的多个子进度,其中第二数目小于第一数目,并且多个子进度中的每个子进度具有相同的数值。在本文中,同样为了方便讨论,将第二数目用M表示。
为了解决尤其由于第二数目小于第一数目(也即,M<N)所导致的每个子任务完成后基于整数型的总进度百分比不会增加这一问题,在230处,基于子任务的第一数目和子进度的第二数目、并且根据子进度与子任务之间的预定义的映射关系,多个子进度(M个子进度)中的每个子进度被与多个子任务(N个子任务)中的相应的一个子任务进行关联。需要指出,由于M<N,并不是每个子任务都会被分配给一个子进度。也就是说,并非每个子任务的完成都会导致总进程百分比增加一个子进度。
在某些实施例中,方法200还可以进一步包括将进度与任务的处理相关联地进行报告。在某些实施例中,在报告进度的过程中,当与每个子进度相关联的相应的一个子任务的处理完成时,被报告的进度将被增加一个子进度,并且当未与任何一个子进度相关联的子任务的处理完成时,被报告的进度将被保持不变。
也就是说,对于分配了一个进度百分比的子任务,只要它们完成,总工作进度百分比就会增加一个进度百分比,而对于未分配给子进度的子任务,它们完成之后,总的工作进度百分不会增加。
图3示意性地示出了根据本公开实施例的进度报告的示意图。如图3所示(与图1的不同之处在于),在子任务数目大于总进度数的情况下,仅有一部分子任务能够被分配到子进度(例如,子任务102-1、102-3、102-5等),而子任务102-2、102-4等没有被分配子进度,或只分配了0%子进度。这样,只有被分配有子进度的那些子任务在完成之后,总进度才会相应地增加一个子进度百分比。
可见,本公开所提供的解决方案是一种基于整数型进度百分比(而非基于浮点型进度百分比)的解决方案。这样,不但无需显著改变现有存储系统中广泛使用的整数型显示精度,而且这种基于整数型进度百分比的方案仍然能够使用户体验到作业在随着子任务的完成而正常进行。换言之,从用户体验的角度上来讲,本公开所描述的解决方案能够通过子进度与子任务的映射关系的适当设计,来提供给用户一种与以浮点型显示的工作进度非常相似的、但是仍以整数型显示的工作进度。
在某些实施例中,多个子进度可以包括第一组子进度和第二组子进度,并且多个子任务可以包括第一组子任务和第二组子任务。这样,相应地,在230处,可以将第一组子进度中的每个子进度与第一组子任务中、其标识以第一数值递增的多个子任务中的相应的一个子任务相关联,并且可以将第二组子进度中的每个子进度与第二组子任务中、其标识以第二数值递增的多个子任务中的相应的一个子任务相关联,其中第二数值不同于第一数值。
在某些实施例中,上述第一数值可以被设置为一。也就是说,可以将第一组子进度中的每个子进度与第一组子任务中、其标识以1连续递增(即,不间断的)多个子任务中的相应的一个子任务相关联。在某些实施例中,上述第二数值可以被设置为比上述第一数值大一。
在一个具体示例(后面也称为示例I)中,假设有147个子任务(即,N=147)需要处理,而可用的子进度只有100(即,M=100)。这时,可以将147个子任务划分为第一组子进度{0,1,2,...,50,51}和第二组子进度{53,55,57,...,143,145}。在第一组子任务中,每个子任务(也即,第一数值为1)将被分配一个进度百分比,而在第二组子任务中,每两个子任务(也即,第二数值为2)中的一个将被分配一个百分比。这就使得在第一组子任务中的每个子任务完成之后,总进度会增加1%,而在第二组子任务中的每两个子任务完成之后,总进度才会增加1%。以此方式,确保了全部子进度能够尽可能“均匀”地分配到所选择的子任务上,从而尽量将用户体验的劣化程度最小化。
类似地,在另一个具体示例(后面也称为示例II)中,假设有247个子任务(即,N=247)需要处理,而可用的子进度同样只有100(即,M=100)。这时,可以将247个子任务划分为第一组子任务{0,2,4,...,98,100}和第二组子任务{103,106,109,...,241,244}。在第一组子任务中,每两个子任务(也即,第一数值为2)将被分配一个百分比。在第二组子任务中,每三个子任务(也即,第二数值为3)将被分配一个百分比。
这就使得在第一组子任务中的每两个子任务完成之后,总进度会增加1%,而在第二组子任务中的每三个子任务完成之后,总进度会增加1%。以此方式,确保了全部子进度能够尽可能地均匀分配到所选择的子任务上,从而尽量将用户体验的劣化最小化。
需要指出,类似于上述子进度到子任务的所谓的“均匀”分布还可以以多种其他方式实现。此外,还可以根据用户体验的需要来设置子进度到子任务的其他映射关系。
例如,在一些实施例中,每个子进度与相应的一个子任务的关联可以基于第一数目与第二数目的整数商和余数来被设定,也即,基于N/M和N%M的值来设定,其中,运算符“/”表示整数除法运算,运算符“%”表示余数运算(或模运算)。
这提供了一种“解析”的方法来实现子进度到子任务的分配,这种“解析”的方法与“数值”方法相比,提高了运算效率。此外,通过这种“解析”的方法,可以直接观察到对这种子进度到子任务的分配起到决定性作用的因素。
在另外一些实施例中,可以首先利用预定的第一偏移量来调整第二数目,随后,每个子进度与相应的一个子任务相关联可以基于第一数目与经调整的第二数目的整数商和余数来设定。例如,可以基于N/(M-1)和N%(M-1)来设定上述关联。通过这种保留一个百分比的方式,可以进一步避免当仍有子任务在执行而总的进度百分比已经达到100%的情况发生。
在另外一些实施例中,每个子进度具有子进度标识,并且每个子任务具有子任务标识。这时,可以通过如下方法将每个子进度与相应的一个子任务相关联:
(1)确定第一数目与经调整的第二数目的整数商;
(2)确定第一数目与经调整的第二数目的余数;
(3)针对每个子进度,利用第二偏移量来更新余数,例如,;以及
(4)利用子进度标识与整数商的乘积与经更新的余数之和,来确定相应的一个子任务的任务标识。
上述方法步骤(1)-(5)可以通过如下伪代码来实现:
其中,“int”表示整数;“i”表示第i个子进度;“quotient”表示第一数目与经调整的第二数目的整数商;“remainder”表示第一数目与经调整的第二数目的余数;以及“indexToAllocatePercentage”表示将被分配有子进度的相应的子任务的任务标识,其可进一步通过如下等式来计算得到:
indexToAllocatePercentage
=i*quotient+(--remainder>0?remainder:0)
上述等式中的项“(--remainder>0?remainder:0)”表示:针对每个子进度,首先用第二偏移量来更新第一数目与经调整的第二数目的余数,在该算式中,第二偏移量被设定为“-1”,也即,将第一数目与经调整的第二数目的余数在每次循环中首先被减小1。随后,判断经更新的余数(在本示例中为自减1之后的余数)是否大于0,如果判断出该经更新的余数的数值大于0,则将使用该更新后的余数的数值作为“(--remainder>0?remainder:0)”这一项的结果,否则,使用0作为该项的结果。随后,利用子进度标识与上述整数商的乘积再加上经更新的余数,来最终确定相应的一个子任务的任务标识。最后,利用函数
“taskIndexWithPercentageAllocated.push_back(indexToAllocatePercentage)”将被分配给子进度的相应的子任务的任务标识记录下来。
现在,再次参考上面所描述的示例I,假设有147个子任务需要处理,在保留一个进度百分比后,总共99个进度百分比将被分配给147个子任务。
通过上述方式,同样可以得出如下子进度到子任务的映射。也就是说,具有子任务标识0到51的连续多个子任务{0,1,2,...,50,51}中的每个将被分配一个百分比,而在具有子任务标识53到145的子任务{53,55,57,...,143,145}中,每两个子任务中的一个将被分配一个百分比。
同样,再次参考上述具体示例II,假设有247个子任务需要处理,在保留一个进度百分比后,总共99个进度百分比将被分配给247个子任务。
通过上述方式,同样可以得出如下子进度到子任务的映射。也就是说,在具有子任务标识子0到100的子任务{0,2,4,...,98,100}中,每两个子任务中的一个将被分配一个百分比,而在具有子任务标识103到244的子任务{103,106,109,...,241,244}中,每三个子任务中的一个将被分配一个百分比。
可以发现,针对上面描述的两个示例I和II,通过上述算法可以实现相同的子进度到子任务的“均匀”分配。然而,不同之处在于,上述算法提供了一种“解析”的方法来实现了上述“均匀”分配。这样,不仅可以直接观察到对这种子进度到子任务的分配起到决定性作用的因素,而且用户可以通过调节算法中每一项的权重来适应性地调整这种“均匀”分配。
图4示出了一个可以用来实施本公开的实施例的设备400的示意性框图。如图所示,设备400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的计算机程序指令或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序指令,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200,可由处理单元401执行。例如,在一些实施例中,方法200可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序被加载到RAM 403并由CPU 401执行时,可以执行上文描述的方法200的一个或多个步骤。备选地,在其他实施例中,CPU 401也可以以其他任何适当的方式被配置以实现上述过程/方法。
应当理解,本公开的上述详细实施例仅仅是为了举例说明或解释本公开的原理,而不是限制本公开。因此,不脱离本发明的精神和范围的任何修改、等同替换和改进等均应被包括在本发明的保护范围之内。同时,本公开的所附权利要求旨在覆盖落入权利要求的范围和界限内或范围和界限的等同物内的所有变化和修改。
Claims (22)
1.一种任务管理方法,所述方法包括:
将在存储系统上运行的工作线程集内的待处理的任务划分为第一数目的多个子任务,使得所述多个子任务所需的处理时间相同,所述多个子任务的数目是第一数目;
将待报告的、与所述任务的处理相关联的进度划分为第二数目的多个子进度,其中所述第二数目小于所述第一数目,并且所述多个子进度中的每个子进度具有相同的数值;以及
基于使用作为整数的所述第一数目和所述第二数目来标识、并且根据子进度与子任务之间的预定义的映射关系,将所述多个子进度中的每个子进度与所述多个子任务中的相应的一个子任务相关联,使得当所述子任务在所述存储系统中完成时,针对所述任务的可显示进度被提供;
其中将所述每个子进度与所述相应的一个子任务相关联包括:
基于所述第一数目与所述第二数目的整数商和余数,将所述每个子进度与所述相应的一个子任务相关联。
2.根据权利要求1所述的方法,其中所述多个子进度包括第一组子进度和第二组子进度,并且所述多个子任务包括第一组子任务和第二组子任务。
3.根据权利要求1所述的方法,还包括:
与所述任务的处理相关联地报告所述进度。
4.根据权利要求3所述的方法,其中报告所述进度包括:
响应于与所述每个子进度相关联的所述相应的一个子任务的处理完成,将被报告的所述进度增加一个所述子进度。
5.根据权利要求4所述的方法,其中报告所述进度还包括:
响应于未与任何一个子进度相关联的子任务的处理完成,将被报告的所述进度保持不变。
6.一种任务管理方法,所述方法包括:
将在存储系统上运行的工作线程集内的待处理的任务划分为第一数目的多个子任务,使得所述多个子任务所需的处理时间相同,所述多个子任务的数目是第一数目;
将待报告的、与所述任务的处理相关联的进度划分为第二数目的多个子进度,其中所述第二数目小于所述第一数目,并且所述多个子进度中的每个子进度具有相同的数值;以及
基于使用作为整数的所述第一数目和所述第二数目来标识、并且根据子进度与子任务之间的预定义的映射关系,将所述多个子进度中的每个子进度与所述多个子任务中的相应的一个子任务相关联使得当所述子任务在所述存储系统中完成时,针对所述任务的可显示进度被提供;
其中所述多个子进度包括第一组子进度和第二组子进度,并且所述多个子任务包括第一组子任务和第二组子任务;以及
其中将所述多个子进度中的每个子进度与所述相应的一个子任务相关联包括:
将所述第一组子任务和所述第二组子任务标识为顺序;
根据所述顺序,将所述第一组子进度中的每个子进度与所述多个子任务中的相应的第X个子任务相关联,其中X是第一数值;以及
根据所述顺序,将所述第二组子进度中的每个子进度与所述多个子任务中的相应第Y个子任务相关联,其中Y是第二数值,并且其中所述第二数值不同于所述第一数值。
7.根据权利要求6所述的方法,其中所述第一数值为一。
8.根据权利要求6所述的方法,其中所述第二数值比第一数值大一。
9.一种任务管理方法,所述方法包括:
将在存储系统上运行的工作线程集内的待处理的任务划分为第一数目的多个子任务,使得所述多个子任务所需的处理时间相同,所述多个子任务的数目是第一数目;
将待报告的、与所述任务的处理相关联的进度划分为第二数目的多个子进度,其中所述第二数目小于所述第一数目,并且所述多个子进度中的每个子进度具有相同的数值;以及
基于使用作为整数的所述第一数目和所述第二数目来标识、并且根据子进度与子任务之间的预定义的映射关系,将所述多个子进度中的每个子进度与所述多个子任务中的相应的一个子任务相关联,使得当所述子任务在所述存储系统中完成时,针对所述任务的可显示进度被提供;
其中所述多个子进度包括第一组子进度和第二组子进度,并且所述多个子任务包括第一组子任务和第二组子任务;
其中将所述每个子进度与所述相应的一个子任务相关联包括:
基于所述第一数目与所述第二数目的整数商和余数,将所述每个子进度与所述相应的一个子任务相关联;
其中将所述每个子进度与所述相应的一个子任务相关联包括:
利用预定的第一偏移量来调整所述第二数目;以及
基于所述第一数目与经调整的第二数目的整数商和余数,将所述每个子进度与所述相应的一个子任务相关联。
10.根据权利要求9所述的方法,其中每个子进度具有子进度标识,并且每个子任务具有子任务标识,并且
其中将所述每个子进度与所述相应的一个子任务相关联包括:
确定所述第一数目与经调整的第二数目的整数商;
确定所述第一数目与所述经调整的第二数目的余数;
针对每个子进度,利用第二偏移量来更新所述余数;以及
利用所述子进度标识与所述整数商的乘积与经更新的所述余数之和,来确定所述相应的一个子任务的任务标识。
11.一种任务管理设备,包括:
处理单元;以及
存储器,耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行以下动作:
将在存储系统上运行的工作线程集内的待处理的任务划分为第一数目的多个子任务,使得所述多个子任务所需的处理时间相同,所述多个子任务的数目是第一数目;
将待报告的、与所述任务的处理相关联的进度划分为第二数目的多个子进度,其中所述第二数目小于所述第一数目,并且所述多个子进度中的每个子进度具有相同的数值;以及
基于使用作为整数的所述第一数目和所述第二数目来标识、并且根据子进度与子任务之间的预定义的映射关系,将所述多个子进度中的每个子进度与所述多个子任务中的相应的一个子任务相关联,使得当所述子任务在所述存储系统中完成时,针对所述任务的可显示进度被提供;
其中所述多个子进度包括第一组子进度和第二组子进度,并且所述多个子任务包括第一组子任务和第二组子任务;以及
其中将所述每个子进度与所述相应的一个子任务相关联包括:
将所述第一组子任务和所述第二组子任务标识为顺序;
根据所述顺序,将所述第一组子进度中的每个子进度与所述多个子任务中的相应的第X个子任务相关联,其中X是第一数值;以及
根据所述顺序,将所述第二组子进度中的每个子进度与所述多个子任务中的相应第Y个子任务相关联,其中Y是第二数值,并且其中所述第二数值不同于所述第一数值。
12.根据权利要求11所述的设备,其中所述第一数值为一。
13.根据权利要求11所述的设备,其中所述第二数值比第一数值大一。
14.根据权利要求11所述的设备,其中所述动作还包括:
与所述任务的处理相关联地报告所述进度。
15.根据权利要求14所述的设备,其中报告所述进度包括:
响应于与所述每个子进度相关联的所述相应的一个子任务的处理完成,将被报告的所述进度增加一个所述子进度。
16.根据权利要求15所述的设备,其中报告所述进度还包括:
响应于未与任何一个子进度相关联的子任务的处理完成,将被报告的所述进度保持不变。
17.一种非瞬态计算机可读介质,其上存储指令集以执行任务管理,在由计算机化的电路系统执行时,使所述计算机化的电路系统执行以下方法:
将在存储系统上运行的工作线程集内的待处理的任务划分为第一数目的多个子任务,使得所述多个子任务所需的处理时间相同,所述多个子任务的数目是第一数目;
将待报告的、与所述任务的处理相关联的进度划分为第二数目的多个子进度,其中所述第二数目小于所述第一数目,并且所述多个子进度中的每个子进度具有相同的数值;以及
基于使用作为整数的所述第一数目和所述第二数目来标识、并且根据子进度与子任务之间的预定义的映射关系,将所述多个子进度中的每个子进度与所述多个子任务中的相应的一个子任务相关联,使得当所述子任务在所述存储系统中完成时,针对所述任务的可显示进度被提供;
其中所述多个子进度包括第一组子进度和第二组子进度,并且所述多个子任务包括第一组子任务和第二组子任务;以及
其中将所述多个子进度中的每个子进度与所述相应的一个子任务相关联包括:
将所述第一组子任务和所述第二组子任务标识为顺序;
根据所述顺序,将所述第一组子进度中的每个子进度与所述多个子任务中的相应的第X个子任务相关联,其中X是第一数值;以及
根据所述顺序,将所述第二组子进度中的每个子进度与所述多个子任务中的相应第Y个子任务相关联,其中Y是第二数值,并且其中所述第二数值不同于所述第一数值。
18.根据权利要求17所述的非瞬态计算机可读介质,其中所述第一数值为一。
19.根据权利要求17所述的非瞬态计算机可读介质,其中所述第二数值比第一数值大一。
20.根据权利要求17所述的非瞬态计算机可读介质,还包括:
与所述任务的处理相关联地报告所述进度。
21.根据权利要求20所述的非瞬态计算机可读介质,其中报告所述进度包括:
响应于与所述每个子进度相关联的所述相应的一个子任务的处理完成,将被报告的所述进度增加一个所述子进度。
22.根据权利要求21所述的非瞬态计算机可读介质,其中报告所述进度还包括:
响应于未与任何一个子进度相关联的子任务的处理完成,将被报告的所述进度保持不变。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810623341.2A CN110609735B (zh) | 2018-06-15 | 2018-06-15 | 任务管理方法、设备和计算机程序产品 |
US16/381,149 US11294712B2 (en) | 2018-06-15 | 2019-04-11 | Method, device and computer program product for task management |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810623341.2A CN110609735B (zh) | 2018-06-15 | 2018-06-15 | 任务管理方法、设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110609735A CN110609735A (zh) | 2019-12-24 |
CN110609735B true CN110609735B (zh) | 2023-07-18 |
Family
ID=68839877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810623341.2A Active CN110609735B (zh) | 2018-06-15 | 2018-06-15 | 任务管理方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11294712B2 (zh) |
CN (1) | CN110609735B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312156A (zh) * | 2020-02-26 | 2021-08-27 | 伊姆西Ip控股有限责任公司 | 用于确定任务的执行进度的方法、设备和计算机程序产品 |
CN113391918A (zh) * | 2020-03-13 | 2021-09-14 | 伊姆西Ip控股有限责任公司 | 用于处理计算作业的方法、设备和计算机程序产品 |
CN112181795A (zh) * | 2020-10-15 | 2021-01-05 | 上海英方软件股份有限公司 | 一种计算任务整体进度的方法及装置 |
CN112463314A (zh) * | 2020-11-06 | 2021-03-09 | 贝壳技术有限公司 | 异步队列的处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451445B1 (en) * | 2004-03-29 | 2008-11-11 | Sun Microsystems, Inc. | Mechanism for tracking the execution progress of a parent task which spawns one or more concurrently executing child tasks |
JP2010113396A (ja) * | 2008-11-04 | 2010-05-20 | Fujitsu Ltd | 進捗管理プログラム、進捗管理装置、および進捗管理方法 |
CN105183322A (zh) * | 2015-09-18 | 2015-12-23 | 百度在线网络技术(北京)有限公司 | 进度条显示方法和装置 |
CN107943674A (zh) * | 2017-11-29 | 2018-04-20 | 广州酷狗计算机科技有限公司 | 任务进度确定方法及装置、计算机设备及存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7146387B1 (en) | 2001-12-19 | 2006-12-05 | Emc Corporation | System and method for configuring and performing application backups and restores in diverse environments |
JP2007094467A (ja) * | 2005-09-27 | 2007-04-12 | Hitachi Software Eng Co Ltd | 進捗管理システム |
JP2007264794A (ja) * | 2006-03-27 | 2007-10-11 | Fujitsu Ltd | 並列分散処理プログラム及び並列分散処理システム |
US10417027B1 (en) | 2012-03-30 | 2019-09-17 | EMC IP Holding Company LLC | Virtual machine proxy server for hyper-V image backup and recovery |
WO2015179522A1 (en) * | 2014-05-21 | 2015-11-26 | Akili Interactive Labs, Inc. | Processor-implemented systems and methods for enhancing cognitive abilities by personalizing cognitive training regimens |
US10812341B1 (en) | 2015-04-06 | 2020-10-20 | EMC IP Holding Company LLC | Scalable recursive computation across distributed data processing nodes |
US10860622B1 (en) | 2015-04-06 | 2020-12-08 | EMC IP Holding Company LLC | Scalable recursive computation for pattern identification across distributed data processing nodes |
US10733165B1 (en) * | 2015-07-06 | 2020-08-04 | Workiva Inc. | Distributed processing using a node hierarchy |
CN105260287A (zh) * | 2015-09-16 | 2016-01-20 | 北京奇虎科技有限公司 | 父任务进度更新方法及装置 |
CN105824639B (zh) * | 2016-03-17 | 2019-05-10 | 百度在线网络技术(北京)有限公司 | 进度估算方法及装置 |
CN106250233B (zh) * | 2016-07-21 | 2020-03-27 | 浙江清华长三角研究院 | MapReduce性能优化系统及优化方法 |
CN107239386B (zh) * | 2017-06-06 | 2022-03-29 | 网易(杭州)网络有限公司 | 一种进度显示方法及装置 |
US10983953B2 (en) | 2019-02-01 | 2021-04-20 | EMC IP Holding Company LLC | Partitioning a distributed filesystem namespace |
US10942820B2 (en) | 2019-06-27 | 2021-03-09 | EMC IP Holding Company LLC | Stream level uninterrupted restore operation using an interrupt service routine approach |
US10860438B1 (en) | 2019-06-27 | 2020-12-08 | EMC IP Holding Company LLC | Stream level uninterrupted backup operation using an interrupt service routine approach |
-
2018
- 2018-06-15 CN CN201810623341.2A patent/CN110609735B/zh active Active
-
2019
- 2019-04-11 US US16/381,149 patent/US11294712B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7451445B1 (en) * | 2004-03-29 | 2008-11-11 | Sun Microsystems, Inc. | Mechanism for tracking the execution progress of a parent task which spawns one or more concurrently executing child tasks |
JP2010113396A (ja) * | 2008-11-04 | 2010-05-20 | Fujitsu Ltd | 進捗管理プログラム、進捗管理装置、および進捗管理方法 |
CN105183322A (zh) * | 2015-09-18 | 2015-12-23 | 百度在线网络技术(北京)有限公司 | 进度条显示方法和装置 |
CN107943674A (zh) * | 2017-11-29 | 2018-04-20 | 广州酷狗计算机科技有限公司 | 任务进度确定方法及装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
ParaTimer: a progress indicator for MapReduce DAGs;Kristi Morton等;《Proceedings of the 2010 ACM SIGMOD International Conference on Management of data》;507-518 * |
Also Published As
Publication number | Publication date |
---|---|
US11294712B2 (en) | 2022-04-05 |
US20190384631A1 (en) | 2019-12-19 |
CN110609735A (zh) | 2019-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110609735B (zh) | 任务管理方法、设备和计算机程序产品 | |
CN107124472A (zh) | 负载均衡方法及装置、计算机可读存储介质 | |
CN103369041B (zh) | 基于云计算的资源分配方法及装置 | |
US7467291B1 (en) | System and method for calibrating headroom margin | |
CN108154298B (zh) | 配送任务分配方法、装置、电子设备及计算机存储介质 | |
CN110968424B (zh) | 一种基于K8s的资源调度方法、装置和存储介质 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
US9292336B1 (en) | Systems and methods providing optimization data | |
CN104899079B (zh) | 一种数据处理的方法及装置 | |
CN111506423A (zh) | 一种资源的调度方法、装置、电子设备及存储介质 | |
CN113032102B (zh) | 资源重调度方法、装置、设备和介质 | |
CN106952085B (zh) | 一种数据存储与业务处理的方法及装置 | |
CN108376103A (zh) | 一种云平台的资源平衡控制方法及服务器 | |
CN106201665A (zh) | 一种动态队列布置方法及设备 | |
CN110290228B (zh) | 一种互联网协议ip地址分配方法及装置 | |
CN111143063B (zh) | 任务的资源预约方法及装置 | |
CN113806089B (zh) | 集群负载资源调度方法、装置、电子设备及可读存储介质 | |
CN109086128A (zh) | 任务调度方法及装置 | |
CN110413393A (zh) | 集群资源管理方法、装置、计算机集群及可读存储介质 | |
CN110083506A (zh) | 集群资源量优化的方法及装置 | |
CN115344362A (zh) | 动态任务负载调度方法及装置 | |
KR20120069364A (ko) | 멀티코어 환경에서 코어별 처리 능력 및 전력량을 고려한 프레임 처리장치 및 방법 | |
CN113127289B (zh) | 一种基于yarn集群的资源管理方法、计算机设备和存储介质 | |
CN108279968A (zh) | 一种虚拟机资源的调度方法及装置 | |
CN111432082B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |