用于全链路追踪事务的方法及原生分布式数据库技术

技术编号:33623441 阅读:14 留言:0更新日期:2022-06-02 00:50
本说明书实施例提供了用于全链路追踪事务的方法及原生分布式数据库。其中,分布式数据库中的事务由至少一个SQL构成,每个SQL的执行计划包括至少一个DFO,每个DFO包括至少一个算子。在该方法中,在待追踪事务的执行过程中,确定当前执行动作所属的当前执行阶段;将当前执行阶段所属的Span对应的Span信息记录在本地;在待追踪事务执行完成后,采集待追踪事务所包括的各个执行阶段的Span信息;以及根据所采集的各个Span信息来确定待追踪事务的全链路执行过程。路执行过程。路执行过程。

【技术实现步骤摘要】
用于全链路追踪事务的方法及原生分布式数据库


[0001]本说明书实施例涉及数据库
,具体地,涉及用于全链路追踪事务的方法及原生分布式数据库。

技术介绍

[0002]分布式数据库由多个分布式数据存储节点构成,各个存储节点之间相互独立又相互之间通信连接。在分布式数据库中,为了执行一条SQL,各个存储节点之间可以通过RPC协议进行通信,因此,在分布式数据库中,执行一条SQL有时需要经过多个存储节点等多个组件,每个组件上执行一部分操作,SQL所经过的所有组件上所执行的操作可以构成该SQL的完整执行过程。
[0003]目前,在传统的单机数据库中,SQL仅在一个机器上执行,因此可以通过记录该SQL的执行过程中各个动作的执行时间点便能够方便地对该SQL的执行过程进行全链路追踪。然而,对于分布式数据库而言,由于SQL的执行过程需要经过多个组件,这使得对该SQL的追踪较困难。此外,由于各个组件的时间存在差异,导致无法根据各个动作的时间点来进行全链路跟踪。因此,如何实现在分布式数据库中对事务进行全链路跟踪是亟待解决的问题。

技术实现思路

