当前位置: 首页 > 专利查询>SAP欧洲公司专利>正文

分布式系统中变更的并行处理技术方案

技术编号:32029338 阅读:23 留言:0更新日期:2022-01-27 12:49
系统和方法包括从订户接收对对象的变更的数据的请求;确定与对象关联并包括多个日志记录表条目的日志记录表;基于对象和订户确定指向日志记录表的最后处理的条目的指针;限定最后处理的条目之后日志记录表条目的多个子部分;和使用第一过程重建与多个子部分中的第一个关联的第一数据并将其传送给订户;和与第一过程并行地使用第二过程重建与多个子部分中的第二个关联的第二数据并将其传送给订户。中的第二个关联的第二数据并将其传送给订户。中的第二个关联的第二数据并将其传送给订户。

【技术实现步骤摘要】
分布式系统中变更的并行处理


技术介绍

[0001]常规数据库系统存储与企业的许多方面相关的大量数据。通常需要将存储在一个系统(即,源系统)中的数据的各个部分镜像在一个或多个其他系统(即,目标系统)内。例如,可能需要将存储在特别适合于数据采集和存储的源系统中的数据的一部分镜像在特别适合于数据分析的目标系统内。
[0002]复制服务器可用于创建和更新目标系统中镜像源系统中的相应源对象的目标对象(例如,表或视图)。复制服务器可以利用在源系统上执行的变更数据捕获机制。变更数据捕获机制包括在源系统上执行的数据库触发器,其识别和记录对指定源对象发生的变更。在操作中,复制服务器从变更数据捕获机制请求变更的数据,并且变更数据捕获汇编记录的变更并将汇编的变更返回给复制服务器。然后,复制服务器将汇编的变更应用到对应的目标对象。
[0003]常规上,变更数据捕获机制使用单个过程(process)汇编变更。如果时延要求较宽松或给定对象的变更次数较少,则这样的顺序处理可能就足够了。然而,对于表现出高变更率的对象和/或需要源对象变更和将变更传送到相应目标对象之间的短时延的用例,顺序处理可能是不够的。
[0004]需要用于改进变更汇编和向目标系统传送变更的性能的系统。

