一种交易依赖关系的识别方法、装置及设备与流程
未命名
07-12
阅读:66
评论:0

技术领域:
:,特别是指一种交易依赖关系的识别方法、装置及设备。
背景技术:
::2.fabric系统是一个分布式系统,由能够相互通信的节点组成。每个加入系统的节点具有自己的身份标识id。在系统中通过运行链码(chaincode)来保存状态及账本数据并执行交易。交易由客户端发起,经过背书节点“背书”和调用链码后对状态及账本进行操作。fabric系统的核心流程包括“模拟-排序‑ꢀ验证-执行”四个阶段。3.但是fabric系统的验证的工作流程中多版本并发控制处理过程,主要基于每个交易的读写集版本号一致性比对,需要频繁读取相关键值及版本号,增加了验证阶段系统延迟。技术实现要素:4.本发明要解决的技术问题是提供一种交易依赖关系的识别方法、装置及设备。在验证阶段构建能体现各交易之间的交易依赖关系的依赖关系图,构建过程易于实现,可有效地减少mvcc(multi-versionconcurrencycontrol,多版本并发控制)的交易数量,同时减少了mvcc执行导致的延迟。5.为解决上述技术问题,本发明的技术方案如下:6.一种交易依赖关系的识别方法,所述方法包括:7.确定区块中n个交易中的第一有效交易,所述n个交易按照交易顺序进行排序,n为正整数;8.生成从第一有效交易至第n交易的读操作的读表格和写操作的写表格;9.根据所述读表格和写表格,得到交易之间的依赖关系图;所述依赖关系图用于体现各交易之间的交易依赖关系。10.可选的,确定区块中n个交易中的第一有效交易,包括:11.对所述区块的n个交易按照所述交易顺序进行读写集匹配处理和串行冲突判断处理,将首个读写集匹配结果为符合且串行冲突判断处理结果为无串行冲突的交易确定为第一有效交易。12.可选的,生成从第一有效交易至第n交易的读操作的读表格和写操作的写表格,包括:13.获取所述第一有效交易至第n交易的交易读写集,所述交易读写集用于表示每个交易对键值执行的操作的集合;14.根据所述交易读写集,生成从第一有效交易至第n交易的读表格和写表格。15.可选的,根据所述读表格和写表格,得到交易之间的依赖关系图,包括:16.对所述读表格和写表格进行逻辑操作处理,得到冲突表格;17.根据所述冲突表格,得到交易之间的依赖关系图。18.可选的,对所述读表格和写表格进行逻辑操作处理,得到冲突表格,包括:19.将所述读表格的第m行,依次与所述写表格中的第1至第m-1行进行与操作处理,得到操作处理结果;其中,1<m≤n;20.根据所述操作处理结果,生成冲突表格。21.可选的,根据所述冲突表格,得到交易之间的依赖关系图,包括:22.根据所述冲突表格,结合所述交易读写集,确定每个交易之间的交易依赖关系;23.根据所述交易依赖关系,生成交易之间的依赖关系图。24.可选的,所述交易依赖关系包括以下至少一项:25.写读依赖,搜索范围range-query依赖,背书策略依赖。26.本发明还提供一种交易依赖关系的识别装置,所述装置包括:27.生成模块,用于确定区块中n个交易中的第一有效交易,所述n个交易按照交易顺序进行排序,n为正整数;生成从第一有效交易至第n交易的读操作的读表格和写操作的写表格;28.处理模块,用于根据所述读表格和写表格,得到交易之间的依赖关系图;所述依赖关系图用于体现各交易之间的交易依赖关系。29.本发明提供一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如上述的交易依赖关系的识别方法的步骤。30.本发明还提供一种计算机可读存储介质,存储指令,当所述指令在计算机上运行时,使得计算机执行如上述的交易依赖关系的识别方法。31.本发明的上述方案至少包括以下有益效果:32.通过确定区块中n个交易中的第一有效交易,所述n个交易按照交易顺序进行排序,n为正整数;生成从第一有效交易至第n交易的读操作的读表格和写操作的写表格;根据所述读表格和写表格,得到交易之间的依赖关系图;所述依赖关系图用于体现各交易之间的交易依赖关系;本发明的方案在验证阶段构建能体现各交易之间的交易依赖关系的依赖关系图,构建过程易于实现,可有效地减少需要进行mvcc的交易数量,同时减少了mvcc执行导致的延迟。附图说明33.图1是本发明实施例的交易依赖关系的识别方法的流程示意图;34.图2是本发明提供的具体的实施例3中的依赖关系图;35.图3是本发明实施例的交易依赖关系的识别装置的模块框示意图。具体实施方式36.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。37.如图1所示,本发明的实施例提供一种交易依赖关系的识别方法,所述方法包括:38.步骤11,确定区块中n个交易中的第一有效交易,所述n个交易按照交易顺序进行排序,n为正整数;39.步骤12,生成从第一有效交易至第n交易的读操作的读表格和写操作的写表格;40.步骤13,根据所述读表格和写表格,得到交易之间的依赖关系图所述依赖关系图用于体现各交易之间的交易依赖关系。41.该实施例中,一个区块包括n个交易,其中,n为正整数,n个交易按照交易顺序进行排序,从区块中的n个交易确定第一有效交易,生成第一交易至第n交易的读操作的读表格和写操作的写表格,进而生成第一交易至第n交易之间的依赖关系图,这里的依赖关系图用于体现各交易之间的交易依赖关系;本实施例的方案在验证阶段构建能体现各交易之间的交易依赖关系的依赖关系图,构建过程易于实现,可有效地减少需要进行多版本并发控制mvcc的交易数量,同时减少了多版本并发控制mvcc执行导致的延迟。42.本发明一可选的实施例中,步骤11包括:43.步骤111,对所述区块的n个交易按照所述交易顺序进行读写集匹配处理和串行冲突判断处理,将首个读写集匹配结果为符合且串行冲突判断处理结果为无串行冲突的交易确定为第一有效交易。44.本实施例中,按照区块中的交易顺序,对区块的n个交易进行读写集匹配处理和串行冲突判断处理,将按照交易顺序的首个读写集匹配结果为符合且串行冲突判断处理结果为无串行冲突的交易确定为第一有效交易;45.其中,读写集匹配处理具体的是判断该交易是否遵守背书策略以及所包含的签名是否匹配读写集;46.该读写集匹配处理结果若为不符合,则表示背书节点或用户篡改过交易,应将该交易标记为无效交易;该读写集匹配处理结果若为符合,则未篡改过交易,应将该交易标记为有效交易;47.串行冲突判断处理具体的是通过peer节点检查交易间是否存在串行冲突;48.由于在区块中的n个交易按照交易顺序排序之前,各交易的模拟执行是并行执行的,因而交易执行结果可能会与其他交易发生冲突;49.该串行冲突判断处理结果若为有串行冲突,则将与该交易标记为无效交易;该串行冲突判断处理结果若为无串行冲突,则将该交易标记为有效交易;需要说明的是,peer节点是区块链中用于维护账本的网络节点,通常在fabric系统中担任背书或者记账角色。50.一个具体的实施例1中,区块中包括5个交易,按照区块的交易顺序,5个交易依次为t1、t2、t3、t4以及t5,依据步骤111,对t1进行读写集匹配处理,得到t1的读写集匹配结果为不符合;则对t2进行读写集匹配处理,得到t2的读写集匹配结果为符合,进一步的,对t2进行串行冲突判断处理,得到t2的串行冲突判断处理为有串行冲突;则对t3进行读写集匹配处理,得到t3的读写集匹配结果为符合,进一步的,对t3进行串行冲突判断处理,得到t3的串行冲突判断处理为串行冲突,则将交易t3确定为第一有效交易(可记作vaild),不再对交易t4和交易t5进行读写集匹配处理和/或串行冲突判断处理。51.本发明一可选的实施例中,步骤12包括:52.步骤121,获取所述第一有效交易至第n交易的交易读写集,所述交易读写集用于表示每个交易对键值执行的操作的集合;53.步骤122,根据所述交易读写集,生成从第一有效交易至第n交易的读表格和写表格。54.本实施例中,获取第一有效交易至第n交易的交易读写集,即,若区块中的交易按照交易顺序为t1、t2、t3、t4…,tn,其中,确定t2为第一有效交易,则获取t2、t3、t4…,tn的交易读写集;交易读写集用于表示每个交易对键值执行的操作的集合,交易读写集中读集的格式优选为“键值,版本号”,交易读写集中写集的格式优选为“键值,版本号更新”;55.根据交易读写集,将每个交易对键值执行的读操作进行标记处理,得到第一有效交易至第n交易的读表格;将每个交易对键值执行的写操作进行标记处理,得到第一有效交易至第n交易的写表格;需要说明的是,这里的标记处理可以是将每个交易对键值执行读操作/写操作标记为1,将未进行读操作/写操作标记为0,当然还可以是以其他形式进行标记,本技术不以此为限制;56.当第一有效交易为交易ti,第n交易为tn-1时,读表格可记为二维矩阵tabler[n-i+1,m],写表格可记为二维矩阵tablew[n-i+1,m];其中,读表格的第一行表示第一有效交易与每个键值之间的读操作,从第二行至最后一行依次对饮第一有效交易后的交易至第n交易与每个键值之间的读操作,写表格的第一行表示第一有效交易与每个键值之间的写操作,从第二行至最后一行依次对饮第一有效交易后的交易至第n交易与每个键值之间的写操作。[0057]本发明一可选的实施例中,步骤13包括:[0058]步骤131,对所述读表格和写表格进行逻辑操作处理,得到冲突表格;[0059]步骤132,根据所述冲突表格,得到交易之间的依赖关系图。[0060]其中,步骤131包括:[0061]步骤1311,将所述读表格的第m行,依次与所述写表格中的第1至第m-1行进行与操作处理,得到操作处理结果;其中,1<m≤n;[0062]步骤1312,根据所述操作处理结果,生成冲突表格。[0063]本实施例中,将读表格的第m行,依次与写表格中的第1至第m-1行进行与操作处理,得到操作处理结果;进一步地生成冲突表格,若读表格为二维矩阵tabler[n-i+1,m],写表格为二维矩阵tablew[n-i+1,m],则冲突表格为table[n-i+1,m];需要说明的是,由于第一有效交易作为读表格和写表格的第一行,且第一有效交易为读写集匹配结果为符合且串行冲突判断处理结果为无串行冲突的交易,因此,不再需要对读表格和写表格的第一行(即第一有效交易所在的行)进行与操作处理,且将冲突表格中的第一行全都标记为0。[0064]一个具体的实施例2中,若读表格中的第3行的交易t3对应于键值k0的标记为0,对应于键值k1的标记为1;写表格中的第1行的交易t1对应的键值k0为0,对应于键值k1的标记为0;写表格中的第2行的交易t2对应的键值k0为1,对应于键值k1的标记为1;[0065]将读表格中的第3行的交易t3对应键值k0及k1的值依次与写表格中的第1行交易t1对应键值k0及k1的值进行与操作处理,得到操作处理结果0&&0=0及1&&0=0;将读表格中的第3行的交易t3对应键值k0及k1的值依次与写表格中的第2行交易t2对应键值k0及k1的值进行与操作处理,得到操作处理结果0&&1=0及1&&1=1。[0066]本发明一可选的实施例中,步骤132包括:t01000000t10000010t20000010t30000100t40000001t50001000t60001000[0082]表3[0083]由于t0为第一有效交易,则不再对t0进行与操作处理,将冲突表格中的第一行全都标记为有效交易状态,这里是指将冲突表格中的第一行全都标记为0,按照逻辑操作处理的规则,得到冲突表格如下表4所示:[0084]k0k1k2k3k4k5k6t00000000t11(t0)000000t20000000t30000000t400001(t3)00t50000000t60001(t5)000[0085]表4[0086]由表4可见,交易t1与交易t0之间在键值k0存在冲突,交易t4与交易t3之间在键值k4存在冲突,交易t6与交易t5之间在键值k3存在冲突;进一步地,结合表1的交易读写集可知,交易t1与交易t0之间在键值k0存在写读依赖,交易t4与交易t3之间在键值k4存在range-query依赖,交易t6与交易t5之间在键值k3存在写读依赖;[0087]则,如图2所示,根据冲突表格可得到依赖关系图,依赖关系图中包括交易t0、t1、t2、t3、t4、t5以及t6,其中,交易t1与交易t0之间在键值k0存在写读依赖,交易t4与交易t3之间在键值k4存在range-query依赖,交易t6与交易t5之间在键值k3存在写读依赖,t2与其他交易之间不存在交易依赖关系,因此,根据依赖关系图,可将t1、t4以及t6标记识别无效交易。[0088]本发明的方案通过确定区块中n个交易中的第一有效交易,所述n个交易按照交易顺序进行排序,n为正整数;生成从第一有效交易至第n交易的读操作的读表格和写操作的写表格;根据所述读表格和写表格,得到交易之间的依赖关系图;所述依赖关系图用于体现各交易之间的交易依赖关系;本发明的方案在验证阶段构建能体现各交易之间的交易依赖关系的依赖关系图,构建过程易于实现,可有效地减少了需要进行多版本并发控制mvcc的交易数量,同时减少了多版本并发控制mvcc执行导致的延迟。[0089]如图3所示,本发明的实施例还提供一种交易依赖关系的识别装置30,所述装置30包括:[0090]生成模块31,用于确定区块中n个交易中的第一有效交易,所述n个交易按照交易顺序进行排序,n为正整数;生成从第一有效交易至第n交易的读操作的读表格和写操作的写表格;[0091]处理模块32,用于根据所述读表格和写表格,得到交易之间的依赖关系图;所述依赖关系图用于体现各交易之间的交易依赖关系。[0092]可选的,确定区块中n个交易中的第一有效交易,包括:[0093]对所述区块的n个交易按照所述交易顺序进行读写集匹配处理和串行冲突判断处理,将首个读写集匹配结果为符合且串行冲突判断处理结果为无串行冲突的交易确定为第一有效交易。[0094]可选的,生成从第一有效交易至第n交易的读操作的读表格和写操作的写表格,包括:[0095]获取所述第一有效交易至第n交易的交易读写集,所述交易读写集用于表示每个交易对键值执行的操作的集合;[0096]根据所述交易读写集,生成从第一有效交易至第n交易的读表格和写表格。[0097]可选的,根据所述读表格和写表格,得到交易之间的依赖关系图,包括:[0098]对所述读表格和写表格进行逻辑操作处理,得到冲突表格;[0099]根据所述冲突表格,得到交易之间的依赖关系图。[0100]可选的,对所述读表格和写表格进行逻辑操作处理,得到冲突表格,包括:[0101]将所述读表格的第m行,依次与所述写表格中的第1至第m-1行进行与操作处理,得到操作处理结果;其中,1<m≤n;[0102]根据所述操作处理结果,生成冲突表格。[0103]可选的,根据所述冲突表格,得到交易之间的依赖关系图,包括:[0104]根据所述冲突表格,结合所述交易读写集,确定每个交易之间的交易依赖关系;[0105]根据所述交易依赖关系,生成交易之间的依赖关系图。[0106]可选的,所述交易依赖关系包括以下至少一项:[0107]写读依赖,搜索范围range-query依赖,背书策略依赖。[0108]需要说明的是,该装置是与上述交易依赖关系的识别方法对应的装置,上述方法的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。[0109]本发明的实施例还提供一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如上述的交易依赖关系的识别方法的步骤。上述方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。[0110]本发明的实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如上所述的方法。上述方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。[0111]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。[0112]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0113]在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0114]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0115]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。[0116]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。[0117]此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。[0118]因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。[0119]以上所述是本发明的优选实施方式,应当指出,对于本
技术领域:
:的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
技术特征:
1.一种交易依赖关系的识别方法,其特征在于,所述方法包括:确定区块中n个交易中的第一有效交易,所述n个交易按照交易顺序进行排序,n为正整数;生成从第一有效交易至第n交易的读操作的读表格和写操作的写表格;根据所述读表格和写表格,得到交易之间的依赖关系图;所述依赖关系图用于体现各交易之间的交易依赖关系。2.根据权利要求1所述的交易依赖关系的识别方法,其特征在于,确定区块中n个交易中的第一有效交易,包括:对所述区块的n个交易按照所述交易顺序进行读写集匹配处理和串行冲突判断处理,将首个读写集匹配结果为符合且串行冲突判断处理结果为无串行冲突的交易确定为第一有效交易。3.根据权利要求1所述的交易依赖关系的识别方法,其特征在于,生成从第一有效交易至第n交易的读操作的读表格和写操作的写表格,包括:获取所述第一有效交易至第n交易的交易读写集,所述交易读写集用于表示每个交易对键值执行的操作的集合;根据所述交易读写集,生成从第一有效交易至第n交易的读表格和写表格。4.根据权利要求3所述的交易依赖关系的识别方法,其特征在于,根据所述读表格和写表格,得到交易之间的依赖关系图,包括:对所述读表格和写表格进行逻辑操作处理,得到冲突表格;根据所述冲突表格,得到交易之间的依赖关系图。5.根据权利要求4所述的交易依赖关系的识别方法,其特征在于,对所述读表格和写表格进行逻辑操作处理,得到冲突表格,包括:将所述读表格的第m行,依次与所述写表格中的第1至第m-1行进行与操作处理,得到操作处理结果;其中,1<m≤n;根据所述操作处理结果,生成冲突表格。6.根据权利要求5所述的交易依赖关系的识别方法,其特征在于,根据所述冲突表格,得到交易之间的依赖关系图,包括:根据所述冲突表格,结合所述交易读写集,确定每个交易之间的交易依赖关系;根据所述交易依赖关系,生成交易之间的依赖关系图。7.根据权利要求6所述的交易依赖关系的识别方法,其特征在于,所述交易依赖关系包括以下至少一项:写读依赖,搜索范围range-query依赖,背书策略依赖。8.一种交易依赖关系的识别装置,其特征在于,所述装置包括:生成模块,用于确定区块中n个交易中的第一有效交易,所述n个交易按照交易顺序进行排序,n为正整数;生成从第一有效交易至第n交易的读操作的读表格和写操作的写表格;处理模块,用于根据所述读表格和写表格,得到交易之间的依赖关系图;所述依赖关系图用于体现各交易之间的交易依赖关系。9.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-7任
一项所述的交易依赖关系的识别方法的步骤。10.一种计算机可读存储介质,其特征在于,存储指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至7任一项所述的交易依赖关系的识别方法。
技术总结
本发明提供一种交易依赖关系的识别方法、装置及设备,所述方法包括:确定区块中N个交易中的第一有效交易,所述N个交易按照交易顺序进行排序,N为正整数;生成从第一有效交易至第N交易的读操作的读表格和写操作的写表格;根据所述读表格和写表格,得到交易之间的依赖关系图;所述依赖关系图用于体现各交易之间的交易依赖关系;本发明的方案在验证阶段构建能体现各交易之间的交易依赖关系的依赖关系图,构建过程易于实现,可有效地减少需要进行多版本并发控制MVCC的交易数量,同时减少了多版本并发控制MVCC执行导致的延迟。发控制MVCC执行导致的延迟。发控制MVCC执行导致的延迟。
技术研发人员:张雯 杨波 任兰芳 李娜
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2021.12.27
技术公布日:2023/7/11
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/