Page 393 - 《软件学报》2025年第9期
P. 393
4304 软件学报 2025 年第 36 卷第 9 期
表 6 用于查询性能评估的查询集
查询类型 序号 查询语句 追踪 跨度 结构种类
追踪ID查询 Q1 Query trace by traceID: 'twMveyd0doAiUYlrTcG7Fg==' 1 9 1
Q2 Query span by resource fields: 'service.name'='shipping' and 'duration'>'500ms' 6 207 21 553 21
Query trace by resource fields: 'k8s.node.name'='k8s-node-3' and 'telemetry.sdk.
Q3 language'!='nodejs' 14 190 88 528 21
字段查询
Q4 Query span by span fields: 'db.system'='mysql' and 'thread.name'='http-nio-8 080-exec-36' 52 52 12
Query trace by span fields: 'name'='GET /check/:id' and 'http.status_code'>='400' and
Q5 359 7 180 4
'startTimeUnixNano'>'1 701 790 447 000 000 000'
Q6 Query max value for span field: 'http.response_content_length' - - -
聚合查询
Q7 Query value range for resource field: 'process.command' - - -
Query trace based on context relation: 'shipping#SELECT City' follows 'shipping#City
Q8 2 838 14 166 7
Repository.findByCode'
Query trace based on context relation: 'shipping#HTTP POST' precedes 'cart#middleware-
结构查询 Q9 2 445 34 228 2
query'
Q10 Query upstream nodes for span: 'catalogue#dns.lookup' hops 3 5 14 5
Q11 Query downstream nodes for span: 'user#GET' hops 4 542 1 086 2
表 7 显示了 NCQT 和其他工具的搜索性能对比. 由于 NCQT 在查询的过程中可能涉及解压, 因此我们分别列
出了所有数据无需神经网络解压 (NCQT-Warm) 以及所有数据均需神经网络解压 (NCQT-Cold) 时的时间开销. 从
表 7 中可以看出, 在不需要解压的情况下, NCQT 在所有类型中的查询开销均为最低值. 在 Q2 的查询中, NCQT-
Warm 的查询效率是 Tempo 的 3 776 倍, 是 Jaeger 的 40 倍; 而对于 Q1 单条追踪的查询, NCQT-Warm 与对比工具
也拉开了 10 倍和 3 倍的差距; 在结构查询上, Tempo 的时间开销平均是 NCQT-Warm 的 128 倍. 结果表明, NCQT
在不需要解压时查询速度快于 Tempo 和 Jaeger, 这是由于 NCQT 在冗余提取时提供了丰富的索引字典, 搜索时无
需对所有数据进行扫描, 而且可以快速判断追踪数据是否满足要求. 然而, 当满足条件的数据未被解压时, NCQT
的查询性能会有所降低, NCQT-Cold 显示了所有数据均需要解压的最坏情况下的查询时间. 相较于现有的追踪查
询工具, NCQT 在该情况下平均需要花费更多的时间查询数据. 然而, NCQT-Cold 在 Q3 上优于 Tempo, 这意味着
当满足条件的追踪数据较多时, NCQT 可以持平甚至超过 Tempo 的查询速度. 实验结果证明了冷数据问题对
NCQT 查询效率的影响, 因此 NCQT 在搜索时会对目标分组的相邻分组预先解压, 以最大程度缓解解压带来的时
间开销. 需要注意的是, 解压带来的额外成本仅在首次未命中时存在, 一旦分组解压后, 后续所有基于该分组查询
的效率均与 NCQT-Warm 类似. 一般情况下, NCQT 的查询效率根据需要解压的分组数量介于 NCQT-Warm 与
NCQT-Cold 之间, 而分组指标会影响满足查询条件的数据在分组中的分布情况, 因此我们在第 4.4 节中进一步研
究了分组对查询效率的影响.
表 7 不同工具的查询性能比较 (s)
查询 NCQT-Warm NCQT-Cold Tempo Jaeger
Q1 0.007 226.730 0.071 0.020
Q2 0.095 601.410 358.747 3.860
Q3 4.278 604.368 820.161 7.928
Q4 0.041 599.332 2.201 0.759
Q5 0.334 599.752 18.939 1.379
Q6 0.003 0.003 0.090 -
Q7 0.001 0.001 1.605 -
Q8 0.771 598.407 141.047 -
Q9 1.311 488.842 122.458 -
Q10 0.021 758.967 1.400 -
Q11 0.161 344.563 27.520 -

