CN108513658B - 一种事务处理方法及装置 - Google Patents
一种事务处理方法及装置 Download PDFInfo
- Publication number
- CN108513658B CN108513658B CN201680008693.6A CN201680008693A CN108513658B CN 108513658 B CN108513658 B CN 108513658B CN 201680008693 A CN201680008693 A CN 201680008693A CN 108513658 B CN108513658 B CN 108513658B
- Authority
- CN
- China
- Prior art keywords
- tree
- transaction
- temporary
- merged
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 14
- 230000010076 replication Effects 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims description 58
- 238000010586 diagram Methods 0.000 description 34
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000002955 isolation Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 238000013499 data model Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
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
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
- G06F16/9027—Trees
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种事务处理方法及装置,网络设备从事务队列中获取多个互相之间不冲突的事务,并对这些不冲突的事务并行执行逆序浅复制生成多个事务对应的多个临时树,由于多个事务之间不冲突,因此,对这些事务进行并行处理能够保证事务处理的准确性和合理性,且采用逆序浅复制方式生成临时树能够有效降低时间和内存消耗;进一步地,通过对多个临时树进行合并,完成对多个事务的处理,相对于现有技术中串行生成临时树并提交的方式,有效提高了事务的执行效率。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种事务处理方法及装置。
背景技术
阳(英文:Yang)作为一种网络配置协议(英文:Network ConfigurationProtocol,NETCONF)的数据建模语言,在软件定义网络领域中被广泛用于定义业务数据模型。模型驱动服务抽象层(英文:Model-Driven Service Abstraction Layer,MD-SAL)中的数据存储模块(英文:DataStore)是一种针对Yang模型数据设计的存储技术,同时也是MD-SAL模型驱动的核心,绝大多数业务流程都依赖于DataStore基于事务的数据操作能力和分层级的侦听能力。
DataStore在Yang模型数据事务存储过程表现为通过提交事对树形数据结构进行更新。其中,事务是指树形数据结构上的一系列操作,每一个事务所包括的一系列操作需全部被执行或全部不被执行。在基于事务的树形数据结构存储技术中,每一个事务被执行成功均会生成一棵逻辑上独立的内存树,最后一次被成功执行的事务对应的内存树被称为状态树(即为基础树)。为保证事务在读写过程中的隔离性,现有技术中的实现方式为,在事务创建时获取当前状态树快照,并基于所获取的快照做读写操作后完成提交,从而避免事务读写过程中出现脏读、不可重复读和幻读等现象。然而,采用此种方式,由于通过提交事务对状态树更新时,只能先复制一棵新树后在新树上执行更新操作,从而造成巨大的时间和内存资源开销。
为此,本申请提供一种事务处理方法,用于解决事务处理过程中需要先复制一棵新树来执行更新操作而导致时间和内存资源开销较大的问题。
发明内容
本申请提供一种事务处理方法及装置,用于解决事务处理过程中需要先复制一棵新树来执行更新操作而导致时间和内存资源开销较大的问题。
第一方面,本发明实施例提供一种事务处理方法,所述事务为树形数据结构上的一系列操作,所述树形结构中包括基础树,所述方法包括:
网络设备从事务队列中获取M个事务;所述M个事务为对同一个基础树进行更新的事务,所述M个事务中的第一事务和第二事务不冲突,所述第一事务和所述第二事务为所述M个事务中的任意两个事务,所述第一事务和所述第二事务不冲突是指所述第一事务的公共子树不是所述第二事务的公共子树的父亲或孩子;其中,任一事务中对所述基础树进行的各个操作所形成的各个子树中的共同部分构成所述任一事务的公共子树;M为大于等于2的整数;
所述网络设备针对所述M个事务并行执行逆序浅复制生成所述M个事务对应的M个临时树;每个事务对应的临时树为仅包含所述每个事务对所述基础树更新后形成的树;
所述网络设备将所述M个临时树进行合并,并将合并后的临时树替换所述基础树。
如此,网络设备首先从事务队列中获取多个互相之间不冲突的事务,并对这些不冲突的事务并行执行逆序浅复制生成多个事务对应的多个临时树,由于多个事务之间不冲突,因此,对这些事务进行并行处理能够保证事务处理的准确性和合理性,且采用逆序浅复制方式生成临时树能够有效降低时间和内存消耗;进一步地,通过对多个临时树进行合并,完成对多个事务的处理,相对于现有技术中串行生成临时树并提交的方式,有效提高了事务的执行效率。
可选地,所述网络设备将所述M个临时树进行合并,包括:
所述网络设备针对所述M个临时树中的第一临时树,将所述第一临时树作为第一合并树;
所述网络设备针对所述M个临时树中的第i临时树,将所述第i临时树合并到第i-1合并树,得到第i合并树;所述第i-1合并树为所述第一至第i-1临时树合并得到的;i为整数,且2≤i≤M;
所述网络设备将第M合并树作为所述合并后的临时树。
如此,网络设备针对多个临时树采用串行方式进行合并,从而能够保证最大程度地降低合并的复杂度,保证数据得到正确的更新。
可选地,所述网络设备将所述第i临时树合并到第i-1合并树,得到第i合并树,包括:
所述网络设备针对所述第一至第i-1临时树中的每个临时树,将所述每个临时树对应的事务的公共子树的路径与所述第i临时树对应的事务的公共子树的路径进行比较,得到所述第i临时树针对所述每个临时树的初始待合并路径;
所述网络设备将长度最短的初始待合并路径确定为所述第i临时树针对所述第i-1合并树的待合并路径;
所述网络设备将所述待合并路径合并到所述第i-1合并树,得到第i合并树。
如此,网络设备将i临时树与第i-1合并树进行合并时,通过将第i临时树对应的事务的公共子树的路径与第一至第i-1临时树对应的事务的公共子树的路径进行比较,并将长度最短的初始待合并路径确定为待合并路径,能够保证第i临时树准确地合并到第i-1合并树上。
可选地,所述网络设备从事务队列中获取M个事务,包括:
所述网络设备以所述事务队列的队首为起点,从所述事务队列中依次获取第一至第M事务。
如此,网络设备以事务队列的队首为起点获取第一至第M事务,能够保证事务处理的有序性。
可选地,所述网络设备从所述事务队列中获取第k-1事务之后,获取第k事务之前,还包括:
所述网络设备确定所述第k事务与第一至第k-1事务中的任一事务不冲突,k为整数,且2≤k≤M。
如此,网络设备在确定第k事务与第一至第k-1事务均不冲突的情况下,获取第k事务,从而能够有效保证最终获取到的M个事务相互之间不冲突。
第二方面,本申请提供一种事务处理装置,用于实现上述第一方面中的任意一种方法,包括相应的功能模块,分别用于实现以上方法中的步骤。
第三方面,本申请提供一种事务处理装置,包括存储器、调度器和处理器,所述处理器包括至少M个处理器核;存储器用于存储指令和事务队列;处理器用于执行存储器存储的指令,当处理器执行存储器存储的指令时,可结合调度器执行上述第一方面中的任意一种方法。
本申请中,网络设备首先从事务队列中获取多个互相之间不冲突的事务,并对这些不冲突的事务并行执行逆序浅复制生成多个事务对应的多个临时树,由于多个事务之间不冲突,因此,对这些事务进行并行处理能够保证事务处理的准确性和合理性,且采用逆序浅复制方式生成临时树能够有效降低时间和内存消耗;进一步地,通过对多个临时树进行合并,完成对多个事务的处理,相对于现有技术中串行生成临时树并提交的方式,有效提高了事务的执行效率。
附图说明
图1a为树形数据结构中的一个基础树State0示意图;
图1b为三个写事务对基础树的更新示意图;
图2a为三个写事务并行创建并分别基于基础树形成各自的公共子树示意图;
图2b为三个写事务提交过程示意图;
图2c为一个写事务对基础树的更新示意图;
图2d为基于逆序浅复制生成临时树并提交的过程示意图;
图3为本申请适用的一种系统架构示意图;
图4为本申请实施例一提供的一种事务处理方法所对应的流程示意图;
图5为从事务队列中获取M个事务的具体过程示意图;
图6为并行生成临时树示意图;
图7a为临时树M2与第一合并树的合并示意图;
图7b为临时树M3与第二合并树的合并示意图;
图7c为合并后的临时树示意图;
图8为本申请中事务处理的整体过程示意图;
图9为本申请中提供的一种网络设备的结构示意图;
图10为本申请中提供的另一种网络设备的结构示意图。
具体实施方式
下面结合说明书附图对本申请实施例做详细描述。
事务为树形数据结构上的一系列操作。基于事务在树形数据结构上所执行的操作方式的不同,可将事务划分为读事务和写事务,其中,读事务是指对树形数据结构中的基础树进行读操作的事务,写事务是指对树形数据结构中的基础树进行写操作的事务,由于读事务暂不涉及到对基础树的更新,因此,本申请中的事务主要是指写事务。
每一个事务包括一组对基础树上的不同子树的更新操作,因此,每一个事务可以看做是对这些子树的公共部分进行的一次更新操作。其中,每一个事务中对基础树进行的各个操作所形成的各个子树中的共同部分构成每一个事务的公共子树。
举个例子,如图1a所示,为树形数据结构中的一个基础树State0示意图,该基础树State0中包括多个节点(具体为A、B、C、E、F、G、I),其中,每一个节点即为一个子树。如图1b中的(1)所示,为事务T1对基础树State0的更新示意图,具体为事务T1在子树B下添加子树D,并在添加的子树D下添加子树H,如此,事务T1可以看做是对公共子树D的一次更新操作。如图1b中的(2)所示,为事务T2对基础树的更新示意图,具体为事务T2在子树I下添加子树K和子树M,如此,事务T2可以看做是对公共子树I的一次更新操作。如图1b中的(3)所示,为事务T3对基础树的更新示意图,具体为事务T3删除子树C下的子树G,如此,事务T3可以看做是对公共子树C的一次更新操作。
为保证事务在读写过程中的隔离性,现有技术中的一种实现方式为事务基于基础树的快照进行操作。下面对该实现方式进行说明。
具体来说,如图2a所示,为三个事务并行创建并分别基于基础树形成各自的公共子树示意图。事务T1的公共子树为D,AB[D]表示公共子树的路径;事务T2的公共子树为I,ACF[I]表示公共子树的路径;事务T3的公共子树为C,A[C]表示公共子树的路径。其中,公共子树的路径是指由公共子树逆序到基础树中的初始节点(如图2a中所示的节点A)的路径。
图2b为三个事务提交过程示意图。如图2b所示,提交事务T1时,进行合法性检查,确定事务T1的公共子树的路径上的节点均未被修改,可将公共子树的更新应用于基础树State0,进而通过复制基础树State0并添加事务T1的修改,得到基础树State1;提交事务T2时,进行合法性检查,确定事务T2的公共子树的路径上的节点均未被修改,可将公共子树的更新应用于基础树State1,进而通过复制基础树State1并添加事务T2的修改,得到基础树State2;提交事务T3时,进行合法性检查,确定事务T3的公共子树的路径上的节点被修改,从而使得事务T3的合法性检查失败,保持基础树State2不变。
由此可知,采用上述方式,事务在提交时只能先复制一棵新树后,在新树上执行更新操作,从而导致时间和内存消耗较大。
为解决时间和内存消耗较大的问题,现有技术中提供另一种事务处理方法,即为开源控制器(英文:OpenDaylight,ODL)的DataStore采用的方法,通过仅复制公共子树的路径上的节点(逆序浅复制)达到隔离的效果。
下面首先对逆序浅复制进行具体说明。
树形数据结构可以由嵌套的map描述,如图2c所示,在由ABC组成的基础树State0的子树B上添加子树D后,得到基础树State1,可由以下方式描述:
Map_A{
<Id-B,Map_B{
<Id-D,Value-D>
}>,
<Id-C,Value-C>
}
通过逆序浅复制得到的新map保留有被复制map内的所有元素。
下面介绍采用逆序浅复制生成临时树的过程。
将事务按公共子树的路径逆序浅复制构造出一棵逻辑上独立的临时树,设该事务的公共子树的路径为x1,…,xi-1,xi[A]。
浅复制状态树中xi对应map得到Xi,添加A;
浅复制状态树中xi-1对应map得到Xi-1,添加Xi;
…
浅复制状态树中x1对应map得到X1,添加X2;由此得到一棵以X1为根的逻辑上独立的临时树。
下面结合图2d,示例性说明基于逆序浅复制生成临时树并提交的过程。具体包括如下步骤:
步骤a:对State0中的B浅复制生成B’,并添加D元素;
步骤b:对State0中的A浅复制生成A’,并添加B’元素;
步骤c:将基础树由A切换为A’,从而完成事务的提交。
其中,步骤a和步骤b为基于逆序浅复制生成临时树的过程,步骤c为事务提交过程。
由上述内容可知,通过采用逆序浅复制的方式在一定程度上降低了时间和内存消耗,然而在处理事务时为串行处理,即先采用逆序浅复制生成事务T1的临时树并提交,再采用逆序浅复制生成事务T2的临时树并提交,依次类推,这种串行的处理流程无法借助计算机多线程处理能力,从而导致事务的执行效率较低。
基于此,本申请提供一种事务处理方法,用于在解决事务处理过程中需要先复制一棵新树来执行更新操作而导致时间和内存资源开销较大的问题的基础上,提高事务的执行效率。
本申请中的事务处理方法可应用于通过提交事务对树形数据结构进行更新的多种数据建模语言的存储场景中,尤其适用于Yang模型数据存储的场景中。将本申请中的事务处理方法应用于Yang模型数据处理中,能够有效提高DataStore的Yang模型数据存储能力。
本申请中的事务处理方法可适用于多种系统架构。图3为本申请适用的一种系统架构示意图,如图3所示,该系统架构中包括网络设备101、一个或多个客户端设备,比如图3中所示出的第一客户端设备1021、第二客户端设备1022和第三客户端设备1023。第一客户端设备1021、第二客户端设备1022和第三客户端设备1023可以通过网络与网络设备101进行通信。例如,第一客户端设备1021、第二客户端设备1022和第三客户端设备1023可以通过网络向网络设备101发送事务请求消息。网络设备101接收到客户端设备发送的事务请求消息后,可将事务请求消息中的事务存储到事务队列中,以便于后续对事务进行处理。
具体来说,网络设备可以为多种具有计算和存储能力的设备,例如,服务器、主机、个人计算机(英文:personal computer,PC)等计算机设备;又如,网络设备也可以为软件定义网络(英文:Software Defined Network,SDN)控制器。
需要说明的是,上述系统架构中仅是以一个网络设备为例进行说明,本申请也可以适用于以集群方式设置的多个网络设备和多个客户端设备。
基于上述系统架构,图4为本申请实施例提供的一种事务处理方法所对应的流程示意图,该方法可由上述系统结构中的网络设备来执行。如图4所示,所述方法包括:
步骤401,网络设备从事务队列中获取M个事务;所述M个事务为对所述基础树进行更新的事务,所述M个事务中的第一事务和第二事务不冲突,所述第一事务和所述第二事务为所述M个事务中的任意两个事务,所述第一事务和所述第二事务不冲突是指所述第一事务的公共子树不是所述第二事务的公共子树的父亲或孩子;其中,任一事务中对所述基础树进行的各个操作所形成的各个子树中的共同部分构成所述任一事务的公共子树;M为大于等于2的整数;
步骤402,网络设备针对所述M个事务并行执行逆序浅复制生成所述M个事务对应的M个临时树;每个事务对应的临时树为仅包含所述每个事务对所述基础树更新后形成的树;
步骤403,网络设备将所述M个临时树进行合并,并将合并后的临时树替换所述基础树。
由此可知,网络设备首先从事务队列中获取多个互相之间不冲突的事务,并对这些不冲突的事务并行执行逆序浅复制生成多个事务对应的多个临时树,由于多个事务之间不冲突,因此,对这些事务进行并行处理能够保证事务处理的准确性和合理性,且采用逆序浅复制方式生成临时树能够有效降低时间和内存消耗;进一步地,通过对多个临时树进行合并,完成对多个事务的处理,从而相对于现有技术中串行生成临时树并提交的方式,有效提高了事务的执行效率。
本申请中,网络设备接收到与网络设备连接的一个或多个客户端发送的事务请求消息后,可以将事务请求消息中的事务按照接收时间的先后顺序加入到事务队列中,即排在事务队列头部的事务比排在事务队列尾部的事务的接收时间早。后续网络设备对事务进行处理时,需从事务队列头部开始执行,即先处理接收时间早的事务,从而保证事务执行的有序性。基于此,步骤401中,网络设备从事务队列队首开始依次获取第一至第M事务,为保证后续可以对第一至第M事务进行并行处理,网络设备从所述事务队列中获取第k-1事务之后,获取第k事务之前,需要将第k事务与网络设备已经获取到的第一至第k-1事务进行冲突检测,并在确定第k事务与第一至第k-1事务均不冲突后,方可获取第k事务,k为整数,且2≤k≤M。
具体实施中,网络设备从事务队列中的获取到的事务的个数应小于等于第一阈值,即M小于等于第一阈值。第一阈值可由本领域技术人员根据网络设备的处理能力(例如:网络设备中包括的处理器核的个数)以及其它情况来设置,具体不做限定。
需要说明的是,上述进行并行处理的M个事务需为对同一个基础树进行更新的事务。本申请中由于一个事务队列中所存储的事务均为对同一个基础树进行更新的事务,因此,网络设备从事务队列中获取到的M个事务即为对同一个基础树进行更新的事务,从而在获取第一至第M事务的过程中,无需进一步检测这些事务是否为对同一个基础树进行更新的事务。
下面结合图5对从事务队列中获取M个事务的具体过程进行说明。如图5所示,包括如下步骤:
步骤501,判断事务队列是否为空,若是,则执行步骤504;若否,则执行步骤502;
需要说明的是,本申请中若首次执行步骤501时确定事务队列为空,则阻塞进程,后续确定事务队列不为空后,开始进程;若循环执行(第p次执行,p为大于等于2的整数)步骤501时确定事务队列为空,则可执行步骤504。
步骤502,判断事务列表中的事务数量是否等于第一阈值,若是,则执行步骤504;若否,则执行步骤503;
步骤503,将事务队列中的队首事务与事务列表中的各个事务分别进行冲突检测,若队首事务与事务列表中的各个事务均不冲突,则从事务队列中弹出队首事务,加入事务列表中,并执行步骤501;若队首事务与事务列表中的至少一个事务冲突,则执行步骤504;
步骤504,返回事务列表,结束此次调度过程。
举个例子,如表1a所示,事务队列中包括多个事务,从队首到队尾的排序依次为事务1、事务2、事务3、事务4、事务5、……;此时,如表1b所示,事务列表为空。
表1a:事务队列示意图
事务队列 | 事务1 | 事务2 | 事务3 | 事务4 | 事务5 | …… |
表1b:事务列表示意图
事务列表 |
由于事务列表为空,网络设备可直接从事务队列中获取事务1,加入事务列表中,此时,事务队列和事务列表分别如表2a和表2b所示。
表2a:事务队列示意图
事务队列 | 事务2 | 事务3 | 事务4 | 事务5 | …… |
表2b:事务列表示意图
事务列表 | 事务1 |
网络设备确定事务列表中的事务的个数小于第一阈值(设第一阈值为6)后,将表2a中所示的事务队列中的队首事务(事务2)与事务列表中的事务1进行冲突检测,确定事务1和事务2不冲突,则可将事务2加入事务列表中,此时,事务队列和事务列表分别如表3a和表3b所示。
表3a:事务队列示意图
事务队列 | 事务3 | 事务4 | 事务5 | …… |
表3b:事务列表示意图
事务列表 | 事务1 | 事务2 |
网络设备确定事务列表中的事务的个数小于第一阈值(设第一阈值为6)后,将表3a中所示的事务队列中的队首事务(事务3)与事务列表中的事务1进行冲突检测,确定事务3与事务1不冲突,事务3与事务2冲突,此时,网络设备可结束此次调度过程,并返回表3b中所示的事务列表,即网络设备从事务队列中获取到2个事务(事务1和事务2),后续在步骤402中可对事务1和事务2进行并行处理。
由此可知,网络设备在确定事务3与事务列表中的事务存在冲突后,即结束调度,而不再获取事务队列中排在事务3之后的事务,从而保证了事务执行的有序性。
下面对本发明实施例中的冲突检测进行具体说明。
事务队列中的事务通常是对基础树的不同子树进行操作,如图1b中所示的事务T1、事务T2、事务T3。考虑到若直接获取多个事务进行并行处理,可能会导致后续合并过程中出现有些事务对基础树的更新被其它事务对基础树的更新所覆盖的情况,本申请在步骤401中获取M个事务时,需对事务进行冲突检测,从而保证获取到的M个事务中的任意两个事务均不冲突。具体来说,若第一事务和第二事务为M个事务中的任意两个事务,则第一事务和第二事务不冲突是指第一事务的公共子树不是第二事务的公共子树的父亲或孩子。也就是说,第一事务的公共子树不在第二事务的公共子树的路径中,且第二事务对应的公共子树不在第一事务的公共子树的路径中。
举个例子,如图1b和图2a中的事务T1、事务T2和事务T3,针对于事务T1和事务T2,事务T1的公共子树为D,事务T2的公共子树为I,事务T1的公共子树不是事务T2的公共子树的父亲或孩子,因此,事务T1和事务T2不冲突;针对于事务T2和事务T3,事务T3的公共子树为C,由于事务T3的公共子树在事务T2的公共子树的路径中,因此,事务T2和事务T3冲突。
本申请中,步骤402执行逆序浅复制生成临时树的过程可参照上述介绍。需要说明的是,现有技术中执行逆序浅复制生成临时树为串行执行,而本申请中是针对多个事务并行执行逆序浅复制生成多个事务对应的多个临时树。具体来说,本申请中的网络设备中可包括多个处理器核,每个处理器核可执行一个进程,进而通过多个处理器核执行多个进程来完成并行处理。
图6为并行生成临时树示意图。如图6所示,基础树为ABCDE,设M个事务分别为事务M1(在子树D上添加子树F)、事务M2(在子树C上添加子树G)和事务M3(在子树E上添加子树H)。对事务M1、事务M2和事务M3并行进行逆序浅复制后,生成事务M1对应的临时树M1、事务M2对应的临时树M2、事务M3对应的临时树M3。
步骤403中,网络设备可采用串行的方式来对生成的M个临时树进行合并,具体为,针对所述M个临时树中的第一临时树,将所述第一临时树作为第一合并树,针对所述M个临时树中的第i临时树,将所述第i临时树合并到第i-1合并树,得到第i合并树;所述第i-1合并树为所述第一至第i-1临时树合并得到的;i为整数,2≤i≤M;进而,将第M合并树作为所述合并后的临时树。其中,第一临时树可以为M个临时树中的任一临时树,合并的顺序可以为随机的,本发明实施例中对M个临时树合并时的先后顺序不做限定,只需执行串行合并即可。例如,针对于图6a中所生成的临时树M1、临时树M2和临时树M3,合并过程可以为:临时树M1—>临时树M2—>临时树M3,即将临时树M1作为第一合并树;将临时树M2合并到第一合并树,得到第二合并树;将临时树M3合并到第二合并树,得到合并后的临时树。如此,网络设备针对多个临时树采用串行方式进行合并,从而能够保证最大程度地降低合并的复杂度,保证数据得到正确的更新。
下面对网络设备将第i临时树合并到第i-1合并树,得到第i合并树的过程进行说明。
网络设备针对第一至第i-1临时树中的每个临时树,将所述每个临时树对应的事务的公共子树的路径与所述第i临时树对应的事务的公共子树的路径进行比较,得到所述第i临时树针对所述每个临时树的初始待合并路径。
具体来说,设第i-1临时树对应的事务的的公共子树的路径为X1X2,…,Xn[A],第i临时树对应的事务的的公共子树的路径为Y1Y2,…,Yn[B],则从index为2依次判断Xindex和Yindex是否相等,设index=K时,Xk≠Yk,则第i临时树针对第i-1临时树的初始待合并路径Yk,…,Yn[B];通过这种方式,可得到第i临时树针对第一至第i-1临时树中的每个临时树的初始待合并路径。进而,将长度最短的初始待合并路径确定为第i临时树针对第i-1合并树的待合并路径,并将待合并路径合并到第i-1合并树,得到第i合并树。其中,长度最短的初始待合并路径是指包括的节点个数最少的初始待合并路径。如此,网络设备将长度最短的初始待合并路径确定为待合并路径,能够保证第i临时树准确地合并到第i-1合并树上。
举个例子,以上述将临时树M3合并到第二合并树为例,将临时树M1对应的事务的公共子树的路径(ABD[F])与临时树M3对应的事务的公共子树的路径(ABE[H])进行比较,得到临时树M3针对临时树M1的初始待合并路径为E[H];将临时树M2对应的事务的公共子树的路径(AC[G])与临时树M3对应的事务的公共子树的路径(ABE[H])进行比较,得到临时树M3针对临时树M2的初始待合并路径为BE[H];通过比较可知,初始待合并路径E[H]的长度最短,进而可将初始待合并路径E[H]作为临时树M3针对第二合并树的待合并路径,并合并到第二合并树。
具体实施中,可在得到第i合并树后,存储第i合并树对应的第i路径列表,第i路径列表中包括第一至第i临时树对应的事务的公共子树的路径。
下面以上述临时树M1—>临时树M2—>临时树M3的合并过程为例进行说明。
如图7a、图7b和图7c所示,将临时树M1作为第一合并树,并将临时树M1对应的事务M1的公共子树的路径加入到路径列表中,得到第一合并树对应的第一路径列表;将临时树M2对应的事务的公共子树的路径与第一路径列表中事务M1的公共子树的路径进行比较,得到临时树M2针对第一合并树的待合并路径为C[G],将待合并路径C[G]合并到第一合并树上,得到第二合并树,并将临时树M2对应的事务M2的公共子树的路径加入到第一路径列表中,得到第二合并树对应的第二路径列表;将临时树M3对应的事务的公共子树的路径分别与第二路径列表中的两个路径进行比较,得到临时树M3针对第二合并树的待合并路径为E[H],将E[H]合并到第二合并树,得到第三合并树,并将临时树M3对应的事务M3的公共子树的路径加入到第一路径列表中,得到合并后的临时树,后续可将合并后的临时树替换基础树。
图8为本申请中事务处理的整体过程示意图。如图8所示,网络设备可通过调度器(Scheduler)的批量调度功能函数(Batch-Loading(N))从事务队列中获取多个事务,在完成对多个事务的并行处理,即完成对多个事务生成的临时树的合并过程后,可触发调度器模块执行下一次调度操作,也就是说,本发明实施例中网络设备可循环执行上述步骤401至步骤403来对事务队列中的事务进行并行处理。
针对上述方法流程,本申请还提供一种网络设备,该网络设备的具体内容可以参照上述方法实施。
图9为本申请提供的一种网络设备的结构示意图。如图9所示,所述网络设备包括:
获取模块901,用于从事务队列中获取M个事务;所述M个事务为对基础树进行更新的事务,所述M个事务中的第一事务和第二事务不冲突,所述第一事务和所述第二事务为所述M个事务中的任意两个事务,所述第一事务和所述第二事务不冲突是指所述第一事务的公共子树不是所述第二事务的公共子树的父亲或孩子;其中,任一事务中对所述基础树进行的各个操作所形成的各个子树中的共同部分构成所述任一事务的公共子树;M为大于等于2的整数;
生成临时树模块902,用于针对所述M个事务并行执行逆序浅复制生成所述M个事务对应的M个临时树;每个事务对应的临时树为仅包含所述每个事务对所述基础树更新后形成的树;
合并模块903,用于所述网络设备将所述M个临时树进行合并,并将合并后的临时树替换所述基础树。
可选地,所述合并模块903具体用于:
针对所述M个临时树中的第一临时树,将所述第一临时树作为第一合并树;
针对所述M个临时树中的第i临时树,将所述第i临时树合并到第i-1合并树,得到第i合并树;所述第i-1合并树为所述第一至第i-1临时树合并得到的;i为整数,且2≤i≤M;
将第M合并树作为所述合并后的临时树。
可选地,所述合并模块903具体用于:
所述网络设备针对所述第一至第i-1临时树中的每个临时树,将所述每个临时树对应的事务的公共子树的路径与所述第i临时树对应的事务的公共子树的路径进行比较,得到所述第i临时树针对所述每个临时树的初始待合并路径;
所述网络设备将长度最短的初始待合并路径确定为所述第i临时树针对所述第i-1合并树的待合并路径;
所述网络设备将所述待合并路径合并到所述第i-1合并树,得到第i合并树。
可选地,所述获取模块901具体用于:
以所述事务队列的队首为起点,从所述事务队列中依次获取第一至第M事务。
可选地,所述获取模块901从所述事务队列中获取第k-1事务之后,获取第k事务之前,还用于:
确定所述第k事务与第一至第k-1事务中的任一事务不冲突,k为整数,且2≤k≤M。
图10为本发明实施例提供的另一种网络设备的结构示意图。如图10所示,所述网络设备包括:调度器1001、处理器1002、存储器1003和总线系统1004;
其中,存储器1003,用于存放程序和事务队列。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器1003可能为随机存取存储器(英文:random accessmemory,RAM),也可能为非易失性存储器(英文:non-volatile memory),例如至少一个磁盘存储器。图中仅示出了一个存储器,当然,存储器也可以根据需要,设置为多个。存储器1003也可以是处理器1002中的存储器。
存储器1003存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器1002控制网络设备1000的操作,处理器1002还可以称为中央处理单元(英文:Central Processing Unit,CPU)。具体的应用中,设备1000的各个组件通过总线系统1004耦合在一起,其中总线系统1004除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1004。为便于表示,图10中仅是示意性画出。
上述本申请实施例揭示的方法可以应用于处理器1002中,或者由处理器1002实现。处理器1002可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1002中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1002可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1003,处理器1002读取存储器1003中的信息,结合调度器执行以下方法步骤:
通过调度器1001从事务队列中获取M个事务;所述M个事务为对基础树进行更新的事务,所述M个事务中的第一事务和第二事务不冲突,所述第一事务和所述第二事务为所述M个事务中的任意两个事务,所述第一事务和所述第二事务不冲突是指所述第一事务的公共子树不是所述第二事务的公共子树的父亲或孩子;其中,任一事务中对所述基础树进行的各个操作所形成的各个子树中的共同部分构成所述任一事务的公共子树;M为大于等于2的整数;
所述处理器1002包括至少M个处理器核,所述至少M个处理器核中的M个处理器核,用于针对所述M个事务并行执行逆序浅复制生成所述M个事务对应的M个临时树;每个事务对应的临时树为仅包含所述每个事务对所述基础树更新后形成的树;
所述处理器1002,还用于将所述M个临时树进行合并,并将合并后的临时树替换所述基础树。
可选地,所述处理器1002具体用于:
针对所述M个临时树中的第一临时树,将所述第一临时树作为第一合并树;
针对所述M个临时树中的第i临时树,将所述第i临时树合并到第i-1合并树,得到第i合并树;所述第i-1合并树为所述第一至第i-1临时树合并得到的;i为整数,且2≤i≤M;
将第M合并树作为所述合并后的临时树。
可选地,所述处理器1002具体用于:
所述网络设备针对所述第一至第i-1临时树中的每个临时树,将所述每个临时树对应的事务的公共子树的路径与所述第i临时树对应的事务的公共子树的路径进行比较,得到所述第i临时树针对所述每个临时树的初始待合并路径;
所述网络设备将长度最短的初始待合并路径确定为所述第i临时树针对所述第i-1合并树的待合并路径;
所述网络设备将所述待合并路径合并到所述第i-1合并树,得到第i合并树。
可选地,所述调度器1001具体用于:
以所述事务队列的队首为起点,从所述事务队列中依次获取第一至第M事务。
可选地,所述调度器1001从所述事务队列中获取第k-1事务之后,获取第k事务之前,还用于:
确定所述第k事务与第一至第k-1事务中的任一事务不冲突,k为整数,且2≤k≤M。
需要说明的是,在一种可行的实现中,所述网络设备不包括所述调度器1001,所述调度器1001的功能在所述处理器1002中实现。
需要说明的是,本实施例也可以基于通用的物理服务器结合网络功能虚拟化(英文:Network Function Virtualization,NFV)技术实现的网络设备,所述网络设备为虚拟网络设备,可以是运行有用于事务处理功能的程序的虚拟机(英文:Virtual Machine,VM),所述虚拟机部署在硬件设备上(例如,物理服务器)。虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种事务处理方法,所述事务为树形数据结构上的一系列操作,所述树形数据 结构中包括基础树,其特征在于,所述方法包括:
网络设备从事务队列中获取M个事务;所述M个事务为对同一个基础树进行更新的事务,所述M个事务中的第一事务和第二事务不冲突,所述第一事务和所述第二事务为所述M个事务中的任意两个事务,所述第一事务和所述第二事务不冲突是指所述第一事务的公共子树不是所述第二事务的公共子树的父亲或孩子;其中,任一事务中对所述基础树进行的各个操作所形成的各个子树中的共同部分构成所述任一事务的公共子树;M为大于等于2的整数;
所述网络设备针对所述M个事务并行执行逆序浅复制生成所述M个事务对应的M个临时树;每个事务对应的临时树为仅包含所述每个事务对所述基础树更新后形成的树;
所述网络设备将所述M个临时树进行合并,并将合并后的临时树替换所述基础树;
其中,针对所述M个事务中的事务:执行逆序浅复制生成所述事务对应的临时树包括:
通过复制所述事务的公共子树的路径上的节点的方式,制构造出所述临时树。
2.根据权利要求1所述的方法,其特征在于,所述网络设备将所述M个临时树进行合并,包括:
所述网络设备针对所述M个临时树中的第一临时树,将所述第一临时树作为第一合并树;
所述网络设备针对所述M个临时树中的第i临时树,将所述第i临时树合并到第i-1合并树,得到第i合并树;所述第i-1合并树为所述第一至第i-1临时树合并得到的;i为整数,且2≤i≤M;
所述网络设备将第M合并树作为所述合并后的临时树。
3.根据权利要求2所述的方法,其特征在于,所述网络设备将所述第i临时树合并到第i-1合并树,得到第i合并树,包括:
所述网络设备针对所述第一至第i-1临时树中的每个临时树,将所述每个临时树对应的事务的公共子树的路径与所述第i临时树对应的事务的公共子树的路径进行比较,得到所述第i临时树针对所述每个临时树的初始待合并路径;
所述网络设备将长度最短的初始待合并路径确定为所述第i临时树针对所述第i-1合并树的待合并路径;
所述网络设备将所述待合并路径合并到所述第i-1合并树,得到第i合并树。
4.根据权利要求1所述的方法,其特征在于,所述网络设备从事务队列中获取M个事务,包括:
所述网络设备以所述事务队列的队首为起点,从所述事务队列中依次获取第一至第M事务。
5.根据权利要求4所述的方法,其特征在于,所述网络设备从所述事务队列中获取第k-1事务之后,获取第k事务之前,还包括:
所述网络设备确定所述第k事务与第一至第k-1事务中的任一事务不冲突,k为整数,且2≤k≤M。
6.一种网络设备,其特征在于,所述网络设备包括:
获取模块,用于从事务队列中获取M个事务;所述M个事务为对同一基础树进行更新的事务,所述M个事务中的第一事务和第二事务不冲突,所述第一事务和所述第二事务为所述M个事务中的任意两个事务,所述第一事务和所述第二事务不冲突是指所述第一事务的公共子树不是所述第二事务的公共子树的父亲或孩子;其中,任一事务中对所述基础树进行的各个操作所形成的各个子树中的共同部分构成所述任一事务的公共子树;M为大于等于2的整数;
生成临时树模块,用于针对所述M个事务并行执行逆序浅复制生成所述M个事务对应的M个临时树;每个事务对应的临时树为仅包含所述每个事务对所述基础树更新后形成的树;
合并模块,用于所述网络设备将所述M个临时树进行合并,并将合并后的临时树替换所述基础树;
其中,针对所述M个事务中的事务:执行逆序浅复制生成所述事务对应的临时树包括:
通过复制所述事务的公共子树的路径上的节点的方式,制构造出所述临时树。
7.根据权利要求6所述的网络设备,其特征在于,所述合并模块具体用于:
针对所述M个临时树中的第一临时树,将所述第一临时树作为第一合并树;
针对所述M个临时树中的第i临时树,将所述第i临时树合并到第i-1合并树,得到第i合并树;所述第i-1合并树为所述第一至第i-1临时树合并得到的;i为整数,且2≤i≤M;
将第M合并树作为所述合并后的临时树。
8.根据权利要求7所述的网络设备,其特征在于,所述合并模块具体用于:
所述网络设备针对所述第一至第i-1临时树中的每个临时树,将所述每个临时树对应的事务的公共子树的路径与所述第i临时树对应的事务的公共子树的路径进行比较,得到所述第i临时树针对所述每个临时树的初始待合并路径;
所述网络设备将长度最短的初始待合并路径确定为所述第i临时树针对所述第i-1合并树的待合并路径;
所述网络设备将所述待合并路径合并到所述第i-1合并树,得到第i合并树。
9.根据权利要求6所述的网络设备,其特征在于,所述获取模块具体用于:
以所述事务队列的队首为起点,从所述事务队列中依次获取第一至第M事务。
10.根据权利要求9所述的网络设备,其特征在于,所述获取模块从所述事务队列中获取第k-1事务之后,获取第k事务之前,还用于:
确定所述第k事务与第一至第k-1事务中的任一事务不冲突,k为整数,且2≤k≤M。
11.一种网络设备,其特征在于,所述网络设备包括:存储器、调度器和处理器;
所述存储器,用于存储事务队列;
所述调度器,用于从事务队列中获取M个事务;所述M个事务为对同一基础树进行更新的事务,所述M个事务中的第一事务和第二事务不冲突,所述第一事务和所述第二事务为所述M个事务中的任意两个事务,所述第一事务和所述第二事务不冲突是指所述第一事务的公共子树不是所述第二事务的公共子树的父亲或孩子;其中,任一事务中对所述基础树进行的各个操作所形成的各个子树中的共同部分构成所述任一事务的公共子树;M为大于等于2的整数;
所述处理器包括至少M个处理器核,所述至少M个处理器核中的M个处理器核,用于针对所述M个事务并行执行逆序浅复制生成所述M个事务对应的M个临时树;每个事务对应的临时树为仅包含所述每个事务对所述基础树更新后形成的树;
所述处理器,还用于将所述M个临时树进行合并,并将合并后的临时树替换所述基础树;
其中,针对所述M个事务中的事务:执行逆序浅复制生成所述事务对应的临时树包括:
通过复制所述事务的公共子树的路径上的节点的方式,制构造出所述临时树。
12.根据权利要求11所述的网络设备,其特征在于,所述处理器具体用于:
针对所述M个临时树中的第一临时树,将所述第一临时树作为第一合并树;
针对所述M个临时树中的第i临时树,将所述第i临时树合并到第i-1合并树,得到第i合并树;所述第i-1合并树为所述第一至第i-1临时树合并得到的;i为整数,且2≤i≤M;
将第M合并树作为所述合并后的临时树。
13.根据权利要求12所述的网络设备,其特征在于,所述处理器具体用于:
所述网络设备针对所述第一至第i-1临时树中的每个临时树,将所述每个临时树对应的事务的公共子树的路径与所述第i临时树对应的事务的公共子树的路径进行比较,得到所述第i临时树针对所述每个临时树的初始待合并路径;
所述网络设备将长度最短的初始待合并路径确定为所述第i临时树针对所述第i-1合并树的待合并路径;
所述网络设备将所述待合并路径合并到所述第i-1合并树,得到第i合并树。
14.根据权利要求11所述的网络设备,其特征在于,所述调度器具体用于:
以所述事务队列的队首为起点,从所述事务队列中依次获取第一至第M事务。
15.根据权利要求14所述的网络设备,其特征在于,所述调度器从所述事务队列中获取第k-1事务之后,获取第k事务之前,还用于:
确定所述第k事务与第一至第k-1事务中的任一事务不冲突,k为整数,且2≤k≤M。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/113981 WO2018120233A1 (zh) | 2016-12-30 | 2016-12-30 | 一种事务处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108513658A CN108513658A (zh) | 2018-09-07 |
CN108513658B true CN108513658B (zh) | 2022-02-25 |
Family
ID=62706776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680008693.6A Active CN108513658B (zh) | 2016-12-30 | 2016-12-30 | 一种事务处理方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11176086B2 (zh) |
EP (1) | EP3557445A4 (zh) |
CN (1) | CN108513658B (zh) |
WO (1) | WO2018120233A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678857B2 (en) * | 2018-03-23 | 2020-06-09 | International Business Machines Corporation | Managing a distributed knowledge graph |
CN110333935B (zh) * | 2019-06-05 | 2022-12-02 | 创新先进技术有限公司 | 事务请求处理方法及装置 |
CN112925517B (zh) * | 2019-12-06 | 2024-02-20 | 中国电信股份有限公司 | 业务功能实现方法、装置和系统 |
CN111078669B (zh) * | 2019-12-18 | 2022-08-09 | 新华三大数据技术有限公司 | 基于名字解析树的处理方法、装置、设备及存储介质 |
CN111583003B (zh) * | 2020-05-08 | 2022-03-29 | 国网吉林省电力有限公司 | 一种资金集中管控过程中海量财务处理事务并行执行方法 |
CN113434522B (zh) * | 2021-05-08 | 2023-06-09 | 华东师范大学 | 一种面向联盟链的状态树上的并行更新方法及更新系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1315329A2 (en) * | 2001-11-27 | 2003-05-28 | SK Telecom Co.,Ltd. | Method of routing point-to-multipoint traffic on an MPLS network |
CN1567237A (zh) * | 2003-06-09 | 2005-01-19 | 浪潮电子信息产业股份有限公司 | 构建高可用分布式存储系统的方法 |
CN101494591A (zh) * | 2008-01-23 | 2009-07-29 | 华为技术有限公司 | 一种端到端的路由方法、装置和系统 |
CN101627394A (zh) * | 2007-02-23 | 2010-01-13 | 克劳克维尔公司 | 保护以软件为媒介的程序和装置性态的联锁系统和方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8412689B2 (en) * | 2010-07-07 | 2013-04-02 | Microsoft Corporation | Shared log-structured multi-version transactional datastore with metadata to enable melding trees |
US20120110433A1 (en) * | 2010-10-28 | 2012-05-03 | Microsoft Corporation | Parallel web page processing |
US8768977B2 (en) * | 2012-07-31 | 2014-07-01 | Hewlett-Packard Development Company, L.P. | Data management using writeable snapshots in multi-versioned distributed B-trees |
CN102867059A (zh) * | 2012-09-19 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种树形结构中数据的处理方法和系统 |
US9230001B2 (en) * | 2013-11-14 | 2016-01-05 | Vmware, Inc. | Intelligent data propagation using performance monitoring |
CN104679484B (zh) * | 2013-11-27 | 2018-02-06 | 华为技术有限公司 | 一种并发分析方法及装置 |
CN104794196B (zh) * | 2015-04-21 | 2018-07-31 | 浙江大学 | 一种树形结构数据的采集和更新方法 |
CN105159915B (zh) * | 2015-07-16 | 2018-07-10 | 中国科学院计算技术研究所 | 可动态适应的lsm树合并方法及系统 |
US10838944B2 (en) * | 2016-06-10 | 2020-11-17 | Apple Inc. | System and method for maintaining a multi-level data structure |
-
2016
- 2016-12-30 EP EP16925553.6A patent/EP3557445A4/en not_active Ceased
- 2016-12-30 WO PCT/CN2016/113981 patent/WO2018120233A1/zh unknown
- 2016-12-30 CN CN201680008693.6A patent/CN108513658B/zh active Active
-
2019
- 2019-06-28 US US16/456,748 patent/US11176086B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1315329A2 (en) * | 2001-11-27 | 2003-05-28 | SK Telecom Co.,Ltd. | Method of routing point-to-multipoint traffic on an MPLS network |
CN1567237A (zh) * | 2003-06-09 | 2005-01-19 | 浪潮电子信息产业股份有限公司 | 构建高可用分布式存储系统的方法 |
CN101627394A (zh) * | 2007-02-23 | 2010-01-13 | 克劳克维尔公司 | 保护以软件为媒介的程序和装置性态的联锁系统和方法 |
CN101494591A (zh) * | 2008-01-23 | 2009-07-29 | 华为技术有限公司 | 一种端到端的路由方法、装置和系统 |
Non-Patent Citations (1)
Title |
---|
移动Ad Hoc网络拥塞控制关键技术研究;蒋道霞;《中国博士学位论文全文数据库信息科技辑》;20100815;第I136-25页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108513658A (zh) | 2018-09-07 |
US20190324760A1 (en) | 2019-10-24 |
EP3557445A4 (en) | 2019-11-27 |
WO2018120233A1 (zh) | 2018-07-05 |
EP3557445A1 (en) | 2019-10-23 |
US11176086B2 (en) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108513658B (zh) | 一种事务处理方法及装置 | |
EP3678346B1 (en) | Blockchain smart contract verification method and apparatus, and storage medium | |
US10235337B2 (en) | Distributed work flow using database replication | |
US20180158034A1 (en) | Dynamic reordering of blockchain transactions to optimize performance and scalability | |
US9619430B2 (en) | Active non-volatile memory post-processing | |
US10691449B2 (en) | Intelligent automatic merging of source control queue items | |
US10871918B2 (en) | Writing composite objects to a data store | |
CN105871603B (zh) | 一种基于内存数据网格的实时流式数据处理失效恢复系统及方法 | |
US20120084747A1 (en) | Partitioned iterative convergance programming model | |
CN106445644A (zh) | 基于改进的一阶段提交的分布式事务的处理方法和装置 | |
US9141677B2 (en) | Apparatus and method for arranging query | |
US20160110645A1 (en) | System and method for dynamically updating event configuration rule for processing complex event | |
US20160217007A1 (en) | Job management method and job managing device | |
WO2018121025A1 (zh) | 比较数据表的数据的方法和系统 | |
CN109815021B (zh) | 针对递归树建模程序的资源关键树方法及系统 | |
CN114157550B (zh) | 一种基于无冲突事务合并的联盟区块链系统 | |
WO2013168495A1 (ja) | 階層型確率モデル生成システム、階層型確率モデル生成方法、およびプログラム | |
EP3896908B1 (en) | Event stream processing system, event stream processing method, event stream processing program | |
US10929238B2 (en) | Management of changed-block bitmaps | |
CN106371919B (zh) | 一种基于映射-归约计算模型的洗牌数据缓存方法 | |
CN111767337B (zh) | 区块的验证方法、装置及设备 | |
Michael et al. | Recovering shared objects without stable storage | |
US11481385B1 (en) | Graph database system to safely store data at high volume and scale | |
US8849916B2 (en) | Infrastructure management operational workflows | |
US8584143B2 (en) | Collection access in a parallel environment |
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 |