使用多个区块链以将事务应用于持久存储系统中的持久数据对象集技术方案

技术编号:37608353 阅读:18 留言:0更新日期:2023-05-18 12:00
通过跨多个区块链记录的事务在持久存储系统(PSS)的网络上复制持久数据对象的分类账储存库。在每个PSS上复制区块链。使用多个区块链能够实现更大的并行性;然而,使用多个区块链需要采取措施,所述措施确保跨多个区块链分布的事务以确保事务一致性级别的方式应用。此外,所述措施是高效的,从而减少了维护事务一致性级别的开销,并增加了使用多个区块链应用事务的吞吐量。事务的吞吐量。事务的吞吐量。

【技术实现步骤摘要】
【国外来华专利技术】使用多个区块链以将事务应用于持久存储系统中的持久数据对象集


[0001]本专利技术涉及企业级持久存储系统,诸如文件系统、数据库管理系统、键

值存储系统、文档存储系统,特别涉及在企业级持久存储系统内原生实现区块链技术。

技术介绍

[0002]传统的持久存储系统可以处理由多个并发用户读取和/或修改的大量数据。企业级持久存储系统(以下简称PSS)维护由PSS管理的持久数据的数据完整性、一致性和安全性。
[0003]PSS可以是例如由DBMS管理的数据库、存储在文件系统中的文件、或由键

值存储系统管理的键

值对象、由文档存储系统(DOCS)管理的文档(例如,JSON或XML文档)。PSS将数据存储在持久数据对象中。例如,持久数据对象集可以是由DBMS管理的数据库表、由键

值存储系统管理的键

