CN110147268A - 处理并发事务的方法、装置、并发控制系统及存储介质 - Google Patents

处理并发事务的方法、装置、并发控制系统及存储介质 Download PDF

Info

Publication number
CN110147268A
CN110147268A CN201910307348.8A CN201910307348A CN110147268A CN 110147268 A CN110147268 A CN 110147268A CN 201910307348 A CN201910307348 A CN 201910307348A CN 110147268 A CN110147268 A CN 110147268A
Authority
CN
China
Prior art keywords
affairs
node
digraph
vector
committed
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
Application number
CN201910307348.8A
Other languages
English (en)
Other versions
CN110147268B (zh
Inventor
刘雷波
李兆石
魏少军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Research Institute of Applied Technologies of Tsinghua University
Original Assignee
Wuxi Research Institute of Applied Technologies of Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Research Institute of Applied Technologies of Tsinghua University filed Critical Wuxi Research Institute of Applied Technologies of Tsinghua University
Priority to CN201910307348.8A priority Critical patent/CN110147268B/zh
Publication of CN110147268A publication Critical patent/CN110147268A/zh
Priority to US16/680,595 priority patent/US10956397B2/en
Application granted granted Critical
Publication of CN110147268B publication Critical patent/CN110147268B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种处理并发事务的方法、装置、并发控制系统及存储介质。该方法包括:判断并发事务集合的二维有向图是否具有环状结构,其中所述并发事务集合包括一个待提交的事务与至少一个已提交的事务,所述二维有向图的各个节点与所述并发事务集合中的各个事务一一对应,以及所述二维有向图的各个节点之间的有向边用于表示所述并发事务集合中的各个事务之间的可串行化关系;若所述二维有向图具有环状结构,放弃提交所述待提交的事务;若所述二维有向图不具有环状结构,提交所述待提交的事务。本发明实施例能够提高并发系统的性能。

Description

处理并发事务的方法、装置、并发控制系统及存储介质
技术领域
本发明涉及事务处理领域,更具体地,涉及一种处理并发事务的方法、装置、并发控制系统及存储介质。
背景技术
在数据库及事务内存(Transactional Memory)等并发控制系统中,以事务作为调度的基本单位。在实际的并发控制系统设计中,会对事务添加更严格的正确性条件。编程语言通常将这些正确性条件称为语义。对人类最直观的语义是可串行化(Serialization),并发控制算法的目标就是形成一个可串行化的事务调度表。
现有的并发控制算法主要包括两大类:(1)悲观并发控制(PessimisticConcurrency Control)算法,一般采用基于锁协议的并发控制机制。如果用户执行的操作申请了某个锁,则直到这个锁的所有者释放该锁,其它用户才能执行与该锁冲突的操作。悲观并发控制算法导致大量的事务被舍弃,因此并发性能较差。(2)乐观并发控制(Optimistic Concurrency Control)算法,在执行每个事务时先乐观地假设它访问到的数据未被其它并发事务修改过。待事务执行结束后,再验证每个事务是否符合该假设。因而,乐观并发控制算法不需锁定数据。相较悲观控制算法而言,使用乐观并发控制算法的系统有着更好的并发性能。
在现有的乐观并发控制算法中,为了独立验证每个事务的可串行化,需要添加额外的约束,这使得最终得到的语义比可串行化语义的约束更强。因而,会导致一些原本可以提交的事务被舍弃,降低了系统的并发性能。
发明内容
为解决现有技术中的上述问题,本发明实施例提出一种处理并发事务的方法、装置及并发控制系统,能够避免现有乐观并发控制算法中过度约束的问题,降低了事务的舍弃率,提高了并发系统的性能。
本发明的一个方面提供了一种处理并发事务的方法。该方法包括:判断并发事务集合的二维有向图是否具有环状结构,其中所述并发事务集合包括一个待提交的事务与至少一个已提交的事务,所述二维有向图的各个节点与所述并发事务集合中的各个事务一一对应,以及所述二维有向图的各个节点之间的有向边用于表示所述并发事务集合中的各个事务之间的可串行化关系;若所述二维有向图具有环状结构,放弃提交所述待提交的事务;若所述二维有向图不具有环状结构,提交所述待提交的事务。
本发明的另一方面提供了一种处理并发事务的装置。该装置包括:确定单元,用于判断并发事务集合的二维有向图是否具有环状结构,其中所述并发事务集合包括一个待提交的事务与至少一个已提交的事务,所述二维有向图的各个节点与所述并发事务集合中的各个事务一一对应,以及所述二维有向图的各个节点之间的有向边用于表示所述并发事务集合中的各个事务之间的可串行化关系;处理单元,用于在所述二维有向图具有环状结构时,放弃提交所述待提交的事务,以及在所述二维有向图不具有环状结构时,提交所述待提交的事务。
本发明的另一方面提供了一种处理并发事务的并发控制系统。该系统包括:一个或多个处理器;存储器,用于存储一个或多个程序。其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行以上处理并发事务的方法。
本发明的另一方面提供了一种计算机可读存储介质,该计算机可读存储介质上存储有可执行上述方法的指令。
附图说明
为了更完整地理解本发明及其优势,现在将参考结合附图的以下描述,其中:
图1为根据本发明一个实施例的处理并发事务的方法的示意性流程图;
图2a为根据本发明一个实施例的并发事务集合的二维有向图;
图2b为根据本发明另一实施例的并发事务集合的二维有向图;
图2c为根据本发明另一实施例的并发事务集合的二维有向图;
图3a为根据本发明一个实施例的判断二维有向图是否具有环状结构的示意性流程图;
图3b为根据本发明一个实施例的更新后的可到达性关系矩阵的示意图;
图4为根据本发明一个实施例的处理并发事务的装置的示意性框图;
图5为根据本发明一个实施例的并发控制系统的示意性框图。
具体实施方式
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。另外,本发明以下提供的各个实施例以及实施例中的技术特征可以以任意方式相互组合。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本发明的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本发明的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本发明的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
在多个线程同步访问同一数据时,可能会出现访问冲突问题。例如,假设线程1与线程2是并行执行的两个线程。线程1读取地址addr1中的数据,线程2向地址addr1写入数据,如果这两个操作实际发生的顺序不同,可能会导致不同的执行结果。或者,当线程1与线程2均向地址addr1写入数据时,不同的写入顺序也将导致不同的执行结果。因此在两个线程访问或改变同一数据条目时,需要执行并发控制以确保数据的有效性或者内存的一致性。
在数据库及事务内存等并发控制系统中,以事务作为基本的调度单位,根据并发控制算法形成的串行化调度表对事务进行调度。可串行化是指多个事务并发执行的结果应该等价于按照某一顺序依次串行执行这些事务的结果。在乐观并发控制算法中,先乐观地假设事务访问到的数据未被其它并发事务修改过,待执行结束后再根据可串行化语义验证是否符合该假设。如果不符合该假设,需要舍弃该事务。如果符合该假设,再提交(commit)该事务的执行结果。
现有的乐观并发控制算法有着过强的约束语义,使得事务的舍弃率升高,因而降低了系统的并发性能。在现有的乐观并发控制算法的基础上,本发明提出一种处理并发事务的方法、装置及并发控制系统,使用二维有向图表示并发事务集合中各个事务之间的可串行化关系,进而根据二维有向图的结构来决定是否提交待提交的事务。根据本发明实施例的技术方案,能够避免现有乐观并发控制算法中过度约束的问题,降低了事务的舍弃率。因而,本发明实施例能够提高并发系统的性能。
应理解的是,数据库及事务内存仅是并发控制系统的两个示例。本发明实施例不限于数据库及事务内存两种并发控制场景,还可以用于其他并发控制系统的事务处理。
图1为根据本发明一个实施例的处理并发事务的方法的示意性流程图。如图1所示,该方法包括操作S101、操作S102和操作S103。
在操作S101中,判断并发事务集合的二维有向图是否具有环状结构。其中,所述并发事务集合包括一个待提交的事务与至少一个已提交的事务。所述二维有向图的各个节点与所述并发事务集合中的各个事务一一对应,以及所述二维有向图的各个节点之间的有向边用于表示所述并发事务集合中的各个事务之间的可串行化关系。
一个事务通常包含一系列的读写操作。按照事务的定义,事务需要具有原子性和隔离性。原子性是指一个事务中所有的读写操作要么全部提交,要么全部舍弃。隔离性是指并发的事务之间互不影响。并发控制的过程中,需要根据各个事务所包含的读写操作来确定事务之间的可串行化关系,即事务之间的先后顺序。下面结合具体例子描述并发事务集合及其二维有向图。
假设并发事务集合包括一个待提交的事务t3与两个已提交的事务t1和事务t2。图2a-2c分别示出了并发事务集合的三种二维有向图。图2a-2c所示的二维有向图均包括三个节点:节点A、节点B及节点C。其中,节点A、节点B及节点C,与事务t1、事务t2及事务t3一一对应。节点A与节点B之间的由节点A指向节点B的有向边表示:按照串行化语义,事务t1应在事务t2之前。其它有向边的含义同理,在此不再赘述。
在操作S102中,若所述二维有向图具有环状结构,放弃提交所述待提交的事务。例如,当根据可串行化语义将待提交的事务对应的节点添加到二维有向图时,若产生环状结构,放弃提交所述待提交的事务。
如图2b及图2c所示,根据串行化语义将事务t3对应的节点C添加到二维有向图后,二维有向图具有环状结构。具体地,如图2b所示,有向边L1、有向边L2与有向边L3构成二维有向图的环状结构。如图2c所示,有向边L4与有向边L5构成二维有向图的环状结构。根据本发明实施例的技术方案,当具有图2b或图2c所示的环状结构时,都应放弃提交待提交的事务t3
在操作S103中,若所述二维有向图不具有环状结构,提交所述待提交的事务。例如,当根据可串行化语义将待提交的事务对应的节点添加到二维有向图时,若二维有向图中各个节点之间的有向边不能构成环状结构,提交所述待提交的事务。如图2a所示,根据串行化语义将事务t3对应的节点C添加到二维有向图后,二维有向图中不具有环状结构,因而应提交所述待提交的事务t3
根据本发明实施的以上技术方案,能够避免现有乐观并发控制算法中过度约束的问题,进而降低事务的舍弃率。因此,本发明实施例能够提高并发系统的性能。
应理解的是,在计算机中存储二维有向图时,常用的数学工具是矩阵。因而,不论是使用二维有向图表示事务之间的可串行化关系,还是使用矩阵表示事务之间的可串行化关系,都应落在本发明实施例的保护范围内。例如,可以使用邻接矩阵(Adjacent Matrix)等价地表示一幅二维有向图。图2a所示的二维有向图可用邻接矩阵M表示如下:
其中,矩阵M中各个元素的含义如下:
M[1][2]=1表示存在由事务t1指向事务t2的有向边,M[2][1]=0表示不存在在由事务t2指向事务t1的有向边。此外,根据有向边的定义,各个事务与自身之间不存在有向边。因此邻接矩阵M中对角线上的元素通常设为0。还应理解的是,以上邻接矩阵M中各个元素的取值仅是一个示例,在具体实施过程中,可以根据需要进行调整。
进一步地,以上邻接矩阵M及其元素的含义仅是本发明实现方式中的一例,本发明实施例不限于此。例如,下文将详细说明使用可达到性关系矩阵表示二维有向图中各个节点之间的可达到性关系。其中可以根据二维有向图获得可达到性关系矩阵,也可以由二维有向图的邻接矩阵推导获得可达到性关系矩阵。但是与邻接矩阵不同,可到达性关系矩阵与二维有向图并非一一对应的关系。二维有向图的可到达性关系矩阵是唯一的,但是同一个可到达性关系矩阵可以表示多个二维有向图。又如,还可以使用十字链表法保存二维有向图,相应地使用Floyd指针追逐(pointer-chasing)算法识别二维有向图是否具有环状结构。因此,不论使用何种数学工具表示二维有向图,只要不脱离本发明的整体构思,都应落在本发明的保护范围内。
可选地,在本发明的一个实施例中,在判断并发事务集合的二维有向图是否具有环状结构时,可以判断所述二维有向图的各个节点中是否存在第一节点与第二节点。其中,所述第一节点能够沿着有向边到达所述第二节点,且所述第二节点能够沿着有向边到达所述第一节点。当所述二维有向图的各个节点中存在所述第一节点与所述第二节点时,则确定所述二维有向图具有环状结构;当所述二维有向图的各个节点中不存在所述第一节点与所述第二节点时,则确定所述二维有向图不具有环状结构。
例如,可以使用Floy-Warshall算法或者拓扑排序算法,依次遍历二维有向图中各个节点,以判断是否存在所述第一节点与所述第二节点。其中,当二维有向图中的各个节点,都只能满足由所述第一节点沿着有向边到达所述第二节点,而由所述第二节点不能沿着有向边到达所述第一节点时,即可认为不存在以上第一节点与第二节点。
可选地,在本发明的一个实施例中,在判断所述二维有向图的各个节点中是否存在第一节点与第二节点时,可以先确定所述待提交的事务与所述至少一个已提交的事务之间的前向邻接向量和后向邻接向量,然后根据所述前向邻接向量、所述后向邻接向量以及所述至少一个已提交的事务的可达到性关系矩阵,判断所述二维有向图的各个节点中是否存在所述第一节点与所述第二节点。
其中,所述前向邻接向量用于表示所述待提交的事务与所述至少一个已提交的事务中的各个事务之间是否存在背离所述待提交的事务的有向边,以及所述后向邻接向量用于表示所述待提交的事务与所述至少一个已提交的事务中的各个事务之间是否存在指向所述待提交的事务的有向边。所述可达到性关系矩阵用于表示所述至少一个已提交的事务中各个事务之间的可到达性关系。应理解的是,根据本发明实施例的技术方案判断二维有向图是否具有环状结构时,若判断结果为二维有向图具有环状结构,那么所述第一节点与所述第二节点中有一个节点为所述待提交的事务对应的节点,且另一个节点为已提交的事务对应的节点。
本发明实施例根据待提交的事务与已提交的事务中各个事务之间的可到达性关系,判断二维有向图是否具有环状结构。与遍历二维有向图中各个节点的判断方式相比,本发明实施例大幅降低了计算量,因而提高了并发控制系统的运行效率。
例如,如图2a所示,节点C与节点B之间的有向边表示:待提交的事务t3与已提交的事务t2之间存在指向事务t3的有向边。节点C与节点A之间的有向边表示:待提交的事务t3与已提交的事务t1之间存在指向事务t3的有向边。因而,根据图2a所示,不存在背离待提交的事务t3的有向边,而存在两个指向待提交的事务t3的有向边。此时,前向邻接向量f可以表示为f={0,0,1},后向邻接向量b可以表示为b={1,1,1}。
相似地,根据如图2b所示的二维有向图,其中待提交的事务t3的前向邻接向量f可以表示为f={1,0,1},待提交的事务t3的后向邻接向量b可以表示为b={0,1,1}。根据如图2c所示的二维有向图,其中待提交的事务t3的前向邻接向量f可以表示为f={0,1,1},待提交的事务t3的后向邻接向量b可以表示为b={1,1,1}。
应理解的是,可到达性关系是指各个事务对应的节点之间能否沿着有向边相互达到。例如,假设所述至少一个已提交的事务构成的集合T包含k个事务,记为:
T={t1,t2,...tk}
使用符号表示事务ti能够沿着有向边到达事务tj,使用符号ti→tj表示存在由事务ti指向事务tj的有向边。那么可以定义如下:
or
其中,1≤i,j,m≤k。也就是说,事务ti可到达事务tj,当且仅当:存在由事务ti指向事务tj的有向边,或者存在事务tm,使得事务tm可到达事务tj,且存在由事务ti指向事务tm的有向边。
相似地,使用符号表示事务tj能够沿着有向边到达事务ti,使用符号ti←tj表示存在由事务tj指向事务ti的有向边。那么可以定义如下:
or
其中,1≤i,j,m≤k。也就是说,事务tj可到达事务ti,当且仅当:存在由事务tj指向事务ti的有向边,或者存在事务tm,使得事务tj可到达事务tm,且存在由事务tm指向事务ti的有向边。
例如,下面以图2a为例,描述所述至少一个已提交的事务的可达到性关系矩阵。根据图2a所示,所述至少一个已提交的事务包括事务t1与事务t2。同时,根据可到达性关系的定义,各个事务均能到达自身,因此可到达性关系矩阵中处于对角线的元素都可设为1。图2a所示的二维有向图的可到达性关系矩阵可表示为:
应理解的是,以上可达到性关系矩阵中各个元素的取值仅是一个示例,在具体实施过程中,可以根据需要进行调整。例如,可以将以上矩阵中的数值取反,使用0表示可达到,使用1表示不可到达。因此,不论使用何种数值表示可到达性关系矩阵,只要不脱离可到达性关系矩阵的定义,都应落在本发明的保护范围内。
可选地,在本发明的一个实施例中,当确定所述待提交的事务与所述至少一个已提交的事务之间的前向邻接向量和后向邻接向量时,根据所述待提交的事务中的读写操作与所述至少一个已提交的事务中的各个事务中的读写操作对同一共享对象的读写冲突或写写冲突,确定所述前向邻接向量与所述后向邻接向量。
例如,如上文所述,假设至少一个已提交的事务构成的集合T={t1,t2,...tk}。其中,ti∈T,1≤i≤k。使用tk+1表示待提交的事务。那么,在确定事务tk+1与事务ti之间的前向邻接向量和后向邻接向量时,分别根据事务tk+1与事务ti中针对同一共享对象的各个读写操作确定所述前向邻接向量与所述后向邻接向量。例如,当根据事务tk+1中包含的任一读写操作确定应在事务tk+1与事务ti之间建立由事务tk+1指向事务ti的有向边时,即认定存在该有向边。相似地,当根据事务tk+1中包含的任一读写操作确定应在事务tk+1与事务ti之间建立由事务ti指向事务tk+1的有向边时,即认定存在该有向边。在事务tk+1与事务ti之间具有多个读写操作引起的读写冲突或写写冲突时,事务tk+1与事务ti之间可能存在如图2c所示的双向有向边L4与L5。
具体地,在根据事务中包含的任一读写操作确定所述前向邻接向量与后向邻接向量时,可以按照如下方式确定:
在所述待提交的事务与所述至少一个已提交的事务中的任一事务发生针对同一共享对象的读写冲突时,若执行读操作的事务没有读到执行写操作的事务的操作结果,则建立指向所述执行读操作的事务的有向边;若执行读操作的事务读到了执行写操作的事务的操作结果,则建立背离所述执行读操作的事务的有向边。在所述待提交的事务与所述至少一个已提交的事务中的任一事务发生针对同一共享对象的写写冲突时,则建立指向所述待提交的事务的有向边。基于以上建立的有向边,确定所述前向邻接向量和所述后向邻接向量。
可选地,在本发明的一个实施例中,所述共享对象为内存地址或关系数据库的主键值。例如,在数据库系统中,所述共享对象为主键值。在事务内存系统中,所述共享对象为内存地址。
可选地,在本发明的一个实施例中,在根据所述前向邻接向量、所述后向邻接向量以及所述至少一个已提交的事务的可达到性关系矩阵,判断所述二维有向图的各个节点中是否存在所述第一节点与所述第二节点时,根据如下公式(1)和公式(2),判断是否存在所述第一节点与所述第二节点:
p=f+RT×f; (1)
s=b+R×b; (2)
若pT×s≠0,则确定所述二维有向图的各个节点中存在所述第一节点与所述第二节点;若pT×s=0,则确定所述二维有向图的各个节点中不存在所述第一节点与所述第二节点。其中,f表示所述前向邻接向量,b表示所述后向邻接向量,R表示所述可达到性关系矩阵,RT表示R的转置矩阵,p表示前向达到向量,s表示后向达到向量,pT表示p的转置向量,运算符号+表示布尔代数中的矩阵相加,运算符号×表示布尔代数中的矩阵相乘。
如上文所述,假设所述至少一个已提交的事务构成的集合T包含k个事务,记为:T={t1,t2,...tk}。图3a为根据本发明一个实施例的判断二维有向图是否具有环状结构的示意性流程图。如图3a所示,k个已提交的事务构成的集合T的可达到性关系矩阵R为k阶矩阵,矩阵R中的元素ri,j与元素rj,i表示事务ti与事务tj之间的可到达性关系,其中1≤i,j≤k。具体地,元素ri,j表示事务ti能否沿着有向边到达事务tj,元素rj,i表示事务tj能否沿着有向边到达事务ti
将所述前向邻接向量f与所述可到达性关系矩阵R输入运算1(对应于以上公式(1)),计算得到所述前向到达向量p={p1,p2,...pk}。相似地,将所述后向邻接向量b输入与所述可到达性关系矩阵R输入运算2(对应于以上公式(2)),计算得到所述后向到达向量s={s1,s2,...sk}。然后,将所述前向到达向量p与所述后向到达向量s输入布尔“与”运算,计算得到判断结果。若所述判断结果等于0,则表示所述二维有向图不具有环状结构。若所述判断结果不等于0,则表示所述二维有向图具有环状结构。
优选地,为了提高运算速度,可以在处理器中增加一个知识产权(IntellectualProperty,IP)模块或现场可编程门阵列(Field-ProgrammableGate Array,FPGA)模块,以用于处理矩阵的转置运算等需要比特级并行处理的任务。
可选地,在本发明的一个实施例中,在提交所述待提交的事务后,还可以利用事务间可到达性关系的传递性,根据所述前向达到向量与所述后向达到向量,更新所述可达到性关系矩阵。这样,在接收到新的未提交事务时,可以根据更新后的可到达性关系矩阵判断二维有向图是否具有环状结构。
图3b为根据本发明一个实施例的更新后的可到达性关系矩阵的示意图。如图3b所示更新后的可达到性矩阵R为k+1阶矩阵。将前向到达向量p={p1,p2,...pk}作为行元素,将后向达到向量s={s1,s2,...sk}作为列元素,并根据事务间可到达性关系的传递性更新原可到达性矩阵的元素ri,j,以得到更新后的元素ri,j。其中,可到达性关系的传递性具体是指:and根据传递性原理更新可到达性关系矩阵时,可以按照如下步骤进行:
if(i=j=k+1),rk+1,k+1=1
if(i=k+1),rk+1,j=pj
if(j=k+1),ri,k+1=si
else r′i,j=ri,j|(pi&sj)
其中,运算符号|表示布尔运算中的“或”运算,运算符号&表示布尔运算中的“与”运算。也就是说,在将可达到性矩阵R更新为k+1阶矩阵时,事务ti能够到达事务tj当且仅当:加入事务tk+1之前,事务ti就能够到达事务tj,或者事务ti能够通过事务tk+1到达事务tj。这样,在更新可达到性关系矩阵时,最多只需要两级逻辑运算,因而缩短了乐观并发控制算法的验证时间,提高了并发控制效率。
图4为根据本发明一个实施例的处理并发事务的装置的示意性框图。如图4所示,该处理并发事务的装置400包括确定单元410和处理单元420。其中,该处理并发事务的装置400用于执行上文描述的方法,为了避免重复,下文省略相同的技术描述。
确定单元410,用于判断并发事务集合的二维有向图是否具有环状结构。其中,所述并发事务集合包括一个待提交的事务与至少一个已提交的事务。所述二维有向图的各个节点与所述并发事务集合中的各个事务一一对应,以及所述二维有向图的各个节点之间的有向边用于表示所述并发事务集合中的各个事务之间的可串行化关系。
处理单元420,用于在所述二维有向图具有环状结构时,放弃提交所述待提交的事务,以及在所述二维有向图不具有环状结构时,提交所述待提交的事务。
应理解的是,在计算机中存储二维有向图时,常用的数学工具是矩阵。因而,不论是使用二维有向图表示事务之间的可串行化关系,还是使用矩阵表示事务之间的可串行化关系,都应落在本发明实施例的保护范围内。根据本发明实施的以上技术方案,能够避免现有乐观并发控制算法中过度约束的问题,进而降低事务的舍弃率。因此,本发明实施例能够提高并发系统的性能。
可选地,在本发明的一个实施例中,确定单元410具体用于,判断所述二维有向图的各个节点中是否存在第一节点与第二节点,其中所述第一节点能够沿着有向边到达所述第二节点,且所述第二节点能够沿着有向边到达所述第一节点。当所述二维有向图的各个节点中存在所述第一节点与所述第二节点时,则确定所述二维有向图具有环状结构;当所述二维有向图的各个节点中不存在所述第一节点与所述第二节点时,则确定所述二维有向图不具有环状结构。
可选地,在本发明的一个实施例中,确定单元410包括第一确定子单元411与第二确定子单元412。第一确定子单元411,用于确定所述待提交的事务与所述至少一个已提交的事务之间的前向邻接向量和后向邻接向量,其中所述前向邻接向量用于表示所述待提交的事务与所述至少一个已提交的事务中的各个事务之间是否存在背离所述待提交的事务的有向边,以及所述后向邻接向量用于表示所述待提交的事务与所述至少一个已提交的事务中的各个事务之间是否存在指向所述待提交的事务的有向边。第二确定子单元412,用于根据所述前向邻接向量、所述后向邻接向量以及所述至少一个已提交的事务的可达到性关系矩阵,判断所述二维有向图的各个节点中是否存在所述第一节点与所述第二节点,其中所述可达到性关系矩阵用于表示所述至少一个已提交的事务中各个事务之间的可到达性关系。本发明实施例根据待提交的事务与已提交的事务中各个事务之间的可到达性关系,判断二维有向图是否具有环状结构。与遍历二维有向图中各个节点的判断方式相比,本发明实施例大幅降低了计算量,因而提高了并发控制系统的运行效率。
可选地,在本发明的一个实施例中,第一确定子单元411具体用于,根据所述待提交的事务中的读写操作与所述至少一个已提交的事务中的各个事务中的读写操作对同一共享对象的读写冲突或写写冲突,确定所述前向邻接向量与所述后向邻接向量。
可选地,在本发明的一个实施例中,所述共享对象为内存地址或关系数据库的主键值。例如,在数据库系统中,所述共享对象为主键值。在事务内存系统中,所述共享对象为内存地址。
可选地,在本发明的一个实施例中,第二确定子单元412具体用于,根据如下公式(1)和公式(2),判断是否存在所述第一节点与所述第二节点:
p=f+RT×f; (1)
s=b+R×b; (2)
若pT×s≠0,则确定所述二维有向图的各个节点中存在所述第一节点与所述第二节点;若pT×s=0,则确定所述二维有向图的各个节点中不存在所述第一节点与所述第二节点。
其中,f表示所述前向邻接向量,b表示所述后向邻接向量,R表示所述可达到性关系矩阵,RT表示R的转置矩阵,p表示前向达到向量,s表示后向达到向量,pT表示p的转置向量,运算符号+表示布尔代数中的矩阵相加,运算符号×表示布尔代数中的矩阵相乘。
可选地,在本发明的一个实施例中,处理并发事务的装置400还包括更新单元430。在处理单元420提交所述待提交的事务后,更新单元430用于利用事务间可到达性关系的传递性,根据所述前向达到向量与所述后向达到向量,更新所述可达到性关系矩阵。这样,在更新可达到性关系矩阵时,最多只需要两级逻辑运算,因而缩短了乐观并发控制算法的验证时间,提高了并发控制效率。
应理解的是,确定单元410、第一确定子单元411、第二确定子单元412、处理单元420和更新单元430可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。
或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,确定单元410、第一确定子单元411、第二确定子单元412、处理单元420和更新单元430中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。
或者,确定单元410、第一确定子单元411、第二确定子单元412、处理单元420和更新单元430中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。
图5为根据本发明一个实施例的并发控制系统的示意性框图。如图5所示,并发控制系统500包括处理器510与计算机可读存储介质520。该并发控制系统500可以实现上面参考图1~图3b描述的方法。
具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或可重构处理器和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行参考图1~图3b描述的根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质520,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质520可以包括计算机程序521,该计算机程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得检测处理器510执行例如上面结合图1~图3b所描述的方法流程及其任何变形。
计算机程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序521中的代码可以包括一个或多个程序模块,例如包括模块521A、模块521B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行例如上面结合图1~图3b所描述的方法流程及其任何变形。
根据本发明的实施例,确定单元410、第一确定子单元411、第二确定子单元412、处理单元420和更新单元430中的至少一个可以实现为参考图5描述的计算机程序模块,在其被处理器510执行时,可以实现上面描述的相应操作。
根据本发明各实施例的上述方法、装置、单元和/或模块可以通过有计算能力的电子设备执行包含计算机指令的软件来实现。该系统可以包括存储设备,以实现上文所描述的各种存储。该有计算能力的电子设备可以包含通用处理器、数字信号处理器、专用处理器、可重构处理器等能够执行计算机指令的装置,但不限于此。执行这样的指令使得电子设备被配置为执行根据本发明的上述各项操作。上述各设备和/或模块可以在一个电子设备中实现,也可以在不同电子设备中实现。这些软件可以存储在计算机可读存储介质中。计算机可读存储介质存储一个或多个程序(软件模块),该一个或多个程序包括指令,当电子设备中的一个或多个处理器执行该指令时,该指令使得电子设备执行本发明的方法。
这些软件可以存储为易失性存储器或非易失性存储装置的形式(比如类似ROM等存储设备),不论是可擦除的还是可重写的,或者存储为存储器的形式(例如RAM、存储器芯片、设备或集成电路),或者被存储在光可读介质或磁可读介质上(比如,CD、DVD、磁盘或磁带等等)。应该意识到,存储设备和存储介质是适于存储一个或多个程序的机器可读存储装置的实施例,该一个程序或多个程序包括指令,当该指令被执行时,实现本发明的实施例。实施例提供程序和存储这种程序的机器可读存储装置,该程序包括用于实现本发明的任何一项权利要求该的装置或方法的代码。此外,可以经由任何介质(比如,经由有线连接或无线连接携带的通信信号)来电传递这些程序,多个实施例适当地包括这些程序。
本领域技术人员可以理解,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。
尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (16)

1.一种处理并发事务的方法,其特征在于,包括:
判断并发事务集合的二维有向图是否具有环状结构,其中所述并发事务集合包括一个待提交的事务与至少一个已提交的事务,所述二维有向图的各个节点与所述并发事务集合中的各个事务一一对应,以及所述二维有向图的各个节点之间的有向边用于表示所述并发事务集合中的各个事务之间的可串行化关系;
若所述二维有向图具有环状结构,放弃提交所述待提交的事务;若所述二维有向图不具有环状结构,提交所述待提交的事务。
2.根据权利要求1所述的方法,其特征在于,所述判断并发事务集合的二维有向图是否具有环状结构,包括:
判断所述二维有向图的各个节点中是否存在第一节点与第二节点,其中所述第一节点能够沿着有向边到达所述第二节点,且所述第二节点能够沿着有向边到达所述第一节点;
当所述二维有向图的各个节点中存在所述第一节点与所述第二节点时,则确定所述二维有向图具有环状结构;当所述二维有向图的各个节点中不存在所述第一节点与所述第二节点时,则确定所述二维有向图不具有环状结构。
3.根据权利要求2所述的方法,其特征在于,所述判断所述二维有向图的各个节点中是否存在第一节点与第二节点,包括:
确定所述待提交的事务与所述至少一个已提交的事务之间的前向邻接向量和后向邻接向量,其中所述前向邻接向量用于表示所述待提交的事务与所述至少一个已提交的事务中的各个事务之间是否存在背离所述待提交的事务的有向边,以及所述后向邻接向量用于表示所述待提交的事务与所述至少一个已提交的事务中的各个事务之间是否存在指向所述待提交的事务的有向边;
根据所述前向邻接向量、所述后向邻接向量以及所述至少一个已提交的事务的可达到性关系矩阵,判断所述二维有向图的各个节点中是否存在所述第一节点与所述第二节点,其中所述可达到性关系矩阵用于表示所述至少一个已提交的事务中各个事务之间的可到达性关系。
4.根据权利要求3所述的方法,其特征在于,所述确定所述待提交的事务与所述至少一个已提交的事务之间的前向邻接向量和后向邻接向量,包括:
根据所述待提交的事务中的读写操作与所述至少一个已提交的事务中的各个事务中的读写操作对同一共享对象的读写冲突或写写冲突,确定所述前向邻接向量与所述后向邻接向量。
5.根据权利要求4所述的方法,其特征在于,所述共享对象为内存地址或关系数据库的主键值。
6.根据权利要求3所述的方法,其特征在于,所述根据所述前向邻接向量、所述后向邻接向量以及所述至少一个已提交的事务的可达到性关系矩阵,判断所述二维有向图的各个节点中是否存在所述第一节点与所述第二节点,包括:
根据如下公式(1)和公式(2),判断是否存在所述第一节点与所述第二节点:
p=f+RT×f; (1)
s=b+R×b; (2)
若pT×s≠0,则确定所述二维有向图的各个节点中存在所述第一节点与所述第二节点;若pT×s=0,则确定所述二维有向图的各个节点中不存在所述第一节点与所述第二节点;
其中,f表示所述前向邻接向量,b表示所述后向邻接向量,R表示所述可达到性关系矩阵,RT表示R的转置矩阵,p表示前向达到向量,s表示后向达到向量,pT表示p的转置向量,运算符号+表示布尔代数中的矩阵相加,运算符号×表示布尔代数中的矩阵相乘。
7.根据权利要求6所述的方法,其特征在于,在所述提交所述待提交的事务后,所述方法还包括:
利用事务间可到达性关系的传递性,根据所述前向达到向量与所述后向达到向量,更新所述可达到性关系矩阵。
8.一种处理并发事务的装置,其特征在于,包括:
确定单元,用于判断并发事务集合的二维有向图是否具有环状结构,其中所述并发事务集合包括一个待提交的事务与至少一个已提交的事务,所述二维有向图的各个节点与所述并发事务集合中的各个事务一一对应,以及所述二维有向图的各个节点之间的有向边用于表示所述并发事务集合中的各个事务之间的可串行化关系;
处理单元,用于在所述二维有向图具有环状结构时,放弃提交所述待提交的事务,以及在所述二维有向图不具有环状结构时,提交所述待提交的事务。
9.根据权利要求8所述的装置,其特征在于,所述确定单元具体用于:
判断所述二维有向图的各个节点中是否存在第一节点与第二节点,其中所述第一节点能够沿着有向边到达所述第二节点,且所述第二节点能够沿着有向边到达所述第一节点;
当所述二维有向图的各个节点中存在所述第一节点与所述第二节点时,则确定所述二维有向图具有环状结构;当所述二维有向图的各个节点中不存在所述第一节点与所述第二节点时,则确定所述二维有向图不具有环状结构。
10.根据权利要求9所述的装置,其特征在于,所述确定单元包括第一确定子单元与第二确定子单元,其中:
所述第一确定子单元,用于确定所述待提交的事务与所述至少一个已提交的事务之间的前向邻接向量和后向邻接向量,其中所述前向邻接向量用于表示所述待提交的事务与所述至少一个已提交的事务中的各个事务之间是否存在背离所述待提交的事务的有向边,以及所述后向邻接向量用于表示所述待提交的事务与所述至少一个已提交的事务中的各个事务之间是否存在指向所述待提交的事务的有向边;
所述第二确定子单元,用于根据所述前向邻接向量、所述后向邻接向量以及所述至少一个已提交的事务的可达到性关系矩阵,判断所述二维有向图的各个节点中是否存在所述第一节点与所述第二节点,其中所述可达到性关系矩阵用于表示所述至少一个已提交的事务中各个事务之间的可到达性关系。
11.根据权利要求10所述的装置,其特征在于,所述第一确定子单元具体用于:
根据所述待提交的事务中的读写操作与所述至少一个已提交的事务中的各个事务中的读写操作对同一共享对象的读写冲突或写写冲突,确定所述前向邻接向量与所述后向邻接向量。
12.根据权利要求11所述的装置,其特征在于,所述共享对象为内存地址或关系数据库的主键值。
13.根据权利要求10所述的装置,其特征在于,所述第二确定子单元具体用于根据如下公式(1)和公式(2),判断是否存在所述第一节点与所述第二节点:
p=f+RT×f; (1)
s=b+R×b; (2)
若pT×s≠0,则确定所述二维有向图的各个节点中存在所述第一节点与所述第二节点;若pT×s=0,则确定所述二维有向图的各个节点中不存在所述第一节点与所述第二节点;
其中,f表示所述前向邻接向量,b表示所述后向邻接向量,R表示所述可达到性关系矩阵,RT表示R的转置矩阵,p表示前向达到向量,s表示后向达到向量,pT表示p的转置向量,运算符号+表示布尔代数中的矩阵相加,运算符号×表示布尔代数中的矩阵相乘。
14.根据权利要求13所述的装置,其特征在于,
所述装置还包括更新单元,所述更新单元用于利用事务间可到达性关系的传递性,根据所述前向达到向量与所述后向达到向量,更新所述可达到性关系矩阵。
15.一种处理并发事务的并发控制系统,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有可执行根据权利要求1至7中任一项所述的方法的指令。
CN201910307348.8A 2019-04-16 2019-04-16 处理并发事务的方法、装置、并发控制系统及存储介质 Active CN110147268B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910307348.8A CN110147268B (zh) 2019-04-16 2019-04-16 处理并发事务的方法、装置、并发控制系统及存储介质
US16/680,595 US10956397B2 (en) 2019-04-16 2019-11-12 Method and apparatus for processing concurrent transactions, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910307348.8A CN110147268B (zh) 2019-04-16 2019-04-16 处理并发事务的方法、装置、并发控制系统及存储介质

Publications (2)

Publication Number Publication Date
CN110147268A true CN110147268A (zh) 2019-08-20
CN110147268B CN110147268B (zh) 2020-05-08

Family

ID=67588362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910307348.8A Active CN110147268B (zh) 2019-04-16 2019-04-16 处理并发事务的方法、装置、并发控制系统及存储介质

Country Status (2)

Country Link
US (1) US10956397B2 (zh)
CN (1) CN110147268B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112069196A (zh) * 2020-11-12 2020-12-11 腾讯科技(深圳)有限公司 基于数据库的数据处理方法、装置、设备及可读存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615269A (zh) * 2009-08-11 2009-12-30 用友软件股份有限公司 一种工作流管理系统中的回退方法和装置
CN102156782A (zh) * 2011-04-14 2011-08-17 国电南瑞科技股份有限公司 基于图论的电力系统公式并行运算管理方法
CN102354289A (zh) * 2011-09-21 2012-02-15 苏州大学 一种并发事务的调度方法和相关装置
CN103077006A (zh) * 2012-12-27 2013-05-01 浙江工业大学 一种基于多线程的长事务并行执行方法
CN104021437A (zh) * 2014-05-19 2014-09-03 中国人民解放军国防科学技术大学 一种基于有向图适应度评估的混合差分进化算法
CN105892957A (zh) * 2016-06-14 2016-08-24 中山大学 一种基于动态分片的分布式事务执行方法
CN106097142A (zh) * 2016-06-15 2016-11-09 国网江西省电力科学研究院 一种基于有向图的配变轮换序列自动生成及评价方法
US20170058341A1 (en) * 2015-09-01 2017-03-02 Seven Bridges Genomics Inc. Systems and methods for mitochondrial analysis
CN107239334A (zh) * 2017-05-31 2017-10-10 清华大学无锡应用技术研究院 处理不规则应用的方法及装置
CN108804576A (zh) * 2018-05-22 2018-11-13 华中科技大学 一种基于链接分析的域名层级结构探测方法
CN108959601A (zh) * 2018-07-13 2018-12-07 北京所问数据科技有限公司 大数据环境下有向图的并行去环算法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280619A (en) * 1990-05-17 1994-01-18 Texas Instruments Incorporated System for accessing shared data using a serialization graph constructed from a history file showing completed locking dependencies between transactions
US8589734B2 (en) * 2010-08-26 2013-11-19 International Business Machines Corporation Verifying correctness of processor transactions
CN103677771B (zh) 2012-09-06 2017-01-18 阿里巴巴集团控股有限公司 一种并发事务的处理方法和装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615269A (zh) * 2009-08-11 2009-12-30 用友软件股份有限公司 一种工作流管理系统中的回退方法和装置
CN102156782A (zh) * 2011-04-14 2011-08-17 国电南瑞科技股份有限公司 基于图论的电力系统公式并行运算管理方法
CN102354289A (zh) * 2011-09-21 2012-02-15 苏州大学 一种并发事务的调度方法和相关装置
CN103077006A (zh) * 2012-12-27 2013-05-01 浙江工业大学 一种基于多线程的长事务并行执行方法
CN104021437A (zh) * 2014-05-19 2014-09-03 中国人民解放军国防科学技术大学 一种基于有向图适应度评估的混合差分进化算法
US20170058341A1 (en) * 2015-09-01 2017-03-02 Seven Bridges Genomics Inc. Systems and methods for mitochondrial analysis
CN105892957A (zh) * 2016-06-14 2016-08-24 中山大学 一种基于动态分片的分布式事务执行方法
CN106097142A (zh) * 2016-06-15 2016-11-09 国网江西省电力科学研究院 一种基于有向图的配变轮换序列自动生成及评价方法
CN107239334A (zh) * 2017-05-31 2017-10-10 清华大学无锡应用技术研究院 处理不规则应用的方法及装置
CN108804576A (zh) * 2018-05-22 2018-11-13 华中科技大学 一种基于链接分析的域名层级结构探测方法
CN108959601A (zh) * 2018-07-13 2018-12-07 北京所问数据科技有限公司 大数据环境下有向图的并行去环算法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
YUEMENG LI等: "Analysis of Spectral Space Properties of Directed Graphs Using Matrix Perturbation Theory with Application in Graph Partition", 《2015 IEEE INTERNATIONAL CONFERENCE ON DATA MINING》 *
原慧琳 等: "基于距离可达矩阵识别业务流程中的活动环的新方法", 《东北大学学报(自然科学版)》 *
曾坤 等: "基于依赖图的硬件事务存储技术研究", 《计算机研究与发展》 *
李建: "一种基于工作流的长事务处理机制的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112069196A (zh) * 2020-11-12 2020-12-11 腾讯科技(深圳)有限公司 基于数据库的数据处理方法、装置、设备及可读存储介质
CN112069196B (zh) * 2020-11-12 2021-03-23 腾讯科技(深圳)有限公司 基于数据库的数据处理方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN110147268B (zh) 2020-05-08
US20200334225A1 (en) 2020-10-22
US10956397B2 (en) 2021-03-23

Similar Documents

Publication Publication Date Title
US20180158034A1 (en) Dynamic reordering of blockchain transactions to optimize performance and scalability
CN104035751B (zh) 基于多图形处理器的数据并行处理方法及装置
CN110018850A (zh) 用于可配置空间加速器中的多播的设备、方法和系统
JP2019079526A (ja) マルチタイル、マルチチップ処理構成における同期
US20190279038A1 (en) Data flow graph node parallel update for machine learning
US11709783B1 (en) Tensor data distribution using grid direct-memory access (DMA) controller
CN105468439A (zh) 在cpu-gpu异构框架下遍历固定半径内邻居的自适应并行算法
US11275661B1 (en) Test generation of a distributed system
US11847533B2 (en) Hybrid quantum computing network
US11507386B2 (en) Booting tiles of processing units
US20230418677A1 (en) Preemption in a machine learning hardware accelerator
CN106776466A (zh) 一种fpga异构加速计算装置及系统
Shterenlikht et al. Fortran 2008 coarrays
EP3857384B1 (en) Processing sequential inputs using neural network accelerators
CN104615445B (zh) 一种基于原子操作的设备io队列方法
Zhang et al. A parallel strategy for convolutional neural network based on heterogeneous cluster for mobile information system
CN110147268A (zh) 处理并发事务的方法、装置、并发控制系统及存储介质
CN111767995A (zh) 运算方法、装置及相关产品
KR20200135522A (ko) 트랜잭션 처리 방법, 서버 및 트랜잭션 처리 시스템
US10768902B2 (en) Actor model programming
CN110008436B (zh) 基于数据流架构的快速傅里叶变换方法、系统和存储介质
Zhang et al. Enabling highly efficient capsule networks processing through software-hardware co-design
CN105700855A (zh) 改进的simd k最近邻实现
US10824370B2 (en) Systems and methods for implementing random access memory in a flow-based machine perception and dense algorithm integrated circuit based on computing and coalescing of indices
Wickramaarachchi et al. Empowering fast incremental computation over large scale dynamic graphs

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