CN110147270A - 数据库调度方法、装置、计算机设备及存储介质 - Google Patents
数据库调度方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110147270A CN110147270A CN201910300315.0A CN201910300315A CN110147270A CN 110147270 A CN110147270 A CN 110147270A CN 201910300315 A CN201910300315 A CN 201910300315A CN 110147270 A CN110147270 A CN 110147270A
- Authority
- CN
- China
- Prior art keywords
- path
- pending
- database
- priority
- needed
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种数据库调度方法、装置、计算机设备及存储介质,首先计算被触发的操作系列所包含的多条路径,并根据每条所述路径所需的待执行步骤计算执行每条路径所需的时间,最后在数据库调度过程中优先执行所需时间最长的路径的待执行步骤。本发明所提出的数据库调度方法、装置、计算机设备及存储介质,通过在数据库调度设计中引入关键路径法,计算机能够通过计算得出数据库调度过程中关键路径的关键步骤,并给其较高的优先级,使得计算机资源可以优先使用在关键路径的关键步骤上,从而可实现对整体调度时效的优化,减少计算机调度过程的整体延时。
Description
技术领域
本发明涉及数据库平台的调度运用领域,特别是涉及一种数据库调度方法、装置、计算机设备及存储介质。
背景技术
数据库调度就是按照顺序执行一系列操作,目前,在数据库的调度中,往往只针对调度作业进行优先级设置,缺少针对调度作业本身的优化方法,整体调度时效较长。
发明内容
有鉴于此,本发明提出一种数据库调度方法、装置、计算机设备及存储介质,能够在数据库调度过程中优化作业的调度时效。
首先,为实现上述目的,本发明提出一种数据库调度方法,所述方法包括:
计算被触发的操作系列所包含的多条路径;其中,所述操作系列包含多个待执行步骤;
根据每条所述路径所需的待执行步骤计算执行每条路径所需的时间;
进行数据库调度,在数据库调度过程中优先执行所需时间最长的路径的待执行步骤。
进一步地,有若干所述待执行步骤包含触发条件,所述触发条件可触发至少一项其他待执行步骤,所述计算被触发的操作系列所包含的多条路径包括:
根据所有的所述触发条件形成所有的所述待执行步骤之间的拓扑关系;
根据所述拓扑关系生成由待执行步骤组成的所有有序执行链条形成路径。
进一步地,所述计算被触发的操作系列所包含的多条路径之前还包括:
对操作系列所包含的所有待执行步骤进行单独加载,记录加载每个所述待执行步骤所需的加载时间;
所述根据每条所述路径所需的待执行步骤计算执行每条路径所需的时间具体包括:
分别将每条所述路径所包含的所有待执行步骤的加载时间相加得到执行各路径所需的时间。
进一步地,所述根据每条所述路径所需的待执行步骤计算执行每条路径所需的时间之后还包括:
为所需时间最长的路径的每一项待执行步骤分配优先级。
进一步地,有若干所述路径中的特定待执行步骤具有预设的单独的权重,所述优先执行所需时间最长的路径的待执行步骤之前还包括:
依次判断每条所述路径中是否包含具有单独的权重的待执行步骤;
是则在依赖同一待执行步骤的多个待执行步骤中优先按权重依次执行具有权重的待执行步骤,或者为具有权重的待执行步骤所在的路径中的每一个待执行步骤分配与权重相应的优先级。
进一步地,有若干所述路径中的特定待执行步骤具有预设的特殊优先级,所述优先执行所需时间最长的路径的待执行步骤之前还包括:
依次判断每条所述路径中是否包含具有特殊优先级的待执行步骤;
是则在依赖同一待执行步骤的多个待执行步骤中优先执行具有特殊优先级的待执行步骤,或者为具有特殊优先级的待执行步骤所在的路径中的每一个待执行步骤分配优先级。
进一步地,有若干所述路径具有预设的优先级,所述优先执行所需时间最长的路径的待执行步骤之前还包括:
依次判断每条路径是否具有优先级;
是则优先执行具有优先级的路径上的每个待执行步骤。
为实现上述目的,本发明还提供一种数据库调度装置,其特征在于,其包括:
路径计算模块,适于计算被触发的操作系列所包含的多条路径;其中,所述操作系列包含多个待执行步骤;
时间计算模块,适于根据每条所述路径所需的待执行步骤计算执行每条路径所需的时间;
调度模块,适于进行数据库调度,在数据库调度过程中优先执行所需时间最长的路径的待执行步骤。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据库调度方法。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据库调度方法。
相较于现有技术,本发明所提出的数据库调度方法、装置、计算机设备及存储介质,通过在数据库调度设计中引入关键路径法,计算机能够通过计算得出数据库调度过程中关键路径的关键步骤,并给其较高的优先级,使得计算机资源可以优先使用在关键路径的关键步骤上,从而可实现对整体调度时效的优化,减少计算机调度过程的整体延时。
附图说明
图1是本发明各实施例之数据库调度方法的一可选的应用环境图;
图2是本发明各实施例之数据库内的一组操作系列的拓扑关系图;
图3是本发明第一实施例之数据库调度方法的流程示意图;
图4是本发明第一实施例之数据库调度方法中判断关键步骤的流程示意图;
图5是本发明第一实施例之数据库调度方法中另一种判断关键步骤的流程示意图;
图6是本发明第一施例之数据库调度方法中判断关键路径的流程示意图;
图7是本发明第二实施例之数据库调度装置的程序模块示意图;
图8是本发明第三实施例之计算机设备的硬件结构示意图。
附图标记
数据库调度装置 | 700、804 |
路径计算模块 | 701 |
时间计算模块 | 702 |
调度模块 | 703 |
计算机设备 | 800 |
存储器 | 801 |
处理器 | 802 |
网络接口 | 803 |
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参阅图1所示,是进行数据库调度的一种可选的应用环境示意图,业务系统20通过有线或无线的方式与数据库10进行通信,用户可通过与业务系统20的交互使得业务系统20执行所需的数据库调度任务。业务系统20的形式可以是计算机、手机、平板电脑、服务器等具有运算能力的硬件。
在下列各实施例中,数据库10可以是供用户单独使用的私有资源,当然更多情况下数据库10是一个共享资源,可以供多个用户使用,数据库10可以提供包括存取数据在内的多个操作,用户还可以自定义包括多个操作的操作系列,这种操作系列包括多个待执行步骤,所述待执行步骤包括触发一个或多个其他待执行步骤的触发条件,即这些待执行的步骤中存在依赖关系,某些步骤的执行依赖其他步骤先被执行,包括这些待执行步骤的操作系列一旦被触发执行,所述待执行步骤会按顺序被执行,从而相当于,一次操作可以有多个操作被执行。
例如,当用户在网上购物时,在付款这个操作步骤被成功执行后,可能有多个后续涉及数据库的调度步骤被执行,数据库需要存入客户的订单信息,同时数据库还需要更新商品的库存数量。
请参阅图2所示,在本申请各实施例中,数据库调用包括S1、S2、S3、S4、S5、S6、S7这7个步骤,其中步骤S1包括触发步骤S2、S3的触发条件,步骤S2包括触发步骤S4的触发条件,步骤S3包括触发步骤S4、S6的触发条件,步骤S4包括触发步骤S5的触发条件,步骤S5与步骤S6均包含触发步骤S7的触发条件。
第一实施例
参阅图3所示,是本发明的一种数据库调度方法的实施例的流程图,该方法包括如下步骤S301-S303:
步骤S301,计算被触发的操作系列所包含的多条路径。
其中,所述的路径是由操作系列中的多个待执行步骤串联形成的有序执行链条,具体到本实施例的数据库10中,由于每个待执行步骤可能包括触发多个步骤执行的条件,从而在数据库调度时可能存在多条路径,每条路径所需用时也不同。
例如,在步骤S1中包括触发步骤S2和S3执行的条件,在步骤S1被执行后,这个触发条件就被触发,然后步骤S2和S3被执行。而步骤S2和S3都包括触发步骤S4执行的触发条件,因此从步骤S1-S4就存在两条执行路径,分别是步骤S1-S2-S4和步骤S1-S3-S4,由于步骤S2和步骤S3所需用时不用,因此路径S1-S2-S4和路径S1-S3-S4的用时也不同。
本步骤中,计算被触发的操作系列所包含的多条路径的方法具体包括步骤S301a-S301b:
步骤S301a,根据所有的所述触发条件形成所有的所述待执行步骤之间的拓扑关系;具体地,依次判断每个待执行步骤中是否包含触发条件,若待执行步骤中包含触发条件,根据触发条件获取依赖该待执行步骤的每个待执行步骤的序号,并建立该待执行步骤与被触发的待执行步骤之间的拓扑关系。
步骤S301b,根据所述拓扑关系生成由待执行步骤组成的所有有序执行链条,这些有序执行链条即为路径。
步骤S302,根据每条所述路径所需的待执行步骤计算执行每条路径所需的时间。
不同路径所需的步骤并不相同,某些路径可能并不需要特定的步骤,例如在用户网上购物时,如果用户付款失败,则只需要保存用户付款信息至数据库,而不需要在数据库中更新商品的库存数量。
参阅图3所示,在本实施例中,在数据库调度过程中,包括以下路径。
L1:S1-S2-S4-S5-S7;
L2:S1-S3-S4-S5-S7;
L3:S1-S3-S6-S7;
例如,在本实施例中,步骤S1至步骤S7中每个步骤加载所需时长分别为t1至t7,并且加载各步骤所需的时间具体如下:t1=1秒、t2=1秒、t3=2秒、t4=2秒、t5=1秒、t6=5秒、t7=1秒。则,以上路径L1、L2和L3各自的总用时T1、T2、T3分别为:
T1=t1+t2+t4+t5+t7=1+1+2+1+1=6秒;
T2=t1+t3+t4+t5+t7=1+2+2+1+1=7秒;
T3=t1+t3+t6+t7=1+2+5+1=8秒。
本步骤中,加载各待执行步骤所需的时长可以是人工已经录入在数据库中,但是较为优选地,在本步骤执行之前还包括如下步骤:对操作系列所包含的所有待执行步骤进行单独加载,记录加载每个所述待执行步骤所需的加载时间。此处对待执行步骤的单独加载过程是对待执行步骤的试执行,即将每个待执行步骤单独加载至业务系统20的CPU缓存,根据加载时间可以获知单独执行每个待执行步骤需要的计算资源,可为后续执行整个操作系列过程中对计算资源的使用优化提供依据。如此,在计算各路径各自的总用时之前,通过预加载的方式可以知道每个待执行步骤单独所需的时间并录入数据库10,在本步骤实施过程中,分别将每条所述路径所包含的所有待执行步骤的加载时间相加得到执行各路径所需的时间。
步骤S303,进行数据库调度,在数据库调度过程中优先执行所需时间最长的路径的待执行步骤。
由于在数据库调度过程中,包括多个待执行步骤的操作系列要么不被执行,要么全部被执行,在现有技术中,由于缺少优化和优先级分配,每个不同的路径是根据触发条件自动被执行的,那些用时较长的路径的某个关键步骤可能用时较长,但是在后被执行,此时计算机资源已经被其他步骤占用,导致整体用时较长。
上述在数据库调度过程中优先执行所需时间最长的路径的待执行步骤可以体现为:若一个在前待执行步骤包含另外两个在后待执行步骤的触发条件,则在前待执行步骤运行完后,下一步优先运行所需时间较长的路径的待执行步骤。
在另外一种实施例中,在数据库调度过程中优先执行所需时间最长的路径的待执行步骤也可以体现为:对数据库调度过程中用时最长的那条路径的每个步骤分配较高的优先级,这条路径上的每个步骤会被优先执行,用时较少的路径的步骤则在用时最长的路径被执行后再执行,从而保证计算机的资源被优先用于执行这些用时长的关键路径上,从而整体缩短延时。
例如,在本实施例中,若没有优化,执行数据库调度过程中,在路径L2和L3中,步骤S4和步骤S6被同时执行,用时会大于2+5=7秒,整体延时会大于13秒。
优化后,对用时最长的路径L3中的步骤S1、S3、S6、S7分配较高的优先级,在数据库调度中,步骤S1、S3、S6、S7被优先执行,从而保证计算机资源优先使用在关键路径的关键步骤上,从而可以减少数据库调度过程的整体延时。
在进一步的实施例中,除了针对运行时间最长路径的待执行步骤进行的优先级优化,对于其他路径,可以根据运行时间的长短设置优先级的高低,即給所需运行时间较长的路径的待执行步骤分配较高的优先级,为运行时间较短的待执行步骤分配较低的优先级,以上述L1、L2、L3三条路径为例,三条路径的运行时间的长短顺序为T3>T2>T1,可据此除了为L3路径上的待执行步骤分配较高优先级外,为L2路径上的待执行步骤分配次一级的优先级,L1路径上待执行步骤的优先级最低。此处优先级可有两种体现形式:第一种,优先级高的路径上每一个待执行步骤的优先级都较高,以上述L1、L2、L3三条路径为例,优先执行L3路径所包含的步骤S1、S3、S6、S7,再执行L2路径所包含的步骤S4、S5、S7(其中步骤S1、S3与L3路径重合),最后执行L1路径所包含的步骤S2、S4、S5、S7(其中步骤S1与L2、L3路径重合)。第二种,仅在依赖同一待执行步骤的多个待执行步骤之间行使优先权,如路径L2与L3中,步骤S3包含步骤S4与步骤S6的触发条件,由于路径L3的加载所需时长大于路径L2的加载所需时长,因此步骤S6的优先级高于步骤S4的优先级,此处优先执行步骤S6。
在另一实施例中,在包含多个待执行步骤的操作系列中,有可能存在下述情形:其包含的所有路径中的某一项或几项路径的运行用时不是最长的,但其中包含的待执行步骤较为关键,按照第一实施例的调度方式,会忽略这些路径中的关键待执行步骤,而将计算资源优先分配给运行用时最长的路径,为了避免上述情况发生,可以在数据库10中对若干路径中的特定待执行步骤预设单独的权重,如此在上述步骤S303中,参阅图4所示,数据库调度过程中优先执行下列步骤S401-S402,再优先执行所需时间最长的路径的待执行步骤:
步骤S401,依次判断每条所述路径中是否包含具有单独的权重的待执行步骤;
步骤S402,是则在依赖同一待执行步骤的多个待执行步骤中优先按权重依次执行具有权重的待执行步骤,或者为具有权重的待执行步骤所在的路径中的每一个待执行步骤分配与权重相应的优先级。
本步骤中,第一种情形下,在数据库调度过程中,若多个在后待执行步骤依赖同一在先待执行步骤执行,则按照权重大小,优先执行权重较高的在后待执行步骤,再执行权重较低的在后待执行步骤。以上述L1、L2、L3三条路径为例,若路径L2中的步骤S4与路径L3中的步骤S6均具有单独的权重,设路径L2中的步骤S4的权重为0.7,路径L3中的步骤S6的权重为0.3,则在数据库调度过程中,由于步骤S3包含步骤S4与步骤S6的触发条件,当执行完步骤S3时,由于步骤S4的权重高于步骤S6的权重,因此优先执行步骤S4,其他待执行步骤的执行仍按照根据路径执行所需的时长分配的优先权执行。
后一种情形下,为权重较高的待执行步骤所在的路径中的每一条待执行步骤分配与权重对应的优先权,可使得关键待执行步骤所在的整条路径都被优先执行。以上述L1、L2、L3三条路径为例,由于L2中的步骤S4的权重大于路径L3中的步骤S6的权重,因此,为路径L2中所有待执行步骤分配最高优先级,而在路径L1与路径L3中,由于执行路径L3所需时长大于执行路径L1所需时长,因此路径L3的优先级高于路径L1的优先级。
通过对关键路径的关键步骤设置单独的权重,可使得算出的关键路径更科学合理。
在另一实施例中,在包含多个待执行步骤的操作系列中,有可能存在下述情形:其包含的所有路径中的某一项或几项路径的运行用时不是最长的,但其中包含的待执行步骤较为关键,按照第一实施例的调度方式,会忽略这些路径中的关键待执行步骤,而将计算资源优先分配给运行用时最长的路径,为了避免上述情况发生,可以在数据库10中对若干路径中的特定待执行步骤预设特殊优先级,如此在上述步骤S303中,参阅图5所示,数据库调度过程中优先执行下列步骤S501-S502,再优先执行所需时间最长的路径的待执行步骤:
步骤S501,依次判断每条所述路径中是否包含具有特殊优先级的待执行步骤;
步骤S502,是则在依赖同一待执行步骤的多个待执行步骤中优先执行具有特殊优先级的待执行步骤,或者为具有特殊优先级的待执行步骤所在的路径中的每一个待执行步骤分配优先级。
上述步骤S502可保证在依赖同一在先待执行步骤时,具有特殊优先级的在后待执行步骤被优先执行,或者使得具有关键步骤的整个关键路径被优先执行。以上述L1、L2、L3三条路径为例,若对步骤L2中的步骤S4设置特殊优先级,前一种情形下,在数据库调度过程中,由于步骤S3包含步骤S4与步骤S6的触发条件,当执行完步骤S3时,由于步骤S4具有特殊优先级,因此优先执行步骤S4,其他待执行步骤的执行仍按照根据路径执行所需的时长分配的优先权执行;后一种情形下,在数据库调度过程中,由于路径L2中的步骤S4具有特殊优先级,因此为路径L2中的每一个待执行步骤分配最高优先级,而在路径L1与路径L3中,由于执行路径L3所需时长大于执行路径L1所需时长,因此路径L3的优先级高于路径L1的优先级。
在另一实施例中,在包含多个待执行步骤的操作系列中,有可能存在下述情形:其包含的所有路径中的某一项或几项路径较为关键,按照第一实施例的调度方式,会忽略这些关键路径,而将计算资源优先分配给运行用时最长的路径,为了避免上述情况发生,可为关键路径分配预设的优先级,参阅图6所示,数据库调度过程中优先执行下列步骤S601-S602,再优先执行所需时间最长的路径的待执行步骤:
步骤S601,依次判断每条路径是否具有优先级;
步骤S602,是则优先执行具有优先级的路径上的每个待执行步骤。
若多个路径具有优先级,则按照优先级的等级依次执行具有优先级的步骤。
仍以上述L1、L2、L3三条路径为例,若路径L1具有预设的优先级,则在数据库调度过程中优先执行路径L1的步骤S1、S2、S4、S5、S7,剩下的路径L2与路径L3中,由于执行路径L3所需时长大于执行路径L2所需时长,因此路径L3的优先级高于路径L2的优先级,在执行完路径L1的步骤后,再执行路径L3的步骤S3、S6、S7,最后执行路径L2的步骤S4、S5、S7。若路径L1具有预设的最高优先级,路径L2具有预设的次高优先级,则在数据库调度过程中,三条路径的执行顺序为:L1、L2、L3。
第二实施例
请参阅图7,示出了本发明第二实施例之数据库调度装置700的程序模块示意图。在本实施例中,数据库调度装置700可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述数据库调度方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述数据库调度方法在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
路径计算模块701,适于计算被触发的操作系列所包含的多条路径。
其中,所述的路径是由操作系列中的多个待执行步骤串联形成的有序执行链条,具体到本实施例的数据库10中,由于每个待执行步骤可能包括触发多个步骤执行的条件,从而在数据库调度时可能存在多条路径,每条路径所需用时也不同。
例如,在步骤S1中包括触发步骤S2和S3执行的条件,在步骤S1被执行后,这个触发条件就被触发,然后步骤S2和S3被执行。而步骤S2和S3都包括触发步骤S4执行的触发条件,因此从步骤S1-S4就存在两条执行路径,分别是步骤S1-S2-S4和步骤S1-S3-S4,由于步骤S2和步骤S3所需用时不用,因此路径S1-S2-S4和路径S1-S3-S4的用时也不同。
此处,路径计算模块701计算被触发的操作系列所包含的多条路径的方法具体包括步骤S301a-S301b:
步骤S301a,路径计算模块701根据所有的所述触发条件形成所有的所述待执行步骤之间的拓扑关系;具体地,依次判断每个待执行步骤中是否包含触发条件,若待执行步骤中包含触发条件,根据触发条件获取依赖该待执行步骤的每个待执行步骤的序号,并建立该待执行步骤与被触发的待执行步骤之间的拓扑关系。
步骤S301b,路径计算模块701根据所述拓扑关系生成由待执行步骤组成的所有有序执行链条,这些有序执行链条即为路径。
时间计算模块702,适于根据每条所述路径所需的待执行步骤计算执行每条路径所需的时间。
不同路径所需的步骤并不相同,某些路径可能并不需要特定的步骤,例如在用户网上购物时,如果用户付款失败,则只需要保存用户付款信息至数据库,而不需要在数据库中更新商品的库存数量。
参阅图3所示,在本实施例中,在数据库调度过程中,包括以下路径。
L1:S1-S2-S4-S5-S7;
L2:S1-S3-S4-S5-S7;
L3:S1-S3-S6-S7;
例如,在本实施例中,步骤S1至步骤S7中每个步骤加载所需时长分别为t1至t7,并且加载各步骤所需的时间具体如下:t1=1秒、t2=1秒、t3=2秒、t4=2秒、t5=1秒、t6=5秒、t7=1秒。则,以上路径L1、L2和L3各自的总用时T1、T2、T3分别为:
T1=t1+t2+t4+t5+t7=1+1+2+1+1=6秒;
T2=t1+t3+t4+t5+t7=1+2+2+1+1=7秒;
T3=t1+t3+t6+t7=1+2+5+1=8秒。
本步骤中,加载各待执行步骤所需的时长可以是人工已经录入在数据库中,但是较为优选地,在本步骤执行之前还包括如下步骤:时间计算模块702对操作系列所包含的所有待执行步骤进行单独加载,记录加载每个所述待执行步骤所需的加载时间。此处时间计算模块702对待执行步骤的单独加载过程是对待执行步骤的试执行,即时间计算模块702将每个待执行步骤单独加载至业务系统20的CPU缓存,根据加载时间可以获知单独执行每个待执行步骤需要的计算资源,可为后续执行整个操作系列过程中对计算资源的使用优化提供依据。如此,在计算各路径各自的总用时之前,时间计算模块702通过预加载的方式可以知道每个待执行步骤单独所需的时间并录入数据库10,并分别将每条所述路径所包含的所有待执行步骤的加载时间相加得到执行各路径所需的时间。
调度模块703,进行数据库调度,在数据库调度过程中优先执行所需时间最长的路径的待执行步骤。
由于在数据库调度过程中,包括多个待执行步骤的操作系列要么不被执行,要么全部被执行,在现有技术中,由于缺少优化和优先级分配,每个不同的路径是根据触发条件自动被执行的,那些用时较长的路径的某个关键步骤可能用时较长,但是在后被执行,此时计算机资源已经被其他步骤占用,导致整体用时较长。
上述在数据库调度过程中优先执行所需时间最长的路径的待执行步骤可以体现为:若一个在前待执行步骤包含另外两个在后待执行步骤的触发条件,则在前待执行步骤运行完后,下一步优先运行所需时间较长的路径的待执行步骤。
在另外一种实施例中,在数据库调度过程中优先执行所需时间最长的路径的待执行步骤也可以体现为:对数据库调度过程中用时最长的那条路径的每个步骤分配较高的优先级,这条路径上的每个步骤会被优先执行,用时较少的路径的步骤则在用时最长的路径被执行后再执行,从而保证计算机的资源被优先用于执行这些用时长的关键路径上,从而整体缩短延时。
例如,在本实施例中,若没有优化,调度模块703执行数据库调度过程中,在路径L2和L3中,步骤S4和步骤S6被同时执行,用时会大于2+5=7秒,整体延时会大于13秒。
优化后,调度模块703对用时最长的路径L3中的步骤S1、S3、S6、S7分配较高的优先级,在数据库调度中,步骤S1、S3、S6、S7被优先执行,从而保证计算机资源优先使用在关键路径的关键步骤上,从而可以减少数据库调度过程的整体延时。
在进一步的实施例中,调度模块703除了针对运行时间最长路径的待执行步骤进行的优先级优化,对于其他路径,可以根据运行时间的长短设置优先级的高低,即給所需运行时间较长的路径的待执行步骤分配较高的优先级,为运行时间较短的待执行步骤分配较低的优先级,以上述L1、L2、L3三条路径为例,三条路径的运行时间的长短顺序为T3>T2>T1,可据此除了为L3路径上的待执行步骤分配较高优先级外,为L2路径上的待执行步骤分配次一级的优先级,L1路径上待执行步骤的优先级最低。此处优先级可有两种体现形式:第一种,优先级高的路径上每一个待执行步骤的优先级都较高,以上述L1、L2、L3三条路径为例,优先执行L3路径所包含的步骤S1、S3、S6、S7,再执行L2路径所包含的步骤S4、S5、S7(其中步骤S1、S3与L3路径重合),最后执行L1路径所包含的步骤S2、S4、S5、S7(其中步骤S1与L2、L3路径重合)。第二种,仅在依赖同一待执行步骤的多个待执行步骤之间行使优先权,如路径L2与L3中,步骤S3包含步骤S4与步骤S6的触发条件,由于路径L3的加载所需时长大于路径L2的加载所需时长,因此步骤S6的优先级高于步骤S4的优先级,此处优先执行步骤S6。
在另一实施例中,在包含多个待执行步骤的操作系列中,有可能存在下述情形:其包含的所有路径中的某一项或几项路径的运行用时不是最长的,但其中包含的待执行步骤较为关键,按照第一实施例的调度方式,调度模块703会忽略这些路径中的关键待执行步骤,而将计算资源优先分配给运行用时最长的路径,为了避免上述情况发生,可以在数据库10中对若干路径中的特定待执行步骤预设单独的权重,如此在上述步骤S303中,参阅图4所示,调度模块703在数据库调度过程中优先执行下列步骤S401-S402,再优先执行所需时间最长的路径的待执行步骤:
步骤S401,调度模块703依次判断每条所述路径中是否包含具有单独的权重的待执行步骤;
步骤S402,是则调度模块703在依赖同一待执行步骤的多个待执行步骤中优先按权重依次执行具有权重的待执行步骤,或者为具有权重的待执行步骤所在的路径中的每一个待执行步骤分配与权重相应的优先级。
本步骤中,第一种情形下,调度模块703在数据库调度过程中,若多个在后待执行步骤依赖同一在先待执行步骤执行,则按照权重大小,优先执行权重较高的在后待执行步骤,再执行权重较低的在后待执行步骤。以上述L1、L2、L3三条路径为例,若路径L2中的步骤S4与路径L3中的步骤S6均具有单独的权重,设路径L2中的步骤S4的权重为0.7,路径L3中的步骤S6的权重为0.3,则在数据库调度过程中,由于步骤S3包含步骤S4与步骤S6的触发条件,当执行完步骤S3时,由于步骤S4的权重高于步骤S6的权重,因此优先执行步骤S4,其他待执行步骤的执行仍按照根据路径执行所需的时长分配的优先权执行。
后一种情形下,为权重较高的待执行步骤所在的路径中的每一条待执行步骤分配与权重对应的优先权,可使得关键待执行步骤所在的整条路径都被优先执行。以上述L1、L2、L3三条路径为例,由于L2中的步骤S4的权重大于路径L3中的步骤S6的权重,因此,为路径L2中所有待执行步骤分配最高优先级,而在路径L1与路径L3中,由于执行路径L3所需时长大于执行路径L1所需时长,因此路径L3的优先级高于路径L1的优先级。
通过对关键路径的关键步骤设置单独的权重,可使得算出的关键路径更科学合理。
在另一实施例中,在包含多个待执行步骤的操作系列中,有可能存在下述情形:其包含的所有路径中的某一项或几项路径的运行用时不是最长的,但其中包含的待执行步骤较为关键,按照第一实施例的调度方式,调度模块703会忽略这些路径中的关键待执行步骤,而将计算资源优先分配给运行用时最长的路径,为了避免上述情况发生,可以在数据库10中对若干路径中的特定待执行步骤预设特殊优先级,如此在上述步骤S303中,参阅图5所示,调度模块703在数据库调度过程中优先执行下列步骤S501-S502,再优先执行所需时间最长的路径的待执行步骤:
步骤S501,调度模块703依次判断每条所述路径中是否包含具有特殊优先级的待执行步骤;
步骤S502,是则调度模块703在依赖同一待执行步骤的多个待执行步骤中优先执行具有特殊优先级的待执行步骤,或者为具有特殊优先级的待执行步骤所在的路径中的每一个待执行步骤分配优先级。
上述步骤S502可保证在依赖同一在先待执行步骤时,具有特殊优先级的在后待执行步骤被优先执行,或者使得具有关键步骤的整个关键路径被优先执行。以上述L1、L2、L3三条路径为例,若对步骤L2中的步骤S4设置特殊优先级,前一种情形下,在数据库调度过程中,由于步骤S3包含步骤S4与步骤S6的触发条件,当执行完步骤S3时,由于步骤S4具有特殊优先级,因此优先执行步骤S4,其他待执行步骤的执行仍按照根据路径执行所需的时长分配的优先权执行;后一种情形下,在数据库调度过程中,由于路径L2中的步骤S4具有特殊优先级,因此为路径L2中的每一个待执行步骤分配最高优先级,而在路径L1与路径L3中,由于执行路径L3所需时长大于执行路径L1所需时长,因此路径L3的优先级高于路径L1的优先级。
在另一实施例中,在包含多个待执行步骤的操作系列中,有可能存在下述情形:其包含的所有路径中的某一项或几项路径较为关键,按照第一实施例的调度方式,会忽略这些关键路径,而将计算资源优先分配给运行用时最长的路径,为了避免上述情况发生,可为关键路径分配预设的优先级,参阅图6所示,数据库调度过程中优先执行下列步骤S601-S602,再优先执行所需时间最长的路径的待执行步骤:
步骤S601,调度模块703依次判断每条路径是否具有优先级;
步骤S602,是则调度模块703优先执行具有优先级的路径上的每个待执行步骤。
若多个路径具有优先级,则按照优先级的等级依次执行具有优先级的步骤。
仍以上述L1、L2、L3三条路径为例,若路径L1具有预设的优先级,则调度模块703在数据库调度过程中优先执行路径L1的步骤S1、S2、S4、S5、S7,剩下的路径L2与路径L3中,由于执行路径L3所需时长大于执行路径L2所需时长,因此路径L3的优先级高于路径L2的优先级,在执行完路径L1的步骤后,再执行路径L3的步骤S3、S6、S7,最后执行路径L2的步骤S4、S5、S7。若路径L1具有预设的最高优先级,路径L2具有预设的次高优先级,则调度模块703在数据库调度过程中,三条路径的执行顺序为:L1、L2、L3。
第三实施例
参阅图8,是本发明实施例三之计算机设备800的硬件架构示意图。在本实施例中,所述计算机设备800是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。如图所示,所述计算机设备800至少包括,但不限于,可通过系统总线相互通信连接存储器801、处理器802、网络接口803、以及数据库调度装置804。其中:
本实施例中,存储器801至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器801可以是计算机设备800的内部存储单元,例如该计算机设备800的硬盘或内存。在另一些实施例中,存储器801也可以是计算机设备800的外部存储设备,例如该计算机设备800上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器801还可以既包括计算机设备800的内部存储单元也包括其外部存储设备。本实施例中,存储器801通常用于存储安装于计算机设备800的操作系统和各类应用软件,例如数据库调度装置804的程序代码等。此外,存储器801还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器802在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器802通常用于控制计算机设备800的总体操作。本实施例中,处理器802用于运行存储器801中存储的程序代码或者处理数据,例如运行数据库调度装置804,以实现实施例一中的数据库调度方法。
所述网络接口803可包括无线网络接口或有线网络接口,该网络接口803通常用于在所述计算机设备800与其他电子装置之间建立通信连接。例如,所述网络接口803用于通过网络将所述计算机设备800与外部终端相连,在所述计算机设备800与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图8仅示出了具有部件801-804的计算机设备800,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器801中的所述数据库调度装置804还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器801中,并由一个或多个处理器(本实施例为处理器802)所执行,以完成本发明数据库调度方法。
第四实施例
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据库调度装置700或804,被处理器执行时实现本发明之数据库调度方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据库调度方法,其特征在于,所述方法包括:
计算被触发的操作系列所包含的多条路径;其中,所述操作系列包含多个待执行步骤;
根据每条所述路径所需的待执行步骤计算执行每条路径所需的时间;
进行数据库调度,在数据库调度过程中优先执行所需时间最长的路径的待执行步骤。
2.如权利要求1所述的数据库调度方法,其特征在于,有若干所述待执行步骤包含触发条件,所述触发条件可触发至少一项其他待执行步骤,所述计算被触发的操作系列所包含的多条路径包括:
根据所有的所述触发条件形成所有的所述待执行步骤之间的拓扑关系;
根据所述拓扑关系生成由待执行步骤组成的所有有序执行链条形成路径。
3.如权利要求1所述的数据库调度方法,其特征在于,所述计算被触发的操作系列所包含的多条路径之前还包括:
对操作系列所包含的所有待执行步骤进行单独加载,记录加载每个所述待执行步骤所需的加载时间;
所述根据每条所述路径所需的待执行步骤计算执行每条路径所需的时间具体包括:
分别将每条所述路径所包含的所有待执行步骤的加载时间相加得到执行各路径所需的时间。
4.如权利要求1所述的数据库调度方法,其特征在于,所述根据每条所述路径所需的待执行步骤计算执行每条路径所需的时间之后还包括:
为所需时间最长的路径的每一项待执行步骤分配优先级。
5.如权利要求1所述的数据库调度方法,其特征在于,有若干所述路径中的特定待执行步骤具有预设的单独的权重,所述优先执行所需时间最长的路径的待执行步骤之前还包括:
依次判断每条所述路径中是否包含具有单独的权重的待执行步骤;
是则在依赖同一待执行步骤的多个待执行步骤中优先按权重依次执行具有权重的待执行步骤,或者为具有权重的待执行步骤所在的路径中的每一个待执行步骤分配与权重相应的优先级。
6.如权利要求1所述的数据库调度方法,其特征在于,有若干所述路径中的特定待执行步骤具有预设的特殊优先级,所述优先执行所需时间最长的路径的待执行步骤之前还包括:
依次判断每条所述路径中是否包含具有特殊优先级的待执行步骤;
是则在依赖同一待执行步骤的多个待执行步骤中优先执行具有特殊优先级的待执行步骤,或者为具有特殊优先级的待执行步骤所在的路径中的每一个待执行步骤分配优先级。
7.如权利要求1所述的数据库调度方法,其特征在于,有若干所述路径具有预设的优先级,所述优先执行所需时间最长的路径的待执行步骤之前还包括:
依次判断每条路径是否具有优先级;
是则优先执行具有优先级的路径上的每个待执行步骤。
8.一种数据库调度装置,其特征在于,其包括:
路径计算模块,适于计算被触发的操作系列所包含的多条路径;其中,所述操作系列包含多个待执行步骤;
时间计算模块,适于根据每条所述路径所需的待执行步骤计算执行每条路径所需的时间;
调度模块,适于进行数据库调度,在数据库调度过程中优先执行所需时间最长的路径的待执行步骤。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述数据库调度方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述数据库调度方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910300315.0A CN110147270A (zh) | 2019-04-15 | 2019-04-15 | 数据库调度方法、装置、计算机设备及存储介质 |
PCT/CN2019/118039 WO2020211358A1 (zh) | 2019-04-15 | 2019-11-13 | 数据库调度方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910300315.0A CN110147270A (zh) | 2019-04-15 | 2019-04-15 | 数据库调度方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110147270A true CN110147270A (zh) | 2019-08-20 |
Family
ID=67589656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910300315.0A Pending CN110147270A (zh) | 2019-04-15 | 2019-04-15 | 数据库调度方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110147270A (zh) |
WO (1) | WO2020211358A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020211358A1 (zh) * | 2019-04-15 | 2020-10-22 | 平安普惠企业管理有限公司 | 数据库调度方法、装置、计算机设备及存储介质 |
CN118114842A (zh) * | 2024-04-13 | 2024-05-31 | 中国水利水电科学研究院 | 一种水文模型调度方法、装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107015856A (zh) * | 2017-03-30 | 2017-08-04 | 青海大学 | 云环境下科学工作流中的任务调度方案生成方法及装置 |
CN107301500A (zh) * | 2017-06-02 | 2017-10-27 | 北京工业大学 | 一种基于关键路径任务前瞻的工作流调度方法 |
US10152349B1 (en) * | 2016-09-27 | 2018-12-11 | Juniper Networks, Inc. | Kernel scheduling based on precedence constraints and/or artificial intelligence techniques |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007018268A (ja) * | 2005-07-07 | 2007-01-25 | Sumitomo Heavy Ind Ltd | タスクスケジューリング方法、タスクスケジューリング装置、及びタスクスケジューリングプログラム |
CN103336723B (zh) * | 2013-07-21 | 2017-03-29 | 哈尔滨理工大学 | 基于关键路径的适应处理器内核紧缺调度方法 |
CN110147270A (zh) * | 2019-04-15 | 2019-08-20 | 平安普惠企业管理有限公司 | 数据库调度方法、装置、计算机设备及存储介质 |
-
2019
- 2019-04-15 CN CN201910300315.0A patent/CN110147270A/zh active Pending
- 2019-11-13 WO PCT/CN2019/118039 patent/WO2020211358A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152349B1 (en) * | 2016-09-27 | 2018-12-11 | Juniper Networks, Inc. | Kernel scheduling based on precedence constraints and/or artificial intelligence techniques |
CN107015856A (zh) * | 2017-03-30 | 2017-08-04 | 青海大学 | 云环境下科学工作流中的任务调度方案生成方法及装置 |
CN107301500A (zh) * | 2017-06-02 | 2017-10-27 | 北京工业大学 | 一种基于关键路径任务前瞻的工作流调度方法 |
Non-Patent Citations (1)
Title |
---|
李栋娜 等: "SOC 软硬件协同设计中多任务性能评估算法", 计算机应用研究, no. 6, pages 2 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020211358A1 (zh) * | 2019-04-15 | 2020-10-22 | 平安普惠企业管理有限公司 | 数据库调度方法、装置、计算机设备及存储介质 |
CN118114842A (zh) * | 2024-04-13 | 2024-05-31 | 中国水利水电科学研究院 | 一种水文模型调度方法、装置、存储介质及电子设备 |
CN118114842B (zh) * | 2024-04-13 | 2024-11-05 | 中国水利水电科学研究院 | 一种水文模型调度方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2020211358A1 (zh) | 2020-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8301823B2 (en) | Bus controller arranged between a bus master and a networked communication bus in order to control the transmission route of a packet that flows through the communication bus, and simulation program to design such a bus controller | |
US9424019B2 (en) | Updating hardware libraries for use by applications on a computer system with an FPGA coprocessor | |
CN111490963B (zh) | 基于quic协议栈的数据处理方法、系统、设备及存储介质 | |
CN108429783A (zh) | 电子装置、配置文件推送方法及存储介质 | |
CN105335229A (zh) | 一种业务资源的调度方法和装置 | |
CN108717379A (zh) | 电子装置、分布式任务调度方法及存储介质 | |
CN109151070B (zh) | 基于区块链的点对点cdn的服务调度方法、电子装置 | |
CN105553882B (zh) | 用于sdn数据平面资源调度的方法 | |
CN110147270A (zh) | 数据库调度方法、装置、计算机设备及存储介质 | |
CN109918203A (zh) | 接入服务器内存管理优化方法、接入服务器及通信系统 | |
CN109800083A (zh) | 一种微服务协同调用的方法、装置、系统及存储介质 | |
CN108681481A (zh) | 业务请求的处理方法及装置 | |
CN107370799A (zh) | 一种混合移动云环境中高能效的多用户在线计算迁移方法 | |
CN108829510A (zh) | 线程绑定处理方法和装置 | |
CN108243254A (zh) | 电子装置、应用升级版本发布的方法及存储介质 | |
CN102625453B (zh) | 用于动态选择rf资源分配中的调度策略的方法和装置 | |
ul Hassan et al. | An efficient dynamic decision-based task optimization and scheduling approach for microservice-based cost management in mobile cloud computing applications | |
CN105635231A (zh) | 一种分布式系统的调用方法和装置 | |
CN114757396A (zh) | 一种机器人跨楼层配送方法、装置及电子设备 | |
CN111143063B (zh) | 任务的资源预约方法及装置 | |
CN109670932A (zh) | 信贷数据核算方法、装置、系统和计算机存储介质 | |
CN117875641A (zh) | 冷轧厂的钢卷运输任务分配方法、装置及设备 | |
Lim et al. | A fast and effective insertion algorithm for multi-depot vehicle routing problem with fixed distribution of vehicles and a new simulated annealing approach | |
US8374593B2 (en) | Method of providing mobile application | |
CN109658043A (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 |