技术实现思路
附图说明
[0005]图1是根据一些实施例的复制架构。
[0006]图2是根据一些实施例的变更的并行处理的流程图。
[0007]图3示出了根据一些实施例的订户日志记录表条目的子部分。
[0008]图4是根据一些实施例的包括实现变更的并行处理的变更数据捕获引擎的订户系统和源系统的框图。
[0009]图5是根据一些实施例的性能设置的表格表示。
[0010]图6是根据一些实施例的订户工作列表的表格表示。
[0011]图7是根据一些实施例的订户日志记录表的表格表示。
[0012]图8是根据一些实施例的最后处理的指针表的表格表示。
[0013]图9是根据一些实施例的子部分信息表的表格表示。
[0014]图10是根据一些实施例的子部分边界表的表格表示。
[0015]图11是根据一些实施例的汇编和传送变更的过程的流程图。
[0016]图12是根据一些实施例的提交子部分的处理的过程的流程图。
[0017]图13是根据一些实施例的对子部分的回滚处理的过程的流程图。
[0018]图14是根据一些实施例的包括复制架构的计算设备的框图。
具体实施方式
[0019]提供以下描述以使本领域的任何人能够实现和使用所描述的实施例。然而,各种修改对于本领域技术人员来说仍然是显而易见的。
[0020]一些实施例提供对源系统的对象的记录的变更的并行处理。这样的并行处理包括对记录的变更进行并行汇编并将汇编的变更传送到请求订户。通常,并行处理是通过将给定订户/对象组合的记录的变更划分为子部分并并行处理每个子部分来提供的。还提供了用于跟踪子部分的并行处理以避免冲突、提交成功处理和处理处理失败的机制。
[0021]图1示出了根据一些实施例的系统100。系统100包括用于将数据从源系统120复制到目标系统130的复制系统110。虽然图1示出了一个源系统和一个目标系统,但在一些实施例中,复制系统110可以将数据从任意数量的源系统复制到任意数量的目标系统。
[0022]通常,复制系统110可以基于配置数据114执行复制服务器112以在目标系统130中维护源系统120的一个或多个对象(例如,表、视图)的副本。配置数据114可以指定要为特定订户复制在一个或多个特定目标系统中的特定源系统的特定对象。维护这样的副本包括将数据表127中的指定的数据表的记录复制到数据表134。
[0023]客户端设备系统140可以执行客户端应用145以与源系统120通信。根据一些实施例,客户端应用145可以包括在由客户端系统140执行的Web浏览器内执行的代码。客户端应用145可以包括访问数据表127的数据的业务应用。这样的访问可以包括插入新记录、更新现有记录或删除数据表127的现有记录。客户端应用145还可以或替代地提供数据归档功能以将数据表127的选择的记录移动到档案数据存储装置(未示出)。
[0024]源系统120可以执行复制源客户端121以在日志记录表124中记录对配置数据114中指定的对象的变更。根据一些实施例,复制源客户端121包括数据库触发器以检测在数据库事务期间对数据表127中的指定数据表的记录执行的插入、更新和删除操作。在一些实施例中,针对对每个指定表的每个操作创建单独的数据库触发器。数据库触发器将检测到的操作记录为日志记录表124中对应的日志记录表中的日志条目。在对象是数据表的情况下,对象仅与一个日志记录表124关联。如果对象是从多于一个底层数据表中选择数据的视图,则对象与每个底层数据表124的一个日志记录表关联。
[0025]如下面将详细描述的,对于受数据库事务影响的每个数据库记录,日志记录表124可以包括指定数据库记录的关键字段值和对记录执行的操作的类型的日志条目。复制源客户端121还可以包括观察者过程(observer process),其读取日志条目并将类似的日志条目写入订户日志记录表中,每个订户日志记录表与特定数据表关联。基于从订户(例如,复制服务器112)接收的对给定对象的变更的数据的请求,复制源客户端121的数据重建和传送过程基于日志条目重建变更的数据并将变更的数据传送到订户,用于随后传送到目标系统。如上所述,两个或更多个数据重建和传送过程可以并行进行以重建和传送变更的数据。
[0026]特别地,处理的指针125对于给定订户和对象指示一个或多个订户日志记录表,并且对于一个或多个订户日志记录表中的每一个指示由给定订户处理的最后订户日志记录表条目。还已知对于一个或多个订户日志记录表中的每一个的当前最大指针(即,指向当前最后条目的指针)。基于处理的指针125和当前最大指针,为一个或多个订户日志记录表中
的每一个确定日志记录表条目的“主”部分。主部分由最后处理的订户日志记录表条目之后直到并包括当前最后一个条目的所有条目组成。
[0027]为了能够并行处理日志记录表条目的主部分,每个主部分被划分为日志记录表条目的两个或更多个子部分。每个子部分的大小可以基于与订户/对象组合对应的设置来确定。下面详细描述根据一些实施例将主部分划分为两个或更多个子部分。
[0028]部分信息126存储每个子部分的状态和边界(例如,指向第一和最后一个条目的指针)。在操作中,数据重建和传送过程使用部分信息126来并行地重建和传送与每个子部分关联的数据,如下所述。
[0029]存储在表127和表134内的数据可以包括常规表格数据、基于行的数据、基于列的数据和基于对象的数据中的一个或多个。根据一些实施例,复制服务器112进行操作以执行将数据从表127的格式转换为表134的格式所需的任何变换。数据可以分布在几个关系数据库、维度数据库和/或其他数据源之间。
...

【技术保护点】

