CN116775315A - 一种基于依赖图的多核cpu并发事务分配方法 - Google Patents
一种基于依赖图的多核cpu并发事务分配方法 Download PDFInfo
- Publication number
- CN116775315A CN116775315A CN202311056907.5A CN202311056907A CN116775315A CN 116775315 A CN116775315 A CN 116775315A CN 202311056907 A CN202311056907 A CN 202311056907A CN 116775315 A CN116775315 A CN 116775315A
- Authority
- CN
- China
- Prior art keywords
- transaction
- dependency
- node
- dependency graph
- transactions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 239000003016 pheromone Substances 0.000 claims abstract description 122
- 230000006399 behavior Effects 0.000 claims description 17
- 230000008020 evaporation Effects 0.000 claims description 12
- 238000001704 evaporation Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 abstract description 5
- 241000257303 Hymenoptera Species 0.000 description 16
- 230000001419 dependent effect Effects 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
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/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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于依赖图的多核CPU并发事务分配方法,该方法包括:基于数据库中事务之间的执行关联性构建依赖图,基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量;基于所述依赖图各个节点对应事务的事务属性确定各个节点的启发式信息;基于蚁群的行为模型按照所述依赖图执行所述数据库中的事务,并更新所述依赖图上各个边上的信息素。本方法基于所定义的各事务之间的关系构建依赖图并利用具有分布式特性的蚁群算法解决数据库中多核CPU并发事务调度分配问题,其在处理多个事务之间复杂的依赖关系和交织情况上具有更好的性能,充分发挥多核CPU的优势,提高了数据库***的资源利用率和数据的执行效率。
Description
技术领域
本发明涉及数据库事务分配技术领域,特别是一种基于依赖图的多核CPU并发事务分配方法。
背景技术
近些年来,互联网的高速发展不仅推动了应用规模的快速扩展,还引发了海量数据的涌现,以及对数据库***在支持大吞吐量的事务处理方面的迫切需求。后台数据库***面临着应对日益增长的数据量和并发请求的挑战,在这个背景下,数据库***作为关键的数据管理和事务处理平台,得到了进一步的优化和发展。事务处理是数据库***最为关键的特性之一,它涉及处理并发的事务请求,其中多核CPU并发事务分配成为提高***性能的重要环节。数据库中多核CPU并发事务分配方法的目标是通过合理调度并发事务,使得***性能得到最大化。
为了应对多核处理器带来的挑战,目前存在多种技术用于多核CPU事务调度,如优先级调度算法、时间片轮转调度算法、多级反馈队列调度算法等。如优先级调度方法,根据事务的优先级来决定事务的调度顺序,当一个高优先级的事务因为某些原因被阻塞或等待,可能会导致资源分配不均,造成低优先级事务的饥饿现象;时间片轮转调度算法,每个事务被分配一个时间片,当时间片用完后,事务会被暂停,放到就绪队列的末尾等待下一轮调度,可能导致资源利用率不高和事务切换开销增加;多级反馈队列调度算法:综合多个队列的调度算法,每个队列有不同的优先级和时间片大小,多级队列调度算法可能导致事务切换的开销增加,特别是当事务的数量很多时,事务切换的开销可能会变得显著。
因此,亟需一种基于依赖图的多核CPU并发事务分配方法,用于解决上述技术问题。
发明内容
本发明提供一种基于依赖图的多核CPU并发事务分配方法,用于解决现有技术中,数据库资源利用率不高和事务切换开销较大的技术问题。具体技术方案如下:
第一方面,本发明提供一种基于依赖图的多核CPU并发事务分配方法,所述方法包括:
基于数据库中事务之间的执行关联性构建依赖图,所述数据库中的每个事务作为图中的一个节点,事务之间的依赖关系形成图中的有向边;
基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量;
基于所述依赖图各个节点对应事务的事务度量属性确定各个节点的启发式信息;
基于所述信息素量和所述启发式信息,通过蚁群的行为模型和依赖图中执行所述数据库中的事务,并根据执行结果更新所述依赖图上各个边的信息素量。
进一步的,所述基于数据库中事务之间的执行关联性构建依赖图,包括:
基于所述数据库中的每个事务建立一个对应的节点;
基于每个所述节点对应的事务之间的数据流动关系、时间戳信息、价值信息、提交顺序,确定各个节点之间的边,所述边用于表示各个节点之间的关联性。
进一步的,所述基于每个所述节点对应的事务之间的数据流动关系、时间戳信息、价值信息、提交顺序,确定各个节点之间的边,具体为:
通过记录数据来源、数据去向和版本信息标记对应节点之间的数据依赖关系R1:
通过记录事务或数据的时间戳信息标记对应节点之间的控制依赖关系R2:
通过记录事务价值信息标记对应节点之间的事务优先级依赖关系R3:
通过记录事务提交顺序标记对应节点之间的并行执行关系R4。
进一步的,所述基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量,包括:
确定数据依赖关系R1对应的数据权重D1、控制依赖关系R2对应的控制权重D2、事务优先级依赖关系R3对应的优先权重D3、并行执行关系R4对应的并行权重D4;
基于初始信息素量、信息素蒸发系数、所述相邻两节点之间的依赖关系和各个所述依赖关系对应的权重,确定所述相邻两节点对应的边的信息素量。
进一步的,所述基于所述依赖图各个节点对应事务的事务属性确定各个节点的启发式信息,包括:
确定所述事务属性中各个属性对应的属性启发式信息;
确定所述各个属性启发式信息对应的权重;
基于所述各个属性启发式信息和所述权重确定所述事务的启发式信息;
基于所述事务的启发式信息、所述各个属性启发式信息的最大值和最小值确定启发式信息映射值,所述启发式信息映射值作为相邻节点之间的启发式信息。
进一步的,所述各个节点对应的事务属性包括:节点事务资源利用率、节点事务执行时间、节点事务优先级、节点事务等待时间。
进一步的,所述基于蚁群的行为模型按照所述依赖图执行所述数据库中的事务,并更新所述依赖图上各个边上的信息素,具体为:
基于所述依赖图中的各个节点的启发式信息和各个边的信息素量,模拟蚁群并发执行数据库中的事务;
基于执行事务的完成质量更新所述执行事务对应的边的信息素量。
进一步的,所述基于执行事务的完成质量更新所述执行事务对应的边的信息素量,所采用的公式为:
是信息素的蒸发速率,用于控制信息素的挥发和降低信息素量;
是蚂蚁k通过边(i, j)的信息素增量,所述信息素增量与蚂蚁k的调度方案质量有关。
第二方面,本发明还提供一种基于依赖图的多核CPU并发事务分配***,所述***包括:依赖图模块、信息素量模块、启发式信息模块、更新模块;
所述依赖图模块用于,基于数据库中事务之间的执行关联性构建依赖图,所述数据库中的每个事务作为图中的一个节点,事务之间的依赖关系形成图中的有向边;
所述信息素量模块用于,基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量;
所述启发式信息模块用于,基于所述依赖图各个节点对应事务的事务属性确定各个节点的启发式信息;
所述更新模块用于,基于所述信息素量和所述启发式信息,通过蚁群的行为模型和依赖图中执行所述数据库中的事务,并根据执行结果更新所述依赖图上各个边的信息素量。
第三方面,本发明还提供一种数据库,所述数据库中设置有存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器内的计算机程序以执行如下步骤:
基于数据库中事务之间的执行关联性构建依赖图,所述数据库中的每个事务作为图中的一个节点,事务之间的依赖关系形成图中的有向边;
基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量;
基于所述依赖图各个节点对应事务的事务属性确定各个节点的启发式信息;
基于所述信息素量和所述启发式信息,通过蚁群的行为模型和依赖图中执行所述数据库中的事务,并根据执行结果更新所述依赖图上各个边的信息素量。
发明效果:
对于本方法所解决的问题,首次针对多核CPU并发事务分配调度进行依赖图构建。在数据库***应用中,多核CPU可以同时执行多个事务,这种并发处理能力可以更好地支持数据库***在多用户访问时的需求,在高并发的情况下提高数据库的吞吐量和响应时间,本方法基于所构建的依赖图解决数据库中多核CPU并发事务调度分配问题,更有效地利用多核CPU的优势,提高并发处理能力,在事务灵活性、可靠性、资源利用率等方面均有突破。
附图说明
图1是本发明一种基于依赖图的多核CPU并发事务分配方法的流程图;
图2是本发明一种基于依赖图的多核CPU并发事务分配方法的基于依赖关系的DAG依赖图;
图3是本发明一种基于依赖图的多核CPU并发事务分配方法的架构关系图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例,仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
具体实施例1:
本发明提供一种基于依赖图的多核CPU并发事务分配方法,用于解决现有技术中,数据库资源利用率不高和事务切换开销较大的技术问题。具体技术方案如下:
第一方面,本发明提供一种基于依赖图的多核CPU并发事务分配方法,所述方法包括:基于数据库中事务之间的执行关联性构建依赖图,所述数据库中的每个事务作为图中的一个节点,事务之间的依赖关系形成图中的有向边;基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量;基于所述依赖图各个节点对应事务的事务度量属性确定各个节点的启发式信息;基于所述信息素量和所述启发式信息,通过蚁群的行为模型和依赖图中执行所述数据库中的事务,并根据执行结果更新所述依赖图上各个边的信息素量。
本实施例中,在***中,事务被识别并构建成依赖图。每个事务作为图中的一个节点,事务之间的依赖关系形成图中的有向边。依赖边可以是数据依赖,即一个事务的执行依赖于另一个事务的输出数据,也可以是控制依赖,即一个事务的执行受到另一个事务执行的影响,或其它依赖。事务之间的执行关联性也包括数据关联、控制关联等。事务度量属性包括节点事务资源利用率、节点事务执行时间、节点事务优先级、节点事务等待时间等属性。依赖图用于表示事务之间的依赖关系,而蚁群算法用来模拟事务的调度行为,蚂蚁所走的路径图并不是指依赖图,而是指蚁群算法中蚂蚁群体在搜索空间中选择路径的过程。
进一步的,所述基于数据库中事务之间的执行关联性构建依赖图,包括:基于所述数据库中的每个事务建立一个对应的节点;基于每个所述节点对应的事务之间的数据流动关系、时间戳信息、价值信息、提交顺序,确定各个节点之间的边,所述边用于表示各个节点之间的关联性。
进一步的,所述基于每个所述节点对应的事务之间的数据流动关系、时间戳信息、价值信息、提交顺序,确定各个节点之间的边,具体为:通过记录数据来源、数据去向和版本信息标记对应节点之间的数据依赖关系R1:通过记录事务或数据的时间戳信息标记对应节点之间的控制依赖关系R2:通过记录事务价值信息标记对应节点之间的事务优先级依赖关系R3:通过记录事务提交顺序标记对应节点之间的并行执行关系R4。
进一步的,所述基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量,包括:确定数据依赖关系R1对应的数据权重D1、控制依赖关系R2对应的控制权重D2、事务优先级依赖关系R3对应的优先权重D3、并行执行关系R4对应的并行权重D4;基于初始信息素量、信息素蒸发系数、所述相邻两节点之间的依赖关系和各个所述依赖关系对应的权重,确定所述相邻两节点对应的边的信息素量。
进一步的,所述基于所述依赖图各个节点对应事务的事务属性确定各个节点的启发式信息,包括:确定所述事务属性中各个属性对应的属性启发式信息;确定所述各个属性启发式信息对应的权重;基于所述各个属性启发式信息和所述权重确定所述事务的启发式信息;基于所述事务的启发式信息、所述各个属性启发式信息的最大值和最小值确定启发式信息映射值,所述启发式信息映射值作为所述相邻节点之间的启发式信息。
进一步的,所述各个节点对应的事务属性包括:节点事务资源利用率、节点事务执行时间、节点事务优先级、节点事务等待时间。
进一步的,所述基于蚁群的行为模型按照所述依赖图执行所述数据库中的事务,并更新所述依赖图上各个边上的信息素,具体为:基于所述依赖图中的各个节点的启发式信息和各个边的信息素量,模拟蚁群并发执行数据库中的事务;基于执行事务的完成质量更新所述执行事务对应的边的信息素量。
进一步的,所述基于执行事务的完成质量更新所述执行事务对应的边的信息素量,所采用的公式为:
是信息素的蒸发速率,用于控制信息素的挥发和降低信息素量;/>是蚂蚁k通过边(i, j)的信息素增量,所述信息素增量与蚂蚁k的调度方案质量有关。
具体实施例2:
基于依赖图的多核CPU并发事务分配方法旨在最大程度地提高数据并发性和数据库***性能,通过识别和解决事务之间的依赖关系来合理安排调度。这样的方法有助于避免数据库事务之间的资源竞争、减少了上下文切换,并尽可能地将核心的计算资源用于有效的并行计算。以下是一种基于依赖图的多核CPU并发事务分配方法的具体实施例:
第一步、依赖图的构建:
在***中,事务被识别并构建成依赖图。每个事务作为图中的一个节点,事务之间的依赖关系形成图中的有向边(以下称为依赖边、有向边或边)。依赖边连接事务节点,表示事务之间的依赖关系。依赖边可以是数据依赖,即一个事务的执行依赖于另一个事务的输出数据,也可以是控制依赖,即一个事务的执行受到另一个事务执行的影响,或其它依赖。
建立依赖图:首先,将多核CPU的事务表示成一个有向无环图(DAG)。
它是由一组顶点和有向边组成的图,其中每条边都有一个方向,且不存在形成环的路径。也就是说,在DAG中,从任意一个顶点出发沿着有向边的方向最终不能回到起点,不会形成回路或环路,同时避免事务死锁或循环依赖。
1、通过记录数据来源和数据去向及版本等信息标记数据依赖关系R1:
(1)读写依赖关系(Read-Write Dependencies):如果一个事务读取了另一个事务写入的数据,就存在读写依赖关系。这种依赖关系需要特别考虑,以保证数据的一致性。
(2)写写依赖关系(Write-Write Dependencies):如果两个事务都写入了相同的数据项,就存在写写依赖关系。这可能导致数据冲突和竞争条件,需要合理地调度事务的执行顺序。
(3)读读依赖关系(Read-Read Dependencies):如果两个事务都读取入了相同的数据项,就存在读读依赖关系。
2、通过记录事务或数据的时间戳信息标记控制依赖关系R2:
(4)控制流依赖:一个事务的执行顺序受到另一个事务执行顺序的影响。例如,一个事务的执行分支取决于另一个事务的执行结果,或者一个事务在另一个事务执行之前必须等待。
(5)等待依赖:一个事务在执行过程中等待另一个事务的完成,以便继续执行。例如,一个事务需要等待另一个事务的锁释放才能继续执行。
(6)先趋依赖:一个事务的执行必须在另一个事务之前发生。例如,一个事务是另一个事务的前驱事务,必须先完成才能执行后续的事务。
3、通过记录事务价值信息标记事务优先级依赖关系R3:
(7)优先级标记:在数据库***中,可以为事务设置不同的优先级标记,优先级高的事务会被优先调度执行。
4、通过记录事务提交顺序可以标记并行执行关系R4:
(8)并行执行关系:两个事务可以同时执行,并且彼此之间没有依赖关系。在有向图中,可以通过添加没有有向边连接的独立事务节点来表示。
第二步、依赖图分析:
分析依赖图,利用事务之间的有向边确定事务之间的依赖关系。
(1)依赖图表示:首先,将数据库中的事务表示为依赖图的节点。每个事务可以是一个节点,或者如果一个事务被拆分为多个子任务,则每个子任务也可以是一个节点。事务之间的依赖关系用边来表示。
(2)数据依赖分析:分析事务之间的数据依赖关系。数据依赖表示一个任务需要另一个任务的输出数据作为输入数据。在依赖图中,如果节点 A 有一条有向边指向节点 B,那么节点 B 依赖于节点 A,表示任务 B 需要任务 A 的输出数据。通过分析边的指向,可以确定数据依赖关系。
(3)控制依赖分析:分析任务之间的控制依赖关系。控制依赖表示一个任务的执行受到另一个任务执行的影响。例如,如果任务 A 是任务 B 的前驱任务,那么任务 B 的执行必须在任务 A 执行后才能开始。通过分析任务之间的先后关系,可以确定控制依赖关系。
(4)优先级分配:根据依赖图的分析结果,为每个任务或节点分配优先级,用于指示任务的执行重要性和实时性要求。
(5)并行执行可能性分析:根据事务之间的依赖关系,确定是否有可能并行执行一些事务。如果两个事务之间不存在数据依赖和控制依赖,那么它们可以在多核CPU上并行执行。识别哪些事务可以并发执行,即无关联事务或并行执行事务。
第三步、事务调度:
蚁群算法(Ant Colony Optimization, ACO)是一种模拟蚂蚁群体寻找食物路径的优化算法,在多核CPU事务调度中,蚁群算法可以帮助找到一组最优的事务并发调度分配方案,蚂蚁在蚁群算法中的行为可以对应于事务的执行顺序。蚁群算法模拟了蚂蚁在搜索空间中释放信息素并根据信息素量和启发式信息来做出决策的过程。在多核CPU事务调度中,可以使用类似的方法来模拟蚂蚁在依赖图上搜索最优调度方案,以最大程度地提高CPU利用率和***性能。但是现有的蚁群算法多用于路径规划的研究。现有技术中并没有直接将蚁群算法直接应用于数据库事务分配的应用。为此,本发明提出一种改进的蚁群算法,具体内容如下:
在多核CPU事务调度中,依赖图可以看作是一个有向无环图(DAG),事务集合E={S1,S2,S3,S4,S5,S6,…,Sn},W包含事务间的依赖关系,事务依赖关系集合为W={R1,R2,R3,R4}。
改进蚁群算法在多核CPU事务调度中的应用过程如下:
信息素表示: 将依赖图中的边视为路径,将信息素量与边相关联。信息素代表着路径的质量或适应度,通常可以初始化为一个较小的正值,在本方法中,信息素采用步骤一所建立的依赖图的依赖关系进行衡量,如数据依赖R1、控制依赖R2、事务优先级依赖R3、并行执行依赖R4。
1)定义边的信息素量:
假设有一条边e连接节点i和节点j,信息素量表示为τ(i, j)。
2)考虑依赖关系对信息素量的影响:通过依赖关系关系确定信息素量
依赖关系包括数据依赖R1、控制依赖R2、事务优先级依赖R3、并行执行依赖R4,以及它们对应的权重为D1、D2、D3、D4。那么可以通过加权和的方式将依赖关系的影响结合到信息素量中,公式如下:
其中,τ0(i, j)是初始信息素量,是信息素蒸发系数,R1(i, j)、R2(i, j)、R3 (i, j)、R4(i, j)分别代表不同依赖关系的影响值。
(2)蚂蚁行为模拟: 模拟多只蚂蚁在依赖图上的移动和选择路径的过程。每个蚂蚁根据信息素量和启发式信息选择下一个要执行的事务,直到所有事务都被调度。创建一群蚂蚁,并让它们模拟在依赖图上的移动和路径选择过程。每只蚂蚁都从一个起始节点开始,然后根据信息素量和启发式信息选择下一个要执行的节点。蚂蚁按照选择执行事务,直到所有的事务都被调度。这一步中,蚂蚁的选择策略可以使用蚁群算法的公式来决定。蚂蚁在选择下一个节点时,可以使用概率方式,根据信息素量和启发式信息来进行决策。通常情况下,蚂蚁在节点i上选择下一个节点j的概率可以由以下公式计算:
此公式即为路径选择概率公式。蚂蚁在选择下一个要执行的事务时,根据信息素量和启发式信息来计算路径选择的概率,其中:
表示蚂蚁从节点i选择节点j的概率。
表示边(i, j)上的信息素量。
是调节信息素和启发式信息在选择中的权重的参数。
表示启发式信息,使用问题特定的指标进行计算。
为启发式信息映射值。
表示蚂蚁k未访问过的节点集合。
(3)启发式信息:启发式信息帮助蚂蚁在没有信息素引导的情况下,选择可能更有希望的路径。考虑多核cpu并发事务分配方法最主要的影响因素是节点事务资源利用率、节点事务执行时间、节点事务优先级、节点事务等待时间,随着蚂蚁的搜索过程进行更新,以更好地指导路径的选择。
1)节点事务资源利用率:如果节点i和节点j共享相同的资源(例如共享缓存、共享内存等),则节点i的执行可能会影响到节点j的性能,从而影响的取值。
2)节点事务执行时间:节点i上的事务执行时间会影响其他节点上事务的调度情况。较长的执行时间可能会导致更多的依赖节点等待,从而影响的取值。
3)节点事务优先级:某些事务可能具有更高的优先级,需要尽早得到执行。优先级较高的事务对应的节点可能会成为其他节点的依赖对象,从而影响的取值。
4)节点事务等待时间:节点i上的事务等待时间的占比会影响其他节点上事务的等待时间。较长的等待时间可能会导致更多的节点等待资源,总等待时间增加,从而影响的取值。
进一步的,基于节点资源利用率:
=资源利用率Ui/资源总量U
其中,资源利用率Ui表示节点i当前已分配的事务所占用的资源比例,资源总量表示总资源容量。这个公式表示节点i的资源利用率越高,越大,表示节点i的资源对节点的影响程度较大,这条路径更有吸引力。
基于事务执行时间:
=1-(事务执行时间Ti/最大事务执行时间T)
其中,事务执行时间Ti表示节点i上执行事务所需的时间,最大事务执行时间表示所有事务中最长的执行时间,如果事务i在节点i上执行所需时间较短,值较大,表示节点i的执行时间对节点的影响程度较大,这条路径更有吸引力。
基于事务的优先级:
=事务优先级Pi / 最高优先级P
其中,优先级Pi表示事务i的优先级,最高优先级表示所有事务中最高的优先级。表示优先级较高的事务对应的节点i对节点的影响程度较大,值较大,其对蚂蚁更具吸引力。
基于事务等待时间:
=1-(事务等待时间Wi / 最大事务等待时间W)
其中,最大事务等待时间W表示所有事务中最长的等待时间。若节点i上的事务等待时间较短, 值较大,表示节点i的等待时间对节点的影响程度较大,该路径更有吸引力。
其中,H1,H2,H3,H4分别是影响因素的权重
由于不同因素的量纲可能不同,直接将它们结合在一起可能会导致值域差异较大。为了确保它们在蚁群算法中对决策的影响是合理的,可以对进行归一化,将其映射到一个相同的范围内。
使用线性归一化方法将映射到[0, 1]范围内:
其中, 是所有/>中的最小值,/>是所有/>中的最大值。这样,所有的/>值都在[0, 1]之间,确保了它们具有相同的量纲和权重处理的效果。
这样,蚂蚁在选择下一个节点时,会同时考虑信息素量和启发式信息,并基于概率进行选择。
(4)信息素更新:当所有蚂蚁完成一次迭代后,根据调度方案的质量,更新信息素量。通常,更优秀的调度方案会释放更多的信息素。
其中:
是信息素的蒸发速率,用于控制信息素的挥发和降低信息素量。
是蚂蚁k通过边(i, j)的信息素增量,通常与蚂蚁k的调度方案质量有关。
在信息素更新过程中,较好的调度方案会释放更多的信息素到相关的边上,从而增强这些边被蚂蚁选择的可能性。
(4)重复迭代: 重复执行蚂蚁的行为模拟和信息素更新过程,直到满足最大迭代次数K。
(5)选择最优解: 在多次迭代后,从蚂蚁的行为中得到多个调度方案,其中。F为常量,Lk表示蚂蚁所走过的路径质量,通过对比从中选择最优解,最终获得/>集代表在迭代中蚂蚁群体所找到的最优的并发事务分配方案,即具有最好性能的调度方案作为最终结果。
第四步、执行并进行依赖关系跟踪更新:
采用蚁群算法在多核CPU上执行并行事务分配,可以获得最优的调度组,从而最大限度地提高***性能。在调度组执行过程中,跟踪依赖关系的满足情况。如果某个调度组的依赖关系无法满足,可能需要暂停该事务组的执行,直到依赖关系得到满足。
通过多只蚂蚁的并行行动,蚁群算法可以更好地利用多核CPU的并行性能。每只蚂蚁相当于一个并行执行单元,可以独立地探索不同的调度方案,从而加速搜索过程。同时,蚁群算法的并行性也有助于避免陷入局部最优解,增加算法搜索全局最优解的可能性和自适应性。蚁群算法通过对资源利用率高、事务执行时间少、事务优先级高、事务等待时间短进行优化,选择出最优的路径解,提高多核CPU并发事务的执行效率。
具体实施例3:
第二方面,本发明还提供一种基于依赖图的多核CPU并发事务分配***,所述***包括:依赖图模块、信息素量模块、启发式信息模块、更新模块;
所述依赖图模块用于,基于数据库中事务之间的执行关联性构建依赖图,所述数据库中的每个事务作为图中的一个节点,事务之间的依赖关系形成图中的有向边;
所述信息素量模块用于,基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量;
所述启发式信息模块用于,基于所述依赖图各个节点对应事务的事务属性确定各个节点的启发式信息;
所述更新模块用于,基于蚁群的行为模型按照所述依赖图执行所述数据库中的事务,并更新所述依赖图上各个边上的信息素。
优选的,所述依赖图模块具体用于:基于所述数据库中的每个事务建立一个对应的节点;
基于每个所述节点对应的事务之间的数据流动关系、时间戳信息、价值信息、提交顺序,确定各个节点之间的边,所述边用于表示各个节点之间的关联性。
优选的,所述依赖图模块还用于:通过记录数据来源、数据去向和版本信息标记对应节点之间的数据依赖关系R1:
通过记录事务或数据的时间戳信息标记对应节点之间的控制依赖关系R2:
通过记录事务价值信息标记对饮节点之间的事务优先级依赖关系R3:
通过记录事务提交顺序标记对应节点之间的并行执行关系R4。
优选的,所述信息素量模块用于:确定数据依赖关系R1对应的数据权重D1、控制依赖关系R2对应的控制权重D2、事务优先级依赖关系R3对应的优先权重D3、并行执行关系R4对应的并行权重D4;
基于初始信息素量、信息素蒸发系数、所述相邻两节点之间的依赖关系和各个所述依赖关系对应的权重,确定所述相邻两节点对应的边的信息素量。
优选的,所述启发式信息模块用于:确定所述事务属性中各个属性对应的属性启发式信息;
确定所述各个属性启发式信息对应的权重;
基于所述各个属性启发式信息和所述权重确定所述事务的启发式信息;
基于所述事务的启发式信息、所述各个属性启发式信息的最大值和最小值确定启发式信息映射值,所述启发式信息映射值作为所述相邻节点之间的启发式信息。
优选的,所述各个节点对应的事务属性包括:节点事务资源利用率、节点事务执行时间、节点事务优先级、节点事务等待时间。
优选的,所述更新模块用于:基于所述依赖图中的各个节点的启发式信息和各个边的信息素量,模拟蚁群并发执行数据库中的事务;
基于执行事务的完成质量更新所述执行事务对应的边的信息素量。
优选的,所述基于执行事务的完成质量更新所述执行事务对应的边的信息素量,所采用的公式为:
是信息素的蒸发速率,用于控制信息素的挥发和降低信息素量。
是蚂蚁k通过边(i, j)的信息素增量,所述信息素增量与蚂蚁k的调度方案质量有关。
具体实施例4:
第三方面,本发明还提供一种数据库,所述数据库中设置有存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器内的计算机程序以执行如下步骤:
基于数据库中事务之间的执行关联性构建依赖图,所述数据库中的每个事务作为图中的一个节点,事务之间的依赖关系形成图中的有向边;
基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量;
基于所述依赖图各个节点对应事务的事务属性确定各个节点的启发式信息;
基于蚁群的行为模型按照所述依赖图执行所述数据库中的事务,并更新所述依赖图上各个边上的信息素。
进一步的,所述基于数据库中事务之间的执行关联性构建依赖图,包括:
基于所述数据库中的每个事务建立一个对应的节点;
基于每个所述节点对应的事务之间的数据流动关系、时间戳信息、价值信息、提交顺序,确定各个节点之间的边,所述边用于表示各个节点之间的关联性。
进一步的,所述基于每个所述节点对应的事务之间的数据流动关系、时间戳信息、价值信息、提交顺序,确定各个节点之间的边,具体为:
通过记录数据来源、数据去向和版本信息标记对应节点之间的数据依赖关系R1:
通过记录事务或数据的时间戳信息标记对应节点之间的控制依赖关系R2:
通过记录事务价值信息标记对应节点之间的事务优先级依赖关系R3:
通过记录事务提交顺序标记对应节点之间的并行执行关系R4。
进一步的,所述基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量,包括:
确定数据依赖关系R1对应的数据权重D1、控制依赖关系R2对应的控制权重D2、事务优先级依赖关系R3对应的优先权重D3、并行执行关系R4对应的并行权重D4;
基于初始信息素量、信息素蒸发系数、所述相邻两节点之间的依赖关系和各个所述依赖关系对应的权重,确定所述相邻两节点对应的边的信息素量。
进一步的,所述基于所述依赖图各个节点对应事务的事务属性确定各个节点的启发式信息,包括:
确定所述事务属性中各个属性对应的属性启发式信息;
确定所述各个属性启发式信息对应的权重;
基于所述各个属性启发式信息和所述权重确定所述事务的启发式信息;
基于所述事务的启发式信息、所述各个属性启发式信息的最大值和最小值确定启发式信息映射值,所述启发式信息映射值作为所述相邻节点之间的启发式信息。
进一步的,所述各个节点对应的事务属性包括:节点事务资源利用率、节点事务执行时间、节点事务优先级、节点事务等待时间。
进一步的,所述基于蚁群的行为模型按照所述依赖图执行所述数据库中的事务,并更新所述依赖图上各个边上的信息素,具体为:
基于所述依赖图中的各个节点的启发式信息和各个边的信息素量,模拟蚁群并发执行数据库中的事务;
基于执行事务的完成质量更新所述执行事务对应的边的信息素量。
进一步的,所述基于执行事务的完成质量更新所述执行事务对应的边的信息素量,所采用的公式为:
是信息素的蒸发速率,用于控制信息素的挥发和降低信息素量。
是蚂蚁k通过边(i, j)的信息素增量,所述信息素增量与蚂蚁k的调度方案质量有关。/>
Claims (10)
1.一种基于依赖图的多核CPU并发事务分配方法,其特征在于,所述方法包括:
基于数据库中事务之间的执行关联性构建依赖图,所述数据库中的每个事务作为图中的一个节点,事务之间的依赖关系形成图中的有向边;
基于所述依赖图中相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量;
基于所述依赖图各个节点对应事务的事务度量属性确定各个节点的启发式信息;
基于所述信息素量和所述启发式信息,通过蚁群的行为模型和依赖图中执行所述数据库中的事务,并根据执行结果更新所述依赖图上各个边的信息素量。
2.如权利要求1所述的一种基于依赖图的多核CPU并发事务分配方法,其特征在于,所述基于数据库中事务之间的执行关联性构建依赖图,包括:
基于所述数据库中的每个事务建立一个对应的节点;
基于每个所述节点对应的事务之间的数据流动关系、时间戳信息、价值信息、提交顺序,确定各个节点之间的边,所述边用于表示各个节点之间的关联性。
3.如权利要求2所述的一种基于依赖图的多核CPU并发事务分配方法,其特征在于,所述基于每个所述节点对应的事务之间的数据流动关系、时间戳信息、价值信息、提交顺序,确定各个节点之间的边,具体为:
通过记录数据来源、数据去向和版本信息标记对应节点之间的数据依赖关系R1:
通过记录事务或数据的时间戳信息标记对应节点之间的控制依赖关系R2:
通过记录事务价值信息标记对应节点之间的事务优先级依赖关系R3:
通过记录事务提交顺序标记对应节点之间的并行执行关系R4。
4.如权利要求1所述的一种基于依赖图的多核CPU并发事务分配方法,其特征在于,所述基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量,包括:
确定数据依赖关系R1对应的数据权重D1、控制依赖关系R2对应的控制权重D2、事务优先级依赖关系R3对应的优先权重D3、并行执行关系R4对应的并行权重D4;
基于初始信息素量、信息素蒸发系数、所述相邻两节点之间的依赖关系和各个所述依赖关系对应的权重,确定所述相邻两节点对应的边的信息素量。
5.如权利要求1所述的一种基于依赖图的多核CPU并发事务分配方法,其特征在于,所述基于所述依赖图各个节点对应事务的事务属性确定各个节点的启发式信息,包括:
确定所述事务属性中各个属性对应的属性启发式信息;
确定所述各个属性启发式信息对应的权重;
基于所述各个属性启发式信息和所述权重确定所述事务的启发式信息;
基于所述事务的启发式信息、所述各个属性启发式信息的最大值和最小值确定启发式信息映射值,所述启发式信息映射值作为相邻节点之间的启发式信息。
6.如权利要求5所述的一种基于依赖图的多核CPU并发事务分配方法,其特征在于,所述各个节点对应的事务属性包括:节点事务资源利用率、节点事务执行时间、节点事务优先级、节点事务等待时间。
7.如权利要求1所述的一种基于依赖图的多核CPU并发事务分配方法,其特征在于,所述基于蚁群的行为模型按照所述依赖图执行所述数据库中的事务,并更新所述依赖图上各个边上的信息素,具体为:
基于所述依赖图中的各个节点的启发式信息和各个边的信息素量,模拟蚁群并发执行数据库中的事务;
基于执行事务的完成质量更新所述执行事务对应的边的信息素量。
8.如权利要求7所述的一种基于依赖图的多核CPU并发事务分配方法,其特征在于,所述基于执行事务的完成质量更新所述执行事务对应的边的信息素量,所采用的公式为:
;
是信息素的蒸发速率,用于控制信息素的挥发和降低信息素量;
是蚂蚁k通过边(i, j)的信息素增量,所述信息素增量与蚂蚁k的调度方案质量有关。
9.一种基于依赖图的多核CPU并发事务分配***,其特征在于,所述***包括:依赖图模块、信息素量模块、启发式信息模块、更新模块;
所述依赖图模块用于,基于数据库中事务之间的执行关联性构建依赖图,所述数据库中的每个事务作为图中的一个节点,事务之间的依赖关系形成图中的有向边;
所述信息素量模块用于,基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量;
所述启发式信息模块用于,基于所述依赖图各个节点对应事务的事务属性确定各个节点的启发式信息;
所述更新模块用于,基于所述信息素量和所述启发式信息,通过蚁群的行为模型和依赖图中执行所述数据库中的事务,并根据执行结果更新所述依赖图上各个边的信息素量。
10.一种数据库,其特征在于,所述数据库中设置有存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器内的计算机程序以执行如下步骤:
基于数据库中事务之间的执行关联性构建依赖图,所述数据库中的每个事务作为图中的一个节点,事务之间的依赖关系形成图中的有向边;
基于所述依赖图相邻两节点之间的依赖关系确定所述相邻两节点对应的边的信息素量;
基于所述依赖图各个节点对应事务的事务属性确定各个节点的启发式信息;
基于所述信息素量和所述启发式信息,通过蚁群的行为模型和依赖图中执行所述数据库中的事务,并根据执行结果更新所述依赖图上各个边的信息素量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311056907.5A CN116775315B (zh) | 2023-08-22 | 2023-08-22 | 一种基于依赖图的多核cpu并发事务分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311056907.5A CN116775315B (zh) | 2023-08-22 | 2023-08-22 | 一种基于依赖图的多核cpu并发事务分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116775315A true CN116775315A (zh) | 2023-09-19 |
CN116775315B CN116775315B (zh) | 2024-01-02 |
Family
ID=87991642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311056907.5A Active CN116775315B (zh) | 2023-08-22 | 2023-08-22 | 一种基于依赖图的多核cpu并发事务分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116775315B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120455A1 (en) * | 2006-11-20 | 2008-05-22 | Microsoft Corporation | Lightweight transactional memory for data parallel programming |
CN105487920A (zh) * | 2015-10-12 | 2016-04-13 | 沈阳工业大学 | 基于蚁群算法的多核***实时任务调度的优化方法 |
CN106844049A (zh) * | 2017-01-13 | 2017-06-13 | 广西电网有限责任公司电力科学研究院 | 一种分布式计算***的任务分配方法 |
CN109033301A (zh) * | 2018-07-16 | 2018-12-18 | 中国科学技术大学 | 一种基于图形处理器的数据库事务执行方法 |
CN109684083A (zh) * | 2018-12-11 | 2019-04-26 | 北京工业大学 | 一种面向边缘-云异构下的多级事务调度分配策略 |
CN115629822A (zh) * | 2022-11-09 | 2023-01-20 | 深圳计算科学研究院 | 一种基于多核处理器的并发事务处理方法及其*** |
CN116303495A (zh) * | 2023-02-24 | 2023-06-23 | 陈晓帆 | 一种支持并行更新的数据库***及方法 |
-
2023
- 2023-08-22 CN CN202311056907.5A patent/CN116775315B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120455A1 (en) * | 2006-11-20 | 2008-05-22 | Microsoft Corporation | Lightweight transactional memory for data parallel programming |
CN105487920A (zh) * | 2015-10-12 | 2016-04-13 | 沈阳工业大学 | 基于蚁群算法的多核***实时任务调度的优化方法 |
CN106844049A (zh) * | 2017-01-13 | 2017-06-13 | 广西电网有限责任公司电力科学研究院 | 一种分布式计算***的任务分配方法 |
CN109033301A (zh) * | 2018-07-16 | 2018-12-18 | 中国科学技术大学 | 一种基于图形处理器的数据库事务执行方法 |
CN109684083A (zh) * | 2018-12-11 | 2019-04-26 | 北京工业大学 | 一种面向边缘-云异构下的多级事务调度分配策略 |
CN115629822A (zh) * | 2022-11-09 | 2023-01-20 | 深圳计算科学研究院 | 一种基于多核处理器的并发事务处理方法及其*** |
CN116303495A (zh) * | 2023-02-24 | 2023-06-23 | 陈晓帆 | 一种支持并行更新的数据库***及方法 |
Non-Patent Citations (1)
Title |
---|
顾昕: ""分布式流式计算框架关键技术的研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 140 - 396 * |
Also Published As
Publication number | Publication date |
---|---|
CN116775315B (zh) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Park et al. | 3sigma: distribution-based cluster scheduling for runtime uncertainty | |
Arabnejad et al. | List scheduling algorithm for heterogeneous systems by an optimistic cost table | |
US8788986B2 (en) | System and method for capacity planning for systems with multithreaded multicore multiprocessor resources | |
US7957948B2 (en) | System and method for capacity planning for systems with multithreaded multicore multiprocessor resources | |
US8671409B2 (en) | Scheduling method and system, corresponding computational grid and computer program product | |
CN115168027B (zh) | 一种基于深度强化学习的算力资源度量方法 | |
CN115330189A (zh) | 一种基于改进飞蛾火焰算法的工作流优化调度方法 | |
Nadeem et al. | Optimizing execution time predictions of scientific workflow applications in the grid through evolutionary programming | |
CN114662932A (zh) | 一种节点分级的工作流类定时任务调度方法 | |
Naghshnejad et al. | A hybrid scheduling platform: a runtime prediction reliability aware scheduling platform to improve hpc scheduling performance | |
Liang et al. | Parallel optimization of QoS-aware big service processes with discovery of skyline services | |
Desprez et al. | A bi-criteria algorithm for scheduling parallel task graphs on clusters | |
CN116775315B (zh) | 一种基于依赖图的多核cpu并发事务分配方法 | |
CN114860417B (zh) | 多核神经网络处理器及用于该处理器多任务分配调度方法 | |
Ghorbian et al. | A survey on the scheduling mechanisms in serverless computing: a taxonomy, challenges, and trends | |
Tang et al. | A network load perception based task scheduler for parallel distributed data processing systems | |
CN116932198A (zh) | 资源调度方法、装置、电子设备及可读存储介质 | |
Zhu et al. | A heuristic multi-objective task scheduling framework for container-based clouds via actor-critic reinforcement learning | |
Bacsó et al. | On efficiency of multi-job grid allocation based on statistical trace data | |
Chen et al. | A scheduling algorithm for heterogeneous computing systems by edge cover queue | |
El Danaoui et al. | A Cost-Effective Query Optimizer for Multi-tenant Parallel DBMSs | |
Flint et al. | Automated prioritizing heuristics for parallel task graph scheduling in heterogeneous computing | |
Ghose et al. | FGFS: Feature Guided Frontier Scheduling for SIMT DAGs | |
Khan et al. | Architectural support for task scheduling: hardware scheduling for dataflow on NUMA systems | |
He | Scheduling in Mapreduce Clusters |
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 |