一种并行化的事务执行器及其使用方法技术

技术编号:20992272 阅读:24 留言:0更新日期:2019-04-29 22:20
本发明专利技术提供一种并行化的事务执行器及其使用方法,其能够将待执行或事务池按照一定策略进行分配,交由并行化执行器进行并行执行,以达到提升执行效率,提高区块链TPS的目的,其使用方法如下:S1:事务分组,事务池根据预置策略进行事务分组;S2:创建事务执行器,启动监视器进程和事务收集器,根据预置策略创建多个事务执行器,事务执行器抽取与事务执行器对应的事务组;S3:并行执行事务,多个事务执行器同时执行事务,并且接受监视器进程的巡检;S4:收集运行结果,事务收集器收集事务执行器的结果集,并且根据原始事务列表对结果集进行对应排序;S5:事务提取,当区块链需要对事务进行验证或者计算时,调用事务池中完成的结果。

A Parallel Transaction Executor and Its Application

The invention provides a parallel transaction executor and its usage method, which can distribute the pending or transaction pool according to a certain strategy and send it to the parallel executor for parallel execution in order to improve execution efficiency and block chain TPS. The usage method is as follows: S1: transaction grouping, transaction pool grouping according to preset strategy; S2: creating transaction grouping; Executor, start monitor process and transaction collector, create multiple transaction executors according to preset policy, transaction executor extracts transaction groups corresponding to transaction executor; S3: parallel execution of transactions, multiple transaction executors execute transactions at the same time, and accept the patrol of monitor process; S4: collection of running results, transaction collector collects the result set of transaction executor, and The result sets are sorted according to the original transaction list; S5: Transaction extraction, when the block chain needs to verify or calculate transactions, calls the results completed in the transaction pool.