【技术特征摘要】
1.一种系统,包括:存储器,存储处理器可执行过程步骤;处理单元,执行所述处理器可执行过程步骤以使所述系统:从订户接收对对象的变更的数据的请求;确定与所述对象关联并包括多个日志记录表条目的日志记录表;基于所述对象和所述订户确定指向所述日志记录表的最后处理的条目的指针;限定所述最后处理的条目之后日志记录表条目的多个子部分;和使用第一过程重建与所述多个子部分中的第一个关联的第一数据并将其传送给所述订户;和使用第二过程重建与所述多个子部分中的第二个关联的第二数据并将其传送给所述订户,其中,所述第一过程和所述第二过程并行操作。2.根据权利要求1的系统,其中,限定日志记录表条目的所述多个子部分包括:确定与所述对象和所述订户关联的当前最大日志记录表条目和每个子部分的最大记录数;和基于指向所述最后处理的条目的指针、所述当前最大日志记录表条目和所述每个子部分的最大记录数来限定所述多个子部分。3.根据权利要求2的系统,所述处理单元执行所述处理器可执行过程步骤以使所述系统:在限定日志记录表条目的所述多个子部分之前,基于与所述对象和所述订户关联的设置数据确定并行处理所述多个日志记录表条目。4.根据权利要求1的系统,所述处理单元执行所述处理器可执行过程步骤以使所述系统:在限定日志记录表条目的所述多个子部分之前,基于与所述对象和所述订户关联的设置数据确定并行处理所述多个日志记录表条目。5.根据权利要求4所述的系统,所述处理器可执行过程步骤还使所述系统:从所述订户接收对第二对象的变更的数据的请求;确定与所述第二对象关联并且包括第二多个日志记录表条目的第二日志记录表;基于与所述第二对象和所述订户关联的设置数据确定顺序地处理所述第二多个日志记录表条目;基于所述第二对象和所述订户确定指向所述第二日志记录表的最后处理的条目的指针;和重建与在所述最后处理的条目之后的所述第二多个日志记录表条目的条目关联的第二数据;和将所述第二数据传送给所述订户。6.根据权利要求1的系统,所述处理器可执行过程步骤还使所述系统:确定所述对象的数据发生变更;和响应于确定所述对象的数据已变更,创建将所述订户与所述对象关联的订户工作列表的记录,
其中,所述第一过程设置所述订户工作列表的记录的处理中状态、限定所述最后处理的条目之后的所述日志记录表条目的多个子部分并在限定所述子部分之后设置所述订户工作列表的记录的打开状态。7.根据权利要求1的系统,其中,所述第一过程设置所述订户工作列表的记录的处理中状态、限定在最后处理的条目之后的所述日志记录表条目的多个子部分并在限定所述子部分之后设置所述订户工作列表的记录的打开状态。8.一种计算机实现的方法,包括:从订户接收对对象的变更的数据的请求;确定与所述对象关联并包括多个日志记录表条目的日志记录表;基于所述对象和所述订户确定指向所述日志记录表的最后处理的条目的指针;限定所述最后处理的条目之后日志记录表条目的多个子部分;和使用第一过程重建与所述多个子部分中的第一个关联的第一数据并将其传送给所述订户;和与所述第一过程并行地使用第二过程重建与所述多个子部分中的第二个关联的第二数据并将其传送给所述订户。9.根据权利要求8的方法,其中,限定所述日志记录表条目的多个子部分包括:确定当前最大日志记录表条目和与所述对象和所述订户关联的每个子部分的最大记录数;和基于指向所述最后处理的条目的指针、所述当前最大日志记录表条目和所述每个子部分的最大记录数来限定所述多个子部分。10.根据权利要求9的方法,还包括:在限定所述日志记录表条目的多个子部分之前,基于与所述对象和所述订户关联的设置数据确定并行处理所述多个日志记录表条目。11.根据权...

【专利技术属性】
技术研发人员:M哈伯科恩
申请(专利权)人:SAP欧洲公司
类型:发明
国别省市:

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

1