[0004]鉴于上述,本说明书实施例提供了用于全链路追踪事务的方法及原生分布式数据库。通过本说明书实施例提供的技术方案,实现了对分布式数据库中的事务进行全链路追踪。
[0005]根据本说明书实施例的一个方面,提供了一种用于对分布式数据库中的事务进行全链路追踪的方法,其中,所述分布式数据库中的事务由至少一个SQL构成,每个SQL的执行计划包括至少一个DFO,每个DFO包括至少一个算子,所述方法包括:在待追踪事务的执行过程中,确定当前执行动作所属的当前执行阶段,其中,所述执行过程传递的信息包括所述待追踪事务的Trace ID以及所述执行过程包括的已执行的各个执行阶段所属的Span对应的Span ID;将所述当前执行阶段所属的Span对应的Span信息记录在本地,其中,所述Span具有的语义是根据所述分布式数据库中的事务执行逻辑定义的,每个Span信息用于确定对应的Span与所属同一事务中的其他Span之间的引用关系;在所述待追踪事务执行完成后,采集所述待追踪事务所包括的各个执行阶段的Span信息;以及根据所采集的各个Span信息来确定所述待追踪事务的全链路执行过程。
[0006]根据本说明书实施例的另一方面,还提供一种用于对分布式数据库中的事务进行全链路追踪的方法,所述方法由所述分布式数据库包括的存储节点来执行,所述存储节点中的事务由至少一个SQL构成,每个SQL的执行计划包括至少一个DFO,每个DFO包括至少一个算子,所述方法包括:在待追踪事务在所述存储节点中的执行过程中,确定当前执行动作所属的当前执行阶段,其中,所述执行过程传递的信息包括所述待追踪事务的Trace ID以及已执行的各个执行阶段所属的Span对应的Span ID;以及将所述当前执行阶段所属的
Span对应的Span信息记录在本地,以使采集设备从所述存储节点中采集所述待追踪事务在所述存储节点中所执行的各个执行阶段的Span信息,并根据所采集的所述待追踪事务的各个Span信息来确定所述待追踪事务的全链路执行过程,其中,各个执行节点所属的Span具有的语义是根据所述分布式数据库中的事务执行逻辑定义的,每个Span信息用于确定对应的Span与所属同一事务中的其他Span之间的引用关系。
[0007]根据本说明书实施例的另一方面,还提供一种原生分布式数据库,包括多个存储节点,各个存储节点中所执行的事务由至少一个SQL构成,每个SQL的执行计划包括至少一个DFO,每个DFO包括至少一个算子,所述各个存储节点包括执行阶段确定单元和Span信息记录单元,所述执行阶段确定单元,被配置为在待追踪事务在原生分布式数据库中的执行过程中,确定当前执行动作所属的当前执行阶段,其中,所述执行过程传递的信息包括所述待追踪事务的Trace ID以及已执行的各个执行阶段所属的Span对应的Span ID;以及所述Span信息记录单元,被配置为将所述当前执行阶段所属的Span对应的Span信息记录在本地,以使采集设备从所述Span信息记录单元所属的存储节点中采集所述待追踪事务在该存储节点中所执行的各个执行阶段的Span信息,并根据所采集的所述待追踪事务的各个Span信息来确定所述待追踪事务的全链路执行过程,其中,各个执行节点所属的Span具有的语义是根据所述分布式数据库中的事务执行逻辑定义的,每个Span信息用于确定对应的Span与所属同一事务中的其他Span之间的引用关系。
[0008]根据本说明书实施例的另一方面,还提供一种电子设备,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现如上述任一所述的用于对分布式数据库中的事务进行全链路追踪的方法。
[0009]根据本说明书实施例的另一方面,还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的用于对分布式数据库中的事务进行全链路追踪的方法。
[0010]根据本说明书实施例的另一方面,还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上任一所述的用于对分布式数据库中的事务进行全链路追踪的方法。
附图说明
[0011]通过参照下面的附图,可以实现对于本说明书实施例内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
[0012]图1示出了分布式数据库的一个示例的示意图。
[0013]图2示出了OceanBase数据库与应用交互的一个示例的示意图。
[0014]图3示出了根据本说明书实施例的用于对分布式数据库中的事务进行全链路追踪的方法的一个示例的流程图。
[0015]图4示出了SQL执行计划对应的树状结构的一个示例的示意图。
[0016]图5示出了根据本说明书实施例的展示事务的全链路执行过程的一个示例的示意图。
[0017]图6示出了根据本说明书实施例的用于对分布式数据库中的事务进行全链路追踪
的方法的一个示例的流程图。
[0018]图7示出了根据本说明书实施例的原生分布式数据库的一个示例的方框图。
[0019]图8示出了本说明书实施例的用于实现事务进行全链路追踪方法的电子设备的方框图。
具体实施方式
[0020]以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
[0021]如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于对分布式数据库中的事务进行全链路追踪的方法,其中,所述分布式数据库中的事务由至少一个SQL构成,每个SQL的执行计划包括至少一个DFO,每个DFO包括至少一个算子,所述方法包括:在待追踪事务的执行过程中,确定当前执行动作所属的当前执行阶段,其中,所述执行过程传递的信息包括所述待追踪事务的Trace ID以及所述执行过程包括的已执行的各个执行阶段所属的Span对应的Span ID;将所述当前执行阶段所属的Span对应的Span信息记录在本地,其中,所述Span具有的语义是根据所述分布式数据库中的事务执行逻辑定义的,每个Span信息用于确定对应的Span与所属同一事务中的其他Span之间的引用关系;在所述待追踪事务执行完成后,采集所述待追踪事务所包括的各个执行阶段的Span信息;以及根据所采集的各个Span信息来确定所述待追踪事务的全链路执行过程。2.如权利要求1所述的方法,其中,将所述当前执行阶段所属的Span对应的Span信息记录在本地包括:在所述当前执行阶段对应的执行粒度大于执行粒度阈值时,将所述当前执行阶段所属的Span对应的Span信息记录在本地,其中,执行粒度根据事务执行逻辑来划分,每个执行阶段所属的Span对应一种执行粒度。3.如权利要求2所述的方法,其中,所划分的执行粒度包括SQL粒度、DFO粒度以及算子粒度。4.如权利要求1所述的方法,还包括:对所述分布式数据库中待执行的各个事务进行采样;以及将采样得到的事务确定为待追踪事务。5.如权利要求1所述的方法,其中,根据所采集的各个Span信息来确定所述待追踪事务的全链路执行过程包括:根据所采集的各个Span信息所确定的各个Span之间的引用关系,将该各个Span信息对应的执行阶段在时间维度上进行排布,以展示所述待追踪事务的全链路执行过程。6.如权利要求1所述的方法,其中,所述分布式数据库与代理服务器通信连接,所述代理服务器用于将部署在客户端中的驱动发起的事务请求转发至所述分布式数据库,每个事务的执行过程分别经过所述驱动、所述代理服务器以及所述分布式数据库。7.如权利要求6所述的方法,还包括:在所述驱动处,为待执行事务生成一个对应的Trace ID;以及在所述驱动处,将本地生成的包括有所述Trace ID的Span信息发送给所述代理服务器,以使所述代理服务器将该Span信息记录在所述代理服务器中。8.如权利要求7所述的方法,其中,在所述驱动处,将本地生成的包括有所述Trace ID的Span信息发送给所述代理服务器包括:在所述驱动处,将本地生成的包括有所述Trace ID的Span信息以piggyback方式发送给所述代理服务器。9.如权利要求1所述的方法,其中,所述分布式...

【专利技术属性】
技术研发人员:杨志丰
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1