【技术实现步骤摘要】
一种并行化的事务执行器及其使用方法
本专利技术涉及区块链事务执行领域,具体而言,涉及一种并行化的事务执行器及其使用方法。
技术介绍
目前的区块链平台大部分采用的是单实例事务执行机制,即在给出的一个待执行事务列表或事务池中,由一个执行器依次对列表中的事务进行执行,得到一个最终的执行结果集合,该事务列表或事务池按照一定的规则生成,列表有序或列表无序,。但是在现有技术方案中,由于区块链平台的执行机制是单实例,所有事务为串行执行,在很大程度上会降低区块链的每秒事务处理量(以下简称TPS)。尤其是在公共区块链上更加明显,例如以太坊,比特币等,因为需要公共区块链网络的每个节点都执行,该事务列表才能获得最终的确认。
技术实现思路
本专利技术的目的在于提供一种并行化的事务执行器及其使用方法,其能够将待执行事务池按照一定策略进行分配,交由多实例执行器进行并行执行,以达到提升执行效率,提高区块链TPS的目的。本专利技术的实施例是这样实现的:一种并行化的事务执行器及其使用方法,事务执行器将事务池安装预置策略进行分配,并将分配的事务组交由并行的事务执行器执行,其使用方法包括如下步骤:S1:事务分组,所有新增事务由事务池进行统一管理,事务池根据预置策略进行事务分组,预置策略由配置指定或者二次开发接口指定;S2:创建事务执行器,启动监视器进程和事务收集器,根据预置策略创建多个事务执行器,事务执行器抽取与事务执行器对应的事务组,然后由事务执行器执行对应事务;S3:并行执行事务,多个事务执行器同时执行事务,并且事务执行器接受监视器进程的巡检;S4:收集运行结果,事务收集器收集事务执行器的结果集,并且事务收集器根据原始事务列表对结果集进行对应排序;S5:事务提取,当区块链需要对事务进行验证或者计算时,调用事务池中完成的结果,结果包括事务和结果集。在本专利技术的较佳实施例中,上述S2的具体操作步骤如下:所有新增事务进入到自管理事务池中进行统一管理,事务池根据预置策略进行事务分组,事务池准备将事务提供给事务执行器,事务池包括原始事务池和自管理事务池。在本专利技术的较佳实施例中,上述自管理事务池作为原始事务池的镜像事务池,自管理事务池只负责并发执行时的事务管理工作。在本专利技术的较佳实施例中,上述S2的具体操作步骤如下:S21:同时启动一个监视器进程和一个事务收集器,监视器进程负责对所有事务执行器进行监控和健康检查,监视器进程的自身健康状况由主进程负责检查,事务收集器用于对所有事务组在执行完成后的收集工作,事务收集器包括原始事务的顺序索引;S22:监视器进程根据事务池的分组情况,并发启动一定数量的事务执行器,并将事务执行器的ID和至少一个事务分组的ID绑定;S23:事务执行器根据绑定的ID从事务池中抽取属于事务执行器的事务组,然后事务执行器准备执行事务组中的事务。在本专利技术的较佳实施例中,上述S3的具体操作步骤如下:S31:事务执行器对事务组中的事务按顺序执行;S32:所有事务执行器每隔一段时间T向监视器进程发送心跳包,心跳包包括当前资源使用情况和执行进度;S33:监视器进程记录每一个心跳包;若下一个时刻T未收到事务执行器E1传来的心跳包,则监视器进行再次等待时间T,若2T时刻后依然未收到事务执行器E1的心跳包,则判定事务执行器E1接收失败,发送“重新发送”命令立即启动一个相同ID的新事务执行器E2,并向事务执行器E2发送E1最后一次心跳包内容继续执行。在本专利技术的较佳实施例中,上述S33的操作方法还包括:S331:事务执行器E2启动后,若事务执行器E1恢复工作,监视器进程接收到事务执行器E1的心跳包时,监视器进程根据版本号的判定,向事务执行器E1发出“拒绝”命令,事务执行器在收到“拒绝”命令后清除所有工作并退出;S332:若监视器进程失败,监视器进程每个时间T向主进程发送心跳包,由主进程代替或者读取、记录监视器进程工作。在本专利技术的较佳实施例中,上述若监视器进程失败,S332包括两种处理方式:①主进程代替监视器进程工作,并广播通知对应事务执行器的监视器进程变更,直至下一次人工恢复监视器进程或者系统重启;②主进程记录监视器进程工作,将监视器进每次收到的心跳包记录在缓存中,监视器进程向主进程报告在线状态,主进程直接读取或者使用缓存中的数据量。在本专利技术的较佳实施例中,上述②中的主进程在广播时,监视器进程恢复工作,其具体处理方法如下:事务执行器向监视器进程发送多个心跳包,构建多条心跳线。在本专利技术的较佳实施例中,上述S4的具体操作步骤如下:S41:事务执行器在执行完自身事务组中的所有事务后向监视器进程和事务收集器发送完成信息,并将执行后的结果集发送至事务收集器;S42:事务收集器收到结果集后根据原始数据的索引对结果集进行重排序,生成一个与原始事务集相同顺序的新结果集,新结果集发送给事务池;S43:事务池接收到事务收集器发送的新结果集后,向监视器进程和事务收集器发送“结束”命令,关闭和销毁监视器进程和事务收集器,同时监视器进程关闭进程中的所有执行器。在本专利技术的较佳实施例中,上述S5中的区块链对事务进行验证或者计算时,事务接收区块链中的其他功能模块的调用,传递事务和执行后的结果集,与后续过程解耦。本专利技术实施例的有益效果是:本专利技术中的预置策略可以根据业务需求自定义,满足不断复杂的业务需求;采用并行执行事务,在事务执行器中断或失败时,监视器可以重新启动一个新的执行器并继续执行未完成的工作;在收集运行结果时,在事务收集器中进行的重排序确保与原始事务列表执行结果的一致性;本专利技术将执行过程分离开来,并不影响区块链后续的操作和计算,这样既保证了后续过程和计算的正确性,又在最大程度减小了对原有区块链体系的改造成本。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本专利技术实施例的事务池状态机示意图;图2为本专利技术实施例在执行阶段的示意图;图3为本专利技术实施例在事务收集阶段的示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。第一实施例本专利技术的目的在于实现一种并行化的事务执行器及其使用方法,将待执行事务列表或事务池按照一定策略进行分配,交由多实例执行器进行并行执行,以达到提升执行效率,提高区块链TPS的目的。系统内部自维护一套状态机,通过转换函数,对系统运行中的事务进行处理,当一个条本文档来自技高网...

