Page 379 - 《软件学报》2025年第9期
P. 379

4290                                                       软件学报  2025  年第  36  卷第  9  期


                 3   基于神经网络的追踪压缩和查询方法

                    为了高效存储和查询分布式追踪数据, 本文提出了一种基于神经网络的追踪压缩方法                             NCQT. 方法利用神经
                 网络强大的上下文学习能力进一步提高追踪的压缩比, 并通过预处理和分组解决神经网络压缩和解压效率低下的
                 问题. 图  3  显示了  NCQT  压缩和搜索架构的整体流程图, 主要可以分为              3  个阶段: 追踪数据冗余抽取、基于神经
                 网络的编码器获取和数据压缩, 以及追踪数据搜索和解压. 其中, 追踪数据冗余抽取是在线的, 而编码器获取和数
                 据压缩可以在归档时离线进行.

                          追踪数据           调用图构建                调用图嵌入               调用图聚类
                          冗余抽取                         追踪                结构
                                                       图                 向量
                                                                     ...
                                             ...
                                                                                       结构集群
                                          Span 解析              预处理       中间         分组
                         追踪数据                         Span    键值模式       表示                ...
                                        service.name Order  字段
                                          kind   client       组合提取
                                        http.method  GET                                   ...
                                                               单调值       索引
                                                                         字典
                                                                                          Span
                                                                                          向量
                          追踪数据
                          搜索和解压                搜索            解压      压缩/解压            获取编码器
                                           重构器               分组
                               追踪数据                                 算术编码器      概率
                                                             索引                估计
                                                             字典
                                           定位器                                        DNN 模型
                                  查询语句                              压缩文件
                           查询语句
                                                                                 编码器获取和数据压缩
                                                     图 3 NCQT  流程图

                    ● 追踪数据冗余抽取. 这一阶段主要利用追踪数据的特征进行初步的冗余约减, 并将数据组织为易于查询的
                 中间表示. 在处理来自分布式系统的追踪数据时, NCQT                首先将其解析为由跨度组成的数据表示以及由调用关系
                 组成的结构表示. 对于跨度数据, NCQT          将解析后的数据交由对应的跨度容器进行预处理. 对于结构数据, NCQT
                 通过识别不同结构之间的相似性将其划分为不同的集群. 预处理后的追踪数据会按照结构集群分组, 作为压缩和
                 解压的最小单元.
                    ● 编码器获取和数据压缩. 这一阶段利用神经网络将数据压缩为更短的二进制表示. NCQT                           首先对分组数据
                 进行采样, 利用少量的数据训练神经网络模型, 进而获取一个学习了数据特征和表示方式的编码器. 在压缩追踪数
                 据时, NCQT  利用训练过的编码器并行处理每个分组的数据, 获取上下文向量的概率估计, 并结合算术编码生成更
                 短的二进制表示, 最终为每个分组生成一份压缩文件.
                    ● 追踪数据搜索和解压. NCQT        允许用户使用指定的查询语句对追踪数据进行查询. 在搜索阶段, NCQT                     解析
                 用户输入的查询语句, 并判断压缩数据中是否存在满足要求的数据. 然后, NCQT                      查找所有包含了目标追踪数据的
                 分组, 并将其交由神经网络解压. 最后, NCQT          筛选出分组中满足条件的追踪数据, 还原数据的文本表示并返回最
                 终的结果.

                 3.1   追踪数据冗余抽取
                    在获取编码器并压缩数据之前, NCQT           首先利用追踪数据的特征消除数据中的模式冗余和结构冗余, 并将其
                 重新组织为易于查询和压缩的数据格式. 追踪数据由服务调用过程中生成的跨度数据组成, 每条跨度数据记录了
   374   375   376   377   378   379   380   381   382   383   384