一种跨分片事务处理方法及系统

文档序号:37343761发布日期:2024-03-18 18:16阅读:18来源:国知局
一种跨分片事务处理方法及系统

本说明书实施例涉及数据处理,尤其涉及一种跨分片事务处理方法及系统。


背景技术:

1、当前的区块链系统中,每个节点存储所有的状态,同时处理所有的事务,在保证了安全性的同时限制了可扩展性。区块链分片的基本思路是将区块链网络中的节点分成若干个相对独立的分片,单个分片处理规模较小的事务甚至只存储部分网络状态,多个分片并行处理事务,从而使整个网络的吞吐量得到提升。

2、虽然分片是一个令人兴奋和充满希望的方向,但是分片在提升了效率的同时也带来了新的问题,主要包括分片内部的安全和效率问题,以及跨分片交易引发的跨分片安全和效率问题。现有的区块链系统主要关注点都在如何提高系统的安全性,而难以同时提高事务处理的效率。一笔交易可能包括多个输入和多个输出,进行跨分片通信需要权衡通信导致的成本和性能提升带来的收益。另外跨分片交易往往不可避免,极端情况下,系统内的交易全部是跨分片交易,此时系统的性能将低于分片之前。

3、现有适用于分片区块链系统的技术方案较为匮乏,多以传统分布式事务处理办法为主,常见的方法是一种是使用分布式锁来进行跨分片事务管理,一种是通过中心化排序节点对所有事务进行排序。但这种方法为集中式串行排序,排序成本较高,此外分片将所有事务发给排序节点对于分片内的事务来说会造成通信资源的浪费。

4、现在亟需一种跨分片事务处理方法,从而解决目前跨分片事务处理技术因集中式串行排序,导致排序成本较高,且未区分分片内事务和跨分片事务,浪费了通信资源的问题。


技术实现思路

1、为解决目前跨分片事务处理技术因集中式串行排序,导致排序成本较高,且未区分分片内事务和跨分片事务,浪费了通信资源的问题,本说明书实施例提供了一种跨分片事务处理方法及系统,该方法通过分发epoch编号模拟全局逻辑时钟,对到达分片节点的事务进行时间上的划分,通过确定性事务对每个epoch时间片内的事务进行确定性事务处理,使得每个epoch时间片内的事务可以并行执行,最后通过epoch模块将跨分片事务结合epoch编号对所有分片进行同步,实现跨分片事务管理。

2、为了解决上述技术问题,本说明书实施例的具体技术方案如下:

3、一方面,本说明书实施例提供了一种跨分片事务处理方法,所述方法包括:

4、各分片节点在接收到跨分片服务模块发送的当前epoch编号以及当前epoch编号对应的属于自身的本地事务类型的跨分片事务后,对所述跨分片事务进行处理,其中,所述跨分片事务为所述跨分片服务模块在上一epoch编号至当前epoch编号之间接收到的由其他分片节点接收自客户端发送的不属于自身的本地事务类型的第一事务,同时各分片节点分别判断各自接收到的客户端发送的第二事务是否属于自身的本地事务类型,若属于自身的本地事务类型,则将所述第二事务作为本地事务并处理所述本地事务,若不属于自身的本地事务类型,则将所述第二事务作为非本地事务发送给所述跨分片服务模块。

5、进一步地,所述方法还包括:

6、所述跨分片服务模块接收到各分片节点发送的所述非本地事务后,对所述非本地事务进行第一确定性事务处理,得到第一确定性事务序列,并在向各分片节点发送下一epoch编号时,将所述第一确定性事务序列中的跨分片事务发送给对应的分片节点进行处理。

7、进一步地,所述跨分片服务模块对所述非本地事务进行第一确定性事务处理,得到第一确定性事务序列进一步包括:

8、对各分片节点发送的所述非本地事务进行读写冲突检测;

9、中止存在读写冲突的所述非本地事务,并将不存在读写冲突的所述非本地事务组成所述第一确定性事务序列。

10、进一步地,对各分片节点发送的所述非本地事务进行读写冲突检测进一步包括:

11、将各分片节点发送的所述非本地事务作为待处理跨分片事务;

12、确定所述待处理跨分片事务对应的数据要素以及所述数据要素的读写类型;

13、根据所述待处理跨分片事务的接收顺序对相同数据要素的读写类型进行读写冲突检测,若所述待处理跨分片事务的至少一个数据要素存在读写冲突,则所述待处理跨分片事务存在读写冲突。

14、进一步地,将不存在读写冲突的所述非本地事务组成所述第一确定性事务序列之后,所述方法还包括:

15、在所述第一确定性事务序列中记录各待处理跨分片事务的接收顺序,以便于所述分片节点按照所述待处理跨分片事务的接收顺序对所述待处理跨分片事务进行处理。

16、进一步地,所述方法还包括:

17、各分片节点对各自分片的处理事务范围进行共识验证,以便于所述跨分片服务模块根据共识验证的结果确定所述第一确定性事务序列中的跨分片事务对应的分片节点,并将所述跨分片事务发送给对应的分片节点进行处理。

18、进一步地,所述分片节点处理所述跨分片事务和本地事务的方法进一步包括:

19、按照所述跨分片事务和本地事务各自的优先级对所述跨分片事务和本地事务进行处理。

20、进一步地,所述分片节点处理所述跨分片事务和本地事务的方法进一步包括:

21、所述分片节点对所述跨分片事务和本地事务进行第二确定性事务处理,得到第二确定性事务序列,并对所述第二确定性事务序列中的事务进行处理。

22、进一步地,所述分片节点对所述跨分片事务进行处理之前,所述方法还包括:

23、在所述当前epoch编号之前的事务处理完毕后,生成当前快照,以便于在所述当前快照内处理所述跨分片事务和本地事务,将处理结果存储在所述当前快照对应的内存空间中;

24、在接收到下一epoch编号前,处理完毕所述跨分片事务和本地事务,结束所述当前快照,将所述当前快照对应的内存空间中的处理结果存储在磁盘中。

25、另一方面,本说明书实施例还挺提供了一种跨分片事务处理系统,所述系统包括多个分片节点以及跨分片服务模块;

26、所述分片节点和跨分片服务模块对客户端发送的事务进行处理时,执行上述方法。

27、利用本说明书实施例,跨分片服务模块周期性地产生连续的epoch编号,并将epoch编号发送给各分片节点,在发送epoch编号的同时,还将当前epoch编号对应的属于各分片节点本地事务类型的跨分片事务发送给各分片节点,以便于各分片节点对跨分片服务模块发送的跨分片事务进行处理。当分片节点接收到epoch编号后,判断自身接收到的客户端发送的第二事务是否属于自身的本地事务类型,若属于则处理该第二事务,若不属于自身的本地事务类型,则将该第二事务发送给跨分片服务模块,以便于跨分片服务模块将该第二事务在发送下一个epoch编号时发送给相应的分片节点进行处理。本说明书实施例通过epoch编号机制实现了分布式同步锁的功能,使用epoch编号划分时间片来控制跨分片事务的同步执行,相比于传统分布式锁的方法,减少了显式分布式锁的性能开销,提高了事务的并行处理能力。此外相比于中心化排序的方法,本说明书实施例不需要将所有事务都发送给排序节点进行排序共识,而是只将不属于自身的本地事务类型的事务发送给跨分片服务模块进行分配即可,减少了分片内事务的排序等待时间与网络通信开销,进一步提高了事务的并行处理能力。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1