【技术保护点】
1.一种并行化的事务执行器及其使用方法,其特征在于,所述事务执行器将事务池安装预置策略进行分配,并将分配的事务组交由并行的事务执行器执行,所述使用方法包括如下步骤:S1:事务分组,所有新增事务由事务池进行统一管理,所述事务池根据预置策略进行事务分组,所述预置策略由配置指定或者二次开发接口指定;S2:创建事务执行器,启动监视器进程和事务收集器,根据所述预置策略创建多个事务执行器,所述事务执行器抽取与所述事务执行器对应的事务组,然后由所述事务执行器执行对应事务;S3:并行执行事务,多个所述事务执行器同时执行事务,并且所述事务执行器接受所述监视器进程的巡检,所述事务执行器中断或失败时,监视器重新启动一个新的执行器并继续执行未完成的工作;S4:收集运行结果,所述事务收集器收集所述事务执行器的结果集,并且所述事务收集器根据原始事务列表对所述结果集进行对应排序;S5:事务提取,当区块链需要对所述事务进行验证或者计算时,调用所述事务池中完成的结果,所述结果包括事务和结果集。

【技术特征摘要】
1.一种并行化的事务执行器及其使用方法,其特征在于,所述事务执行器将事务池安装预置策略进行分配,并将分配的事务组交由并行的事务执行器执行,所述使用方法包括如下步骤:S1:事务分组,所有新增事务由事务池进行统一管理,所述事务池根据预置策略进行事务分组,所述预置策略由配置指定或者二次开发接口指定;S2:创建事务执行器,启动监视器进程和事务收集器,根据所述预置策略创建多个事务执行器,所述事务执行器抽取与所述事务执行器对应的事务组,然后由所述事务执行器执行对应事务;S3:并行执行事务,多个所述事务执行器同时执行事务,并且所述事务执行器接受所述监视器进程的巡检,所述事务执行器中断或失败时,监视器重新启动一个新的执行器并继续执行未完成的工作;S4:收集运行结果,所述事务收集器收集所述事务执行器的结果集,并且所述事务收集器根据原始事务列表对所述结果集进行对应排序;S5:事务提取,当区块链需要对所述事务进行验证或者计算时,调用所述事务池中完成的结果,所述结果包括事务和结果集。2.根据权利要求1所述的并行化的事务执行器及其使用方法,其特征在于,所述S2的具体操作步骤如下:所有新增事务进入到自管理事务池中进行统一管理,事务池根据所述预置策略进行事务分组,所述事务池准备将所述事务提供给所述事务执行器,所述事务池包括原始事务池和自管理事务池。3.根据权利要求2所述的并行化的事务执行器及其使用方法,其特征在于,所述自管理事务池作为所述原始事务池的镜像事务池,所述自管理事务池只负责并发执行时的事务管理工作。4.根据权利要求1所述的并行化的事务执行器及其使用方法,其特征在于,所述S2的具体操作步骤如下:S21:同时启动一个所述监视器进程和一个事务收集器,所述监视器进程负责对所有所述事务执行器进行监控和健康检查,所述监视器进程的自身健康状况由主进程负责检查,所述事务收集器用于对所有事务组在执行完成后的收集工作,所述事务收集器包括原始事务的顺序索引;S22:所述监视器进程根据所述事务池的分组情况,并发启动一定数量的事务执行器,并将所述事务执行器的ID和至少一个事务分组的ID绑定;S23:所述事务执行器根据绑定的所述ID从所述事务池中抽取属于所述事务执行器的事务组,然后所述事务执行器准备执行所述事务组中的事务。5.根据权利要求1所述的并行化的事务执行器及其使用方法,其特征在于,所述S3的具体操作步骤如下:S31:所述事务执行器对所述事务组中的事务按顺序执行;S32:所有所述事务执行器每隔一段时间T向所述监视器进程发送心跳包,所述心跳包包括当前资源使用情况和执行进度;S33:...

【专利技术属性】
技术研发人员:王学东曹磊
申请(专利权)人:成都佰纳瑞信息技术有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1