值对、由DOCS管理的文档集或者由文件系统管理的文件。持久数据对象可以是包括多个持久数据对象的复合数据对象。例如,在DBMS中,数据库表可以包括作为持久数据对象的多个行。在文件系统中,文件可以包括作为持久数据对象的多个块,目录可以是包含文件并且甚至包含作为持久数据对象的其他目录的持久数据对象。在DOCS中,持久数据对象可以是JSON文档的集合。
[0004]各种PSS(诸如DBMS和键

值存储系统)为更新和查询PSS提供了卓越的性能。PSS的用户可以依赖于存储在PSS中的持久数据对象的有效性,因为对数据对象的改变由诸如公司或组织之类的集中机构控制。通常,对存储在PSS中的数据所做的任何改变都由属于同一中央机构的用户进行,因此受其访问策略的约束。
[0005]对于分离的实体(例如,企业、组织、政府)来说,以实体可以依赖于共享数据的有效性的方式来共享对任务关键的共享数据的读取和写入访问变得越来越重要。这种数据在本文中被称为分布式分类账数据。
[0006]用于实现分布式分类账数据的方法是区块链应用方法。在这种方法中,分布式分类账数据作为持久数据对象在每个PSS处被复制在“对象的分类账储存库”中。对持久数据对象(“分类账对象”)的改变由在PSS中的一个PSS(“发起者PSS”)处发起但未提交的事务进行。事务和相应的改变被记录在添加到区块链的区块内,该区块链跨PSS中的每个PSS复制。其他PSS从区块链中的区块读取关于事务的信息,并在其他PSS中的每个PSS处重放(replay)对持久数据对象的副本(replica)的相应改变。术语重放意味着在不提交改变的情况下进行改变。改变由其他PSS“批准”。一旦被批准,PSS就会提交改变。关于改变的批准的活动被记录在区块链中的区块中。
[0007]如上所示,区块链应用方法使用区块链来将改变传播到对象的分类账储存库。关于使用区块链来传播改变的问题源于如下事实,即向区块链添加区块是串行操作,该串行操作需要多个PSS参与以添加区块并批准事务。这些操作的串行性质阻碍了在PSS处复制对象的分类账储存库的吞吐量,特别是阻碍了并行应用事务以在PSS之间复制事务的能力。
附图说明
[0008]在附图中:
[0009]图1A是描绘根据本专利技术实施例的区块链应用网络的图。
[0010]图1B是描绘在本专利技术实施例中使用的数据结构的图。
[0011]图2是描绘根据本专利技术实施例的区块链应用过程的图。
[0012]图3是描绘根据本专利技术实施例的区块链中的区块的图。
[0013]图4是描绘根据本专利技术实施例的使用依赖性检查点方法的区块链应用过程的图。
[0014]图5是图示根据实施例的使用立墓碑(tombstoning)和诱发的(induced)事务依赖性来避免唯一约束的复制定时不一致性的过程的图。
[0015]图6是图示根据实施例的使用诱发的事务依赖性来避免外键约束的复制定时不一致性的过程的图。
[0016]图7是描绘可以用于实现本专利技术实施例的计算机系统的图。
[0017]图8描绘了根据本专利技术实施例的可以用于控制计算机系统的操作的软件系统。
具体实施方式
[0018]在以下描述中,为了解释的目的,阐述了许多具体细节以便提供对本专利技术的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践本专利技术。
[0019]总体概述
[0020]本文描述了用于使用区块链应用在PSS的网络上复制持久数据对象的分类账储存库的方法,该方法实现用于使用区块链应用复制改变的更大的并行性。这种方法在本文中被称为聚合区块链应用,因为方法依赖于聚合区块链。聚合区块链包括多个区块链,其中每个区块链都被复制在PSS的网络中的每个PSS上。任何PSS都可以用于批准事务并将事务复制到持久数据对象的分类账储存库。聚合区块链中的每个区块链在本文中被称为成员区块链或简称为区块链。
[0021]可以通过不同的成员区块链处理对于分类账储存库中的持久数据对象的单独的事务。事实上,如后文所解释的那样,关于单个复制的事务的每个PSS的批准的信息可以被记录在单独的区块中,该区块可以位于单独的成员区块链中。因此,关于单个复制的事务的信息可以被记录在不同的成员区块链中。
[0022]在聚合区块链应用下,分类账储存库的事务的历史跨成员区块链被记录。成员区块链可以按适当的次序合并,以提供关于对分类账储存库进行的事务的历史排序信息。实际上,聚合区块链是记录关于事务的历史排序信息的单个逻辑区块链。因此,成员区块链在本文中被统称为聚合区块链。
[0023]在实施例中,向单个成员区块链添加区块仍然是串行操作,其阻碍了通过单个成员区块链并行应用事务的吞吐量。然而,跨多个成员区块链复制事务使得能够并行应用更多事务。
[0024]当并行应用事务以将事务复制到网络中的任何PSS时,必须以与事务依赖性一致的方式安排事务的应用或以其他方式对事务的应用进行排序。与事务依赖性的一致性需要解决要应用的每个事务的事务依赖性,这个过程可能需要开销。当要并行应用更多事务时,开销会复杂化。因此,越是能高效地解决事务依赖性,应用事务的吞吐量和可扩展性就越
大。本文中描述了用于更高效地解决事务依赖性的方法。
[0025]事务处理
[0026]在事务处理中,对持久数据对象的改变是由事务进行的。事务是改变持久数据对象的操作的集合。对事务的所有改变都是原子地进行的。通过提交事务使改变永久化。如果事务被中止或以其他方式未提交,那么事务回滚。
[0027]在分布式事务处理中,多个PSS参与者提交分布式事务以使用由事务管理器管理的分阶段方法来改变相应的数据对象。分阶段方法至少包括参与者达到准备完成状态的阶段。当处于事务的准备完成状态时,参与者已执行达到参与者可以保证能够提交事务但尚未提交事务的状态所需的操作。参与者可以被事务管理器指示达到准备完成状态,并向事务管理器传达参与者是否已经达到准备完成状态。改变分类账储存库中的持久数据对象的分布式事本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,所述方法包括:BCA网络的特定BCA参与者从特定区块链的特定区块链副本读取第一区块,其中所述第一区块包括由所述BCA网络的发起者BCA参与者执行的特定事务的特定事务上下文;其中由所述BCA网络执行的多个事务包括所述特定事务,其中所述多个事务中的每个事务由所述BCA网络的区块链记录,其中所述多个事务中的每个事务与相应事务提升时间相关联,所述相应事务提升时间指定所述每个事务何时修改了持久对象;其中所述特定事务上下文包括一个或多个记录的第一集合,所述一个或多个记录的第一集合中的每个记录与由所述特定事务修改的相应持久对象对应;其中对于所述一个或多个记录的第一集合中的每个记录,所述每个记录指定相应最后提升时间,对于所述每个记录的相应持久对象,所述相应最后提升时间指定先前修改了所述相应持久对象的所述多个事务中的事务的相应提升时间;所述特定BCA参与者维护检查点值,所述检查点值指定由所述特定区块链的先前应用的区块所记录的事务的先前提升时间;进行特定事务对其具有事务依赖性的任何事务已经提交的确定;其中所述一个或多个记录的第一集合中的特定记录指定特定持久对象的相应最后提升时间,其中进行所述确定包括确定所述特定持久对象的相应最后提升时间小于检查点值。2.根据权利要求1所述的方法,其中所述一个或多个记录的第一集合中的第二记录指定第二持久对象的相应最后提升时间和标识修改了所述第二持久对象的先前事务的事务标识符;其中进行所述确定包括确定所述第二持久对象的相应最后提升时间不小于检查点值;响应于确定所述第二持久对象的相应最后提升时间不小于检查点值,基于事务标识符确定所述先前事务是否已经提交。3.根据权利要求2所述的方法,还包括:在确定所述先前事务已经提交之后,应用所述特定事务。4.根据权利要求2所述的方法,其中一个或多个记录的第一集合指定在所述发起者BCA参与者处由所述特定事务改变的属性的先前值和新值;其中所述方法包括:所述特定BCA参与者重放所述特定事务上下文以生成一个或多个记录的第二集合,所述一个或多个记录的第二集合指定由所述特定BCA参与者处的所述特定事务改变的属性的先前值和新值;所述特定BCA参与者基于一个或多个记录的第一集合与一个或多个记录的第二集合的比较来投票提交所述特定事务。5.根据权利要求1

4中的任一项所述的方法,包括其中所述第一区块包括在所述第一区块的副本被添加到所述发起者BCA参与者处的所述区块链的副本时在处理中的一个或多个事务的最早处理中提升时间;其中所述方法还包括将所述检查点值改变为所述最早处理中提升时间。6.根据权利要求1

5所述的方法,其中所述BCA网络是数据库管理系统的网络,并且所
述特定持久对象是数据库表中的行。7.根据权利要求1

6所述的方法,其中所述一个或多个记录的第一集合包括:所述一个或多个记录的第一集合中的第一...

【专利技术属性】
技术研发人员:J
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:

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

1