CN110806923A - 一种区块链任务的并行处理方法、装置、电子设备和介质 - Google Patents
一种区块链任务的并行处理方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN110806923A CN110806923A CN201911040434.3A CN201911040434A CN110806923A CN 110806923 A CN110806923 A CN 110806923A CN 201911040434 A CN201911040434 A CN 201911040434A CN 110806923 A CN110806923 A CN 110806923A
- Authority
- CN
- China
- Prior art keywords
- transaction request
- executed
- dependency relationship
- task set
- transaction
- 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
Images
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/466—Transaction processing
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种区块链任务的并行处理方法、装置、电子设备和介质,涉及区块链技术领域。具体实现方案为:获取待执行事务请求;识别所述待执行事务请求与当前并行任务集中各事务请求之间的依赖关系;其中,所述并行任务集中包括存在依赖关系的多个事务请求的任务,所述并行任务集中的任务被串行调度执行;根据识别到的依赖关系状态,将所述待执行事务请求的任务添加到当前并行任务集中。通过本申请实施例的技术方案,能够改善任务并行处理的处理性能。
Description
技术领域
本申请涉及计算机技术,具体涉及区块链技术,尤其涉及一种区块链任务的并行处理方法、装置、电子设备和介质。
背景技术
区块链事务处理技术是指在区块链系统中,事务会改变区块链系统的数据状态,不同事务之间可能存在引用关系,为了保证区块链系统的数据状态更新符合预期而采用的一种技术。
目前的区块链事务处理技术可采用任务的串行处理或并行处理,但是限于事务之间的依赖关系,因此各种任务并行处理方法的时间性能还有待提高。
发明内容
本申请实施例提供一种区块链任务的并行处理方法、装置、电子设备和介质,以改善任务并行处理的处理性能。
第一方面,本申请实施例公开了一种区块链任务的并行处理方法,该方法包括:
获取待执行事务请求;
识别所述待执行事务请求与当前并行任务集中各事务请求之间的依赖关系;其中,所述并行任务集中包括存在依赖关系的多个事务请求的任务,所述并行任务集中的任务被串行调度执行;
根据识别到的依赖关系状态,将所述待执行事务请求的任务添加到当前并行任务集中。
上述申请中的一个实施例具有如下优点或有益效果:通过对实时获取的待执行事务请求与当前并行任务集中各事务请求之间的依赖关系进行识别,之后可根据识别到的依赖关系状态,将待执行事务请求的任务动态添加到当前并行任务集中执行。提供了一种流式处理区块链任务的思路,无需定期成批处理事务请求之间的依赖关系,进而降低了时延,改善了任务并行处理的处理性能。
可选的,当前并行任务集的数量为两个以上,每个并行任务集的任务由一个虚拟机串行执行。
可选的,根据识别到的依赖关系状态,将所述待执行事务请求的任务添加到当前并行任务集中包括:
如果识别到的依赖关系状态为所述待执行事务请求与两个以上当前并行任务集中的事务请求存在依赖关系,则将所述待执行事务请求的任务添加到过渡池中,并记录依赖关系;
在当前并行任务集中的事务请求执行完成时,消除所述过渡池中与完成事务请求关联的依赖关系;
如果所述过渡池中的事务请求的依赖关系递减至依赖一个当前并行任务集中的事务请求时,则将所述待执行事务请求的任务添加到依赖的当前并行任务集中。
上述可选方式具有如下优点或有益效果:通过引入过渡池动态记录事务请求之间的依赖关系,进而能够在识别到待执行事务请求与两个以上当前并行任务集中的事务请求存在依赖关系的情况下,动态地将待执行事务请求的任务添加到依赖的一个当前并行任务集中,供执行该当前并行任务集的虚拟机执行,在改善任务并行处理的处理性能的同时,进一步增加了并行处理方案的灵活度。
可选的,根据识别到的依赖关系状态,将所述待执行事务请求的任务添加到当前并行任务集中包括:
如果识别到的依赖关系状态为所述待执行事务请求与任一当前并行任务集中的事务请求不存在依赖关系,则按照预设调度规则,将所述待执行事务请求的任务调度至任一当前并行任务集中执行。
上述可选方式具有如下优点或有益效果:通过根据调度规则,能够在识别到待执行事务请求与任一当前并行任务集中的事务请求不存在依赖关系的情况下,动态地将待执行事务请求的任务调度到任一当前并行任务集中执行,降低了事务处理时延。
可选的,识别所述待执行事务请求与当前并行任务集中各事务请求之间的依赖关系包括:
获取所述待执行事务请求的读数据和写数据;
识别所述待执行事务请求的读数据和写数据,与当前并行任务集中各事务请求的读数据和写数据之间的重叠关系;
如果存在重叠关系则确定为存在依赖关系。
上述可选方式具有如下优点或有益效果:能够有效识别事务请求之间的依赖关系,为事务请求之前依赖关系的识别提供了一种新思路。
第二方面,本申请实施例还公开了一种区块链任务的并行处理装置,该装置包括:
事务请求获取模块,用于获取待执行事务请求;
依赖关系识别模块,用于识别所述待执行事务请求与当前并行任务集中各事务请求之间的依赖关系;其中,所述并行任务集中包括存在依赖关系的多个事务请求的任务,所述并行任务集中的任务被串行调度执行;
事务请求添加模块,用于根据识别到的依赖关系状态,将所述待执行事务请求的任务添加到当前并行任务集中。
第三方面,本申请实施例还公开了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如本申请任一实施例所述的区块链任务的并行处理方法。
第四方面,本申请实施例还公开了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请任一实施例所述的区块链任务的并行处理方法。
上述申请中的一个实施例具有如下优点或有益效果:通过对实时获取的待执行事务请求与当前并行任务集中各事务请求之间的依赖关系进行识别,之后可根据识别到的依赖关系状态,将待执行事务请求的任务动态添加到当前并行任务集中执行。因为采用流式添加待执行事务请求的任务到当前并行任务集的技术手段,可避免定期成批处理事务请求之间的依赖关系而造成时延较大的问题,降低了时延,进而改善了任务并行处理的处理性能。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1A是根据本申请第一实施例提供的一种区块链任务的并行处理方法的流程图;
图1B为本申请第一实施例所适用的有向无环图的示意图;
图2A是根据本申请第二实施例提供的一种区块链任务的并行处理方法的流程图;
图2B为本申请第二实施例所适用的系统架构示意图;
图3是根据本申请第三实施例提供的一种区块链任务的并行处理装置的结构示意图;
图4是用来实现本申请实施例的区块链任务的并行处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
第一实施例
图1A是根据本申请第一实施例提供的一种区块链任务的并行处理方法的流程图,本实施例适用于对区块链任务进行并行处理的情况,以解决目前各种任务并行处理方法事务处理时延较大的问题。该方法可以由区块链任务的并行处理装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于承载区块链系统中节点的电子设备中。如图1A所示,本实施例提供的区块链任务的并行处理方法可以包括:
S110、获取待执行事务请求。
可以理解的是,在任务数量较多的情况下,为了提高任务处理效率,将采用并行处理手段对任务进行处理。由于实际区块链场景下,涉及数量级较大的任务主要体现在多个节点并发向区块链系统提交事务请求的情况,本实施例可适用于事务请求的验证阶段,即对已提交至区块链系统中的事务请求进行验证。此外,由于一个区块链节点可能存在某一时刻并发发起多个事务请求的情况,例如该区块链节点为关联多个轻量级节点的全节点,进而事务请求的提交阶段也可能涉及多个事务请求的预执行需要并行处理的情况。
可选的,待执行事务请求可以是区块链中的其他节点实时提交至区块链系统,请求本机节点进行验证的事务请求;进一步的,待执行事务请求可以为其他节点本地进行预执行处理,并将预处理结果与事务请求绑定提交至区块链系统的事务请求,如基于智能合约的事务请求;或者,待执行事务请求可以为其他节点本地无需进行预执行处理,可直接提交至区块链系统的事务请求,如基于字段格式的交易事务请求;或者待执行事务请求还可以为基于字段格式的交易事务请求和基于智能合约的事务请求。
进一步的,待执行事务请求也可以是提交阶段的事务请求。例如,待执行事务请求可以是本机节点本地产生的需要进行预执行处理的事务请求。
进而,本机节点可以实时获取提交至区块链系统进行验证的待执行事务请求,或者本机节点可以获取本地产生的待执行事务请求。
S120、识别待执行事务请求与当前并行任务集中各事务请求之间的依赖关系。
本实施例中,依赖关系是指事务请求之间相互依赖,不能同时进行处理的关系,实际上也可以称为冲突关系。典型的依赖关系例如是,B事务请求执行所需要读取的数据,是A事务请求执行后产生的数据,则B事务请求依赖于A事务请求。当前并行任务集是当前正在被执行的任务集合。可选的,当前并行任务集的数量可以为两个或两个以上,且任意两个并行任务集之间相互独立,每个并行任务集中可以包括存在依赖关系的多个事务请求的任务,以及每个并行任务集中的任务被串行调度执行。进一步的,每个并行任务集的任务由一个虚拟机串行执行,多个虚拟机之间并行执行不同的并行任务集。
可选的,每个并行任务集中可采用列表形式记录各事务请求之间的依赖关系。由于有向无环图是任意一条边有方向且不存在环路的树状图,能够用于直观表达各事务请求之间的依赖关系。进一步,本实施例中,每个并行任务集中优选采用有向无环图记录各事务请求之间的依赖关系。如图1B所示为本申请第一实施例所适用的有向无环图的示意图。图中每个点即为一个事务请求,事务请求之间有方向的箭头表示事务请求之间的依赖关系。例如,该图中,点B和点A之间存在依赖关系,而点B和点C之间没有连接表示无依赖关系。点E直接依赖于点B和点C,间接依赖于点A。
可选的,识别待执行事务请求与当前并行任务集中各事务请求之间的依赖关系可以是:识别待执行事务请求与当前并行任务集中虚拟机正在执行的事务请求,以及未执行的事务请求之间的依赖关系。为了加快依赖关系判断速度,进一步的,在并行任务集中采用有向无环图记录各事务请求之间的依赖关系情况下,还可以识别待执行事务请求与有向无环图中各叶节点所代表的事务请求之间的依赖关系,进而确定待执行事务请求与有向无环图中所代表的各事务请求之间的依赖关系。
示例性的,识别待执行事务请求与当前并行任务集中各事务请求之间的依赖关系还可以是:获取待执行事务请求的读数据和写数据;识别待执行事务请求的读数据和写数据,与当前并行任务集中各事务请求的读数据和写数据之间的重叠关系;如果存在重叠关系则确定为存在依赖关系。
本实施例中,事务请求在执行过程中需要依赖本地数据中一些已有数据,并可能更改、删除或新增一些数据,即对应于读数据(input数据)和写数据(output数据)。其中,读数据是指事务请求执行过程中需要从本地数据中读取的数据;写数据是指事务请求执行后所要更新(如增加、更改或删除等)的数据。
若本机节点所获取的待执行事务请求为包括预执行结果的基于智能合约的事务请求,进而本机节点可以直接从待执行事务的预执行结果中获取待执行事务请求的写数据或读数据。若本机节点所获取的待执行事务请求为基于字段格式的交易事务请求,进而本机节点可以根据待执行事务请求的字段,如输入字段和输出字段确定待执行事务请求的写数据或读数据。例如,对于UTXO(Unspent Transaction Output,未花费交易输出)形式的待处理事务请求,可以根据输入和输出的事务数据字段标识确定待执行事务请求的写数据或读数据。
具体的,如果待执行事务请求的写数据与当前并行任务集中任意事务请求的写数据或读数据之间存在交集,则可以确定待执行事务请求与该事务请求之间存在依赖关系。此外,若待执行事务请求的读数据与当前并行任务集中任意事务请求的写数据之间存在交集,则也可以确定待执行事务请求与该事务请求之间存在依赖关系。
S130、根据识别到的依赖关系状态,将待执行事务请求的任务添加到当前并行任务集中。
本实施例中,依赖关系状态可以是待执行事务请求与当前并行任务集中的事务请求存在依赖关系或不存在依赖关系。进一步的,在当前并行任务集的数量为两个或两个以上的情况下,依赖关系状态可以是待执行事务请求与任一当前并行任务集中的事务请求不存在依赖关系,还可以是待执行事务请求与一个、两个或两个以上的当前并行任务集中的事务请求存在依赖关系。
可选的,依赖关系状态不同,将待执行事务请求的任务添加到当前并行任务集中的过程不同。例如,如果识别到的依赖关系状态为待执行事务请求与任一当前并行任务集中的事务请求不存在依赖关系,则可以按照预设调度规则,将待执行事务请求的任务调度至任一当前并行任务集中执行。其中,调度规则是预先设定的,用于将待执行事务请求的任务调度至任一当前并行任务集中执行的规则;可选的,调度规则可以包括:任务数量、执行速率以及虚拟机硬件资源等多个影响调度的因素。例如,在任意两个当前并行任务集中任务数量相当的情况下,可以将待执行事务请求调度至执行速率较高的虚拟机所执行的当前并行任务集中。
如果识别到的依赖关系状态为待执行事务请求与一个当前并行任务集中的事务请求存在依赖关系,则可以直接将待执行事务请求的任务添加到依赖的当前并行任务集中,供执行依赖的当前并行任务集中任务的虚拟机执行。
如果识别到的依赖关系状态为待执行事务请求与两个或两个以上的当前并行任务集中的事务请求存在依赖关系,则可以根据待执行事务请求所依赖的每个当前并行任务集中的事务请求执行情况,动态地将待执行事务请求添加至所依赖的一个当前并行任务集中。具体情况将在后续实施例中详细介绍。
需要说明的是,目前基于有向无环图进行事务请求并行处理时,需要定期的成批处理事务请求之间的依赖关系,进而造成事务处理时延较大;而实施例中,本机节点通过采用流式添加待执行事务请求的任务到当前并行任务集的手段,即对实时获取的待执行事务请求与当前并行任务集中各事务请求之间的依赖关系进行识别,并根据识别到的依赖关系状态动态地将待执行事务请求添加至当前并行任务集中执行,可降低事务处理时延。
本申请实施例提供的技术方案,通过对实时获取的待执行事务请求与当前并行任务集中各事务请求之间的依赖关系进行识别,之后可根据识别到的依赖关系状态,将待执行事务请求的任务动态添加到当前并行任务集中执行。提供了一种流式处理区块链任务的思路,无需定期成批处理事务请求之间的依赖关系,进而降低了时延,改善了任务并行处理的处理性能。
第二实施例
图2A是根据本申请第二实施例提供的一种区块链任务的并行处理方法的流程图,本实施例在上述实施例的基础上,提供了一种如果识别到的依赖关系状态为待执行事务请求与两个以上当前并行任务集中的事务请求存在依赖关系的情况下,将待执行事务请求的任务添加到当前并行任务集中的方案。如图2A所示,本实施例提供的区块链任务的并行处理方法可以包括:
S210、获取待执行事务请求。
S220、识别待执行事务请求与当前并行任务集中各事务请求之间的依赖关系。
S230、如果识别到的依赖关系状态为待执行事务请求与两个以上当前并行任务集中的事务请求存在依赖关系,则将待执行事务请求的任务添加到过渡池中,并记录依赖关系。
本实施例中,过渡池可用于动态记录事务请求之间的依赖关系。可选的,过渡池中可以以列表形式记录事务请求之间的依赖关系。例如,可以记录待执行事务请求依赖哪些当前并行任务集、依赖每个当前并行任务集中哪个或哪些事务请求、以及所依赖的每个事务请求的执行状态(正在执行或未执行)等。
进一步的,过渡池中还可以存储有每个当前并行任务集中正在执行以及未执行事务请求所构建的有向无环图,进而,可以依据待执行事务请求与事务请求之间的依赖关系,将待执行事务请求虚拟添加至有向无环图中。
S240、在当前并行任务集中的事务请求执行完成时,消除过渡池中与完成事务请求关联的依赖关系。
具体的,随着虚拟机对当前并行任务集中任务的执行,在当前并行任务集中的事务请求执行完时,可以将执行完的事务请求在过渡池中消除,以此可消除过渡池中与完成事务请求关联的依赖关系。
S250、如果过渡池中的待执行事务请求的依赖关系递减至依赖一个当前并行任务集中的事务请求时,则将待执行事务请求的任务添加到依赖的当前并行任务集中。
具体的,在执行S240之后,如果确定过渡池中的待执行事务请求的依赖关系递减至依赖一个当前并行任务集中的事务请求,即确定过渡池中的待执行事务请求只依赖一个当前并行任务集,则可以将待执行事务请求的任务添加到依赖的当前并行任务集中,供执行该当前并行任务集的虚拟机执行。
可选的,在执行S240之后,如果过渡池中的待执行事务请求的依赖关系未递减至依赖一个当前并行任务集中的事务请求,则随着虚拟机对当前并行任务集中任务的执行,可以重复执行S240和S250,直至确定过渡池中的待执行事务请求的依赖关系递减至依赖一个当前并行任务集中的事务请求,并将待执行事务请求的任务添加到依赖的当前并行任务集中。
如图2B所示,为本申请第二实施例所适用的系统架构示意图。待执行事务请求(PostTX)提交至区块链节点(XChainCore),由调度器(DAG Scheduler)进行调度,首先与执行器集群(Worker Group)中各个虚拟机(UTXOVM)中正在执行的当前并行任务集中的事务请求进行依赖性识别。然后根据识别结果,将待执行事务请求添加到某个任务集中,或放置于过渡池(DAG Status Pool)中。执行完的事务请求产生有事务数据,可记录于本地存储数据(Ledger)中,以及由区块产生器(Block Producer)来产生区块。
本申请实施例提供的技术方案,通过引入过渡池动态记录事务请求之间的依赖关系,进而能够在识别到待执行事务请求与两个以上当前并行任务集中的事务请求存在依赖关系的情况下,动态地将待执行事务请求的任务添加到依赖的一个当前并行任务集中,供执行该当前并行任务集的虚拟机执行,在改善任务并行处理的处理性能的同时,进一步增加了并行处理方案的灵活度。
第三实施例
图3是根据本申请第三实施例提供的一种区块链任务的并行处理装置的结构示意图,该装置可执行本申请任意实施例所提供的区块链任务的并行处理方法,具备执行方法相应的功能模块和有益效果。可选的,该装置可以采用软件和/或硬件的方式实现,并可集成在承载区块链系统中节点的电子设备中。如图3所示,该装置可以包括:
事务请求获取模块310,用于获取待执行事务请求;
依赖关系识别模块320,用于识别待执行事务请求与当前并行任务集中各事务请求之间的依赖关系;其中,并行任务集中包括存在依赖关系的多个事务请求的任务,并行任务集中的任务被串行调度执行;
事务请求添加模块330,用于根据识别到的依赖关系状态,将待执行事务请求的任务添加到当前并行任务集中。
本申请实施例提供的技术方案,通过对实时获取的待执行事务请求与当前并行任务集中各事务请求之间的依赖关系进行识别,之后可根据识别到的依赖关系状态,将待执行事务请求的任务动态添加到当前并行任务集中执行。提供了一种流式处理区块链任务的思路,无需定期成批处理事务请求之间的依赖关系,进而降低了时延,改善了任务并行处理的处理性能。
示例性的,当前并行任务集的数量为两个以上,每个并行任务集的任务由一个虚拟机串行执行。
示例性的,事务请求添加模块330具体可以用于:
如果识别到的依赖关系状态为待执行事务请求与一个当前并行任务集中的事务请求存在依赖关系,则将待执行事务请求的任务添加到依赖的当前并行任务集中。
示例性的,事务请求添加模块330具体还可以用于:
如果识别到的依赖关系状态为待执行事务请求与两个以上当前并行任务集中的事务请求存在依赖关系,则将待执行事务请求的任务添加到过渡池中,并记录依赖关系;
在当前并行任务集中的事务请求执行完成时,消除过渡池中与完成事务请求关联的依赖关系;
如果过渡池中的待执行事务请求的依赖关系递减至依赖一个当前并行任务集中的事务请求时,则将待执行事务请求的任务添加到依赖的当前并行任务集中。
示例性的,事务请求添加模块330具体还可以用于:
如果识别到的依赖关系状态为待执行事务请求与任一当前并行任务集中的事务请求不存在依赖关系,则按照预设调度规则,将待执行事务请求的任务调度至任一当前并行任务集中执行。
示例性的,依赖关系识别模块320具体可以用于:
获取待执行事务请求的写数据和读数据;
识别待执行事务请求的写数据和读数据,与当前并行任务集中各事务请求的读数据和写数据之间的重叠关系;
如果存在重叠关系则确定为存在依赖关系。
示例性的,并行任务集中采用有向无环图记录各事务请求之间的依赖关系。
示例性的,事务请求获取模块310具体可以用于:
获取提交至区块链系统进行验证的待执行事务请求;
其中,待执行事务请求为基于字段格式的交易事务请求和/或基于智能合约的事务请求。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图4所示,是根据本申请实施例的区块链任务的并行处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图4所示,该电子设备包括:一个或多个处理器401、存储器402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI(Graphical User Interface,GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作,例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统。图4中以一个处理器401为例。
存储器402即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的区块链任务的并行处理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的区块链任务的并行处理方法。
存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的区块链任务的并行处理方法对应的程序指令/模块,例如,附图3所示的事务请求获取模块310、依赖关系识别模块320和事务请求添加模块330。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的区块链任务的并行处理方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用来实现区块链任务的并行处理方法的电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至用来实现区块链任务的并行处理方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用来实现区块链任务的并行处理方法的电子设备还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。
输入装置403可接收输入的数字或字符信息,以及产生与用来实现区块链任务的并行处理方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置404可以包括显示设备、辅助照明装置和触觉反馈装置等,其中,辅助照明装置例如发光二极管(Light Emitting Diode,LED),触觉反馈装置例如振动电机等。该显示设备可以包括但不限于,液晶显示器(Liquid Crystal Display,LCD)、LED显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用专用集成电路(Application Specific Integrated Circuit,ASIC)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序也称作程序、软件、软件应用、或者代码,包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置,例如,磁盘、光盘、存储器、可编程逻辑装置(Programmable Logic Device,PLD),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置,例如,阴极射线管(Cathode Ray Tube,CRT)或者LCD监视器;以及键盘和指向装置,例如,鼠标或者轨迹球,用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈例如,视觉反馈、听觉反馈、或者触觉反馈;并且可以用任何形式,包括声输入、语音输入或者、触觉输入,来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统例如,作为数据服务器;或者实施在包括中间件部件的计算系统例如,应用服务器;或者实施在包括前端部件的计算系统例如具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互,或者实施在包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信,例如,通信网络,来将系统的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(WideArea Network,WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过对实时获取的待执行事务请求与当前并行任务集中各事务请求之间的依赖关系进行识别,之后可根据识别到的依赖关系状态,将待执行事务请求的任务动态添加到当前并行任务集中执行。因为采用流式添加待执行事务请求的任务到当前并行任务集的技术手段,可避免定期成批处理事务请求之间的依赖关系而造成时延较大的问题,降低了时延,进而改善了任务并行处理的处理性能。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (11)
1.一种区块链任务的并行处理方法,其特征在于,包括:
获取待执行事务请求;
识别所述待执行事务请求与当前并行任务集中各事务请求之间的依赖关系;其中,所述并行任务集中包括存在依赖关系的多个事务请求的任务,所述并行任务集中的任务被串行调度执行;
根据识别到的依赖关系状态,将所述待执行事务请求的任务添加到当前并行任务集中。
2.根据权利要求1所述的方法,其特征在于,当前并行任务集的数量为两个以上,每个并行任务集的任务由一个虚拟机串行执行。
3.根据权利要求1所述的方法,其特征在于,根据识别到的依赖关系状态,将所述待执行事务请求的任务添加到当前并行任务集中包括:
如果识别到的依赖关系状态为所述待执行事务请求与一个当前并行任务集中的事务请求存在依赖关系,则将所述待执行事务请求的任务添加到依赖的当前并行任务集中。
4.根据权利要求1所述的方法,其特征在于,根据识别到的依赖关系状态,将所述待执行事务请求的任务添加到当前并行任务集中包括:
如果识别到的依赖关系状态为所述待执行事务请求与两个以上当前并行任务集中的事务请求存在依赖关系,则将所述待执行事务请求的任务添加到过渡池中,并记录依赖关系;
在当前并行任务集中的事务请求执行完成时,消除所述过渡池中与完成事务请求关联的依赖关系;
如果所述过渡池中的待执行事务请求的依赖关系递减至依赖一个当前并行任务集中的事务请求时,则将所述待执行事务请求的任务添加到依赖的当前并行任务集中。
5.根据权利要求1所述的方法,其特征在于,根据识别到的依赖关系状态,将所述待执行事务请求的任务添加到当前并行任务集中包括:
如果识别到的依赖关系状态为所述待执行事务请求与任一当前并行任务集中的事务请求不存在依赖关系,则按照预设调度规则,将所述待执行事务请求的任务调度至任一当前并行任务集中执行。
6.根据权利要求1所述的方法,其特征在于,识别所述待执行事务请求与当前并行任务集中各事务请求之间的依赖关系包括:
获取所述待执行事务请求的读数据和写数据;
识别所述待执行事务请求的读数据和写数据,与当前并行任务集中各事务请求的读数据和写数据之间的重叠关系;
如果存在重叠关系则确定为存在依赖关系。
7.根据权利要求1所述的方法,其特征在于,所述并行任务集中采用有向无环图记录各事务请求之间的依赖关系。
8.根据权利要求1所述的方法,其特征在于,获取待执行事务请求包括:
获取提交至区块链系统进行验证的待执行事务请求;
其中,所述待执行事务请求为基于字段格式的交易事务请求和/或基于智能合约的事务请求。
9.一种区块链任务的并行处理装置,其特征在于,包括:
事务请求获取模块,用于获取待执行事务请求;
依赖关系识别模块,用于识别所述待执行事务请求与当前并行任务集中各事务请求之间的依赖关系;其中,所述并行任务集中包括存在依赖关系的多个事务请求的任务,所述并行任务集中的任务被串行调度执行;
事务请求添加模块,用于根据识别到的依赖关系状态,将所述待执行事务请求的任务添加到当前并行任务集中。
10.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的区块链任务的并行处理方法。
11.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的区块链任务的并行处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911040434.3A CN110806923B (zh) | 2019-10-29 | 2019-10-29 | 一种区块链任务的并行处理方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911040434.3A CN110806923B (zh) | 2019-10-29 | 2019-10-29 | 一种区块链任务的并行处理方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110806923A true CN110806923A (zh) | 2020-02-18 |
CN110806923B CN110806923B (zh) | 2023-02-24 |
Family
ID=69489505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911040434.3A Active CN110806923B (zh) | 2019-10-29 | 2019-10-29 | 一种区块链任务的并行处理方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110806923B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475262A (zh) * | 2020-04-02 | 2020-07-31 | 百度国际科技(深圳)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111506783A (zh) * | 2020-04-08 | 2020-08-07 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111597028A (zh) * | 2020-05-19 | 2020-08-28 | 北京百度网讯科技有限公司 | 用于任务调度的方法和装置 |
CN111640020A (zh) * | 2020-05-22 | 2020-09-08 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111857804A (zh) * | 2020-07-22 | 2020-10-30 | 北京达佳互联信息技术有限公司 | 离线任务的处理方法、装置、电子设备及存储介质 |
CN111930487A (zh) * | 2020-08-28 | 2020-11-13 | 北京百度网讯科技有限公司 | 作业流调度方法、装置、电子设备及存储介质 |
CN112000682A (zh) * | 2020-08-25 | 2020-11-27 | 北京达佳互联信息技术有限公司 | 数据同步任务调度方法、装置、服务器及存储介质 |
CN112418588A (zh) * | 2020-09-03 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 任务流显示方法及装置 |
CN112764897A (zh) * | 2020-12-31 | 2021-05-07 | 杭州趣链科技有限公司 | 任务请求的处理方法、装置、系统及计算机可读存储介质 |
CN113034142A (zh) * | 2021-01-29 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置以及计算机设备 |
CN113534750A (zh) * | 2020-04-15 | 2021-10-22 | 北京旷视机器人技术有限公司 | 密集存储下的作业调度方法、装置、系统、设备及介质 |
CN116089403A (zh) * | 2023-04-11 | 2023-05-09 | 北京奥星贝斯科技有限公司 | 一种数据库的流量回放方法和系统 |
CN116501801A (zh) * | 2023-05-11 | 2023-07-28 | 天津大学 | 一种面向许可型区块链的高性能事务异步并发处理方法 |
CN117478716A (zh) * | 2023-12-27 | 2024-01-30 | 珠海格力电器股份有限公司 | 设备的通信方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631831A (zh) * | 2012-08-29 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
CN106575246A (zh) * | 2014-06-30 | 2017-04-19 | 亚马逊科技公司 | 机器学习服务 |
CN106980649A (zh) * | 2017-02-28 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 写入区块链业务数据的方法和装置及业务子集合确定方法 |
CN108681565A (zh) * | 2018-04-28 | 2018-10-19 | 百度在线网络技术(北京)有限公司 | 区块链数据并行处理方法、装置、设备和存储介质 |
JP2019514235A (ja) * | 2016-02-23 | 2019-05-30 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ブロックチェーンシステム内におけるフィードバックを統合したエージェントベースチューリング完全なトランザクション |
-
2019
- 2019-10-29 CN CN201911040434.3A patent/CN110806923B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631831A (zh) * | 2012-08-29 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 一种数据备份方法及装置 |
CN106575246A (zh) * | 2014-06-30 | 2017-04-19 | 亚马逊科技公司 | 机器学习服务 |
JP2019514235A (ja) * | 2016-02-23 | 2019-05-30 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ブロックチェーンシステム内におけるフィードバックを統合したエージェントベースチューリング完全なトランザクション |
CN106980649A (zh) * | 2017-02-28 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 写入区块链业务数据的方法和装置及业务子集合确定方法 |
CN108681565A (zh) * | 2018-04-28 | 2018-10-19 | 百度在线网络技术(北京)有限公司 | 区块链数据并行处理方法、装置、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
XIAO KAI: "Public welfare time bank system based on blockchain technology", 《JOURNAL OF COMPUTER APPLICATIONS》 * |
周冬冬: "区块链系统分布式计算的ADMM算法 及其在主动配电网中的应用", 《发电技术》 * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475262B (zh) * | 2020-04-02 | 2024-02-06 | 百度国际科技(深圳)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111475262A (zh) * | 2020-04-02 | 2020-07-31 | 百度国际科技(深圳)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111506783A (zh) * | 2020-04-08 | 2020-08-07 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111506783B (zh) * | 2020-04-08 | 2023-12-22 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN113534750A (zh) * | 2020-04-15 | 2021-10-22 | 北京旷视机器人技术有限公司 | 密集存储下的作业调度方法、装置、系统、设备及介质 |
CN111597028B (zh) * | 2020-05-19 | 2023-08-25 | 北京百度网讯科技有限公司 | 用于任务调度的方法和装置 |
CN111597028A (zh) * | 2020-05-19 | 2020-08-28 | 北京百度网讯科技有限公司 | 用于任务调度的方法和装置 |
CN111640020A (zh) * | 2020-05-22 | 2020-09-08 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
US11769125B2 (en) | 2020-05-22 | 2023-09-26 | Baidu Online Network Technology (Beijing) Co., Ltd | Method and apparatus for processing transaction requests in blockchain, device and medium |
CN111640020B (zh) * | 2020-05-22 | 2023-09-19 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CN111857804A (zh) * | 2020-07-22 | 2020-10-30 | 北京达佳互联信息技术有限公司 | 离线任务的处理方法、装置、电子设备及存储介质 |
CN112000682A (zh) * | 2020-08-25 | 2020-11-27 | 北京达佳互联信息技术有限公司 | 数据同步任务调度方法、装置、服务器及存储介质 |
CN111930487B (zh) * | 2020-08-28 | 2024-05-24 | 北京百度网讯科技有限公司 | 作业流调度方法、装置、电子设备及存储介质 |
CN111930487A (zh) * | 2020-08-28 | 2020-11-13 | 北京百度网讯科技有限公司 | 作业流调度方法、装置、电子设备及存储介质 |
CN112418588B (zh) * | 2020-09-03 | 2023-08-01 | 上海哔哩哔哩科技有限公司 | 任务流显示方法及装置 |
CN112418588A (zh) * | 2020-09-03 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 任务流显示方法及装置 |
CN112764897A (zh) * | 2020-12-31 | 2021-05-07 | 杭州趣链科技有限公司 | 任务请求的处理方法、装置、系统及计算机可读存储介质 |
CN112764897B (zh) * | 2020-12-31 | 2024-03-22 | 杭州趣链科技有限公司 | 任务请求的处理方法、装置、系统及计算机可读存储介质 |
CN113034142B (zh) * | 2021-01-29 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置以及计算机设备 |
CN113034142A (zh) * | 2021-01-29 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置以及计算机设备 |
CN116089403A (zh) * | 2023-04-11 | 2023-05-09 | 北京奥星贝斯科技有限公司 | 一种数据库的流量回放方法和系统 |
CN116501801B (zh) * | 2023-05-11 | 2023-10-13 | 天津大学 | 一种面向许可型区块链的高性能事务异步并发处理方法 |
CN116501801A (zh) * | 2023-05-11 | 2023-07-28 | 天津大学 | 一种面向许可型区块链的高性能事务异步并发处理方法 |
CN117478716A (zh) * | 2023-12-27 | 2024-01-30 | 珠海格力电器股份有限公司 | 设备的通信方法、装置、电子设备及存储介质 |
CN117478716B (zh) * | 2023-12-27 | 2024-04-05 | 珠海格力电器股份有限公司 | 设备的通信方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110806923B (zh) | 2023-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110806923B (zh) | 一种区块链任务的并行处理方法、装置、电子设备和介质 | |
CN112668386A (zh) | 使用机器人过程自动化用于文档处理的长时间运行工作流 | |
CN111475262B (zh) | 区块链中事务请求处理方法、装置、设备和介质 | |
US20210248469A1 (en) | Method and apparatus for scheduling deep learning reasoning engines, device, and medium | |
CN111708520B (zh) | 应用构建方法、装置、电子设备及存储介质 | |
CN108280150B (zh) | 一种分布式异步业务分发方法及系统 | |
CN112527474B (zh) | 任务处理方法及装置、设备、可读介质、计算机程序产品 | |
CN111488492B (zh) | 用于检索图数据库的方法和装置 | |
CN111783952A (zh) | 配置方法、装置、系统、电子设备以及存储介质 | |
CN112540914A (zh) | 单元测试的执行方法、执行装置、服务器和存储介质 | |
CN111461343A (zh) | 模型参数更新方法及其相关设备 | |
US20080320291A1 (en) | Concurrent exception handling | |
CN112306646A (zh) | 用于处理事务的方法、装置、设备及可读存储介质 | |
CN111158666A (zh) | 实体归一化处理方法、装置、设备及存储介质 | |
US8146085B2 (en) | Concurrent exception handling using an aggregated exception structure | |
CN112565356A (zh) | 数据存储方法、装置以及电子设备 | |
CN111782147A (zh) | 用于集群扩缩容的方法和装置 | |
CN111339187A (zh) | 基于智能合约的数据处理方法、装置、设备和存储介质 | |
EP3819758A2 (en) | Instruction executing method and apparatus, electronic device, and computer-readable storage medium | |
CN111563253B (zh) | 智能合约运行方法、装置、设备及存储介质 | |
CN111767059B (zh) | 深度学习模型的部署方法、装置、电子设备和存储介质 | |
CN113723893A (zh) | 用于处理订单的方法和装置 | |
CN111767149B (zh) | 调度方法、装置、设备及存储设备 | |
CN111782357B (zh) | 标签控制方法及装置、电子设备和可读存储介质 | |
CN111738325A (zh) | 图像识别方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |