← 返回列表

一种无损的调用链压缩还原方法与系统

申请号: CN202311490414.2
申请人: 北京大学
申请日期: 2023/11/9

摘要文本

本发明公开了一种无损的调用链压缩还原方法与系统,属于云计算技术领域。本发明基于分布式追踪技术获取分布式软件系统中的原始调用链,然后将原始调用链预处理转化为以有序树表示的调用链,进而在大量的调用链中挖掘频繁子树,并按照最大频繁子树的前序遍历顺序序列化该频繁子树上所有Span的属性信息,从而可以根据挖掘到的共性结构对预处理后的原始调用链进行简化表示,如需获取压缩后的调用链对应的原始调用链,则根据挖掘出的共性结构将调用链中被压缩的部分进行还原。本发明在全量保存所有服务请求的完整的调用链的基础上,降低分布式软件系统海量的服务请求引起的巨大的调用链存储开销,提升系统运行的整体性能。

专利详细信息

项目 内容
专利名称 一种无损的调用链压缩还原方法与系统
专利类型 发明申请
申请号 CN202311490414.2
申请日 2023/11/9
公告号 CN117406929A
公开日 2024/1/16
IPC主分类号 G06F3/06
权利人 北京大学
发明人 李影; 杨勇; 贾统; 张齐勋
地址 北京市海淀区颐和园路5号北京大学

专利主权项内容

1.一种无损的调用链压缩还原方法,具体包括如下步骤:1)获取调用链,即在目标分布式软件系统中部署分布式追踪系统,通过该分布式追踪系统,获取一段时间内为每个服务请求生成的调用链数据,调用链数据符合Span模型规范,每个Span代表请求执行的一段过程,调用链中的所有Span共同构成一棵树,父结点与子结点之间存在调用关系;2)预处理调用链,将获取的原始调用链数据,转化为有序树;具体的处理方式为,根据Span的起始时间信息,对每个结点下的子结点进行排序,将原始的无序树转化为有序树;3)挖掘调用链共性结构,从有序树表示的调用链中,挖掘频繁出现的子树结构,将其定义为共性结构的常量部分,即局部常量,将该子树结构中所有结点的顺序信息以及每个Span的属性信息定义为共性结构的变量部分,即局部变量,对局部常量中的每个Span分配一个自增长的局部顺序ID,将局部变量按其对应的Span的局部顺序ID表示为属性信息的序列,并对局部常量以及局部常量中每个Span所对应的局部顺序ID进行持久化存储;4)压缩调用链,在有序树表示的原始调用链中匹配所有挖掘出的局部常量,若能成功匹配,则将有序树表示的原始调用链中的匹配的局部常量仅用一个结点表示,且该结点的属性为该共性结构的局部常量对应的局部变量;5)还原调用链,当用户需要对原始的调用链进行分析时,获取压缩后的调用链,然后根据存储的共性结构首先对压缩后的调用链中的局部常量进行还原,然后将局部变量根据共性结构中Span的局部顺序ID按照顺序还原至每个Span中。