Page 433 - 《软件学报》2025年第12期
P. 433

5814                                                      软件学报  2025  年第  36  卷第  12  期


                 的增加, ReproLink  的总吞吐率大致以线性增长. 在节点数量为             16  时, 总数据量达到了    160  万, 此时  ReproLink  的
                 总吞吐率达到了每秒       57  万次操作, 展现了良好的可扩展性.
                                              6.0
                                             总吞吐率 (×10 5  Ops/s)  3.0





                                               0
                                                  1 2  4      8      12     16
                                                             节点数量
                                          图 4 ReproLink  吞吐率随节点数量的变化趋势

                    ● 相关工作对比测试. 最后, 为了进一步验证            ReproLink  能够适应现实场景的工作负载, 将        ReproLink  的性能
                 与现有的科研数据管理平台进行对比测试. 测试使用                 Papers with Code 作为比较对象. Papers with Code 具有庞大
                 的用户基数, 并且被数据科学研究者广泛地使用, 因此与其的性能对比具有一定的代表意义. 在测试中, 通过不断
                 增加客户端的数量对两个平台进行压力测试, 并记录其吞吐率和平均延迟. 图                         5  和图  6  分别展示了  ReproLink  和
                 Papers with Code 的吞吐率-延迟曲线. ReproLink  的延迟在吞吐率小于      4  万的情况下均稳定在较低水平, 并且在吞
                 吐率超过    4.5  万时仍然能保持小于     10 ms 的延迟; 而  Papers with Code 在吞吐率超过  800  后便出现延迟的急剧上
                 升, 且其平均延迟均大于       200 ms.

                                                                  2 000
                     1.8
                     1.5
                                                                  1 500
                    (ms) 1.2
                    延迟 0.9                                       延迟 (ms)  1 000

                     0.6
                                                                   500
                     0.3
                      0                                             0
                                  20 000      40 000  50 000                   300       600        900
                                  吞吐率 (Ops/s)                                    吞吐率 (Ops/s)
                         图 5    ReproLink 吞吐率-延迟曲线                 图 6    Papers with Code 吞吐率-延迟曲线

                  4.1.3    对象检索引擎测试
                    对象检索引擎的性能测试包括路径查询和关键字查询. 在路径查询测试中, 在系统中均匀随机地选择一个科
                 研数据对象作为起点, 分别对单跳、两跳、三跳、四跳的路径模式匹配搜索进行性能测试. 在进行关键字查询测
                 试前, 先对系统中科研数据对象的标题和摘要进行词频统计, 在测试时根据词频随机抽取搜索词, 每个词被抽中的
                 概率和其词频成正比. 在测试中使用           8  个客户端线程向服务器发送搜索请求. 表            7  展示了对对象检索引擎进行性
                 能测试的结果. 对于路径查询, 随着路径长度的增加, 搜索吞吐率逐步下降. 在实际情况中, 大部分请求为单跳或两
                 跳的路径查询, 关键字查询和长度更长的路径查询的频率较低, 因此这样的吞吐率可以满足目前的系统需要. 随着
                 未来系统规模的扩大, 可以通过创建分布式索引的方式提高吞吐率, 以满足进一步增长的需求.

                                               表 7 对象检索引擎性能测试结果

                                 操作            吞吐率 (Ops/s)          操作            吞吐率 (Ops/s)
                             单跳路径查询              14 377          四跳路径查询              6 539
                             两跳路径查询              11 316          五跳路径查询              4 301
                             三跳路径查询               9 087          关键字查询               1 121
   428   429   430   431   432   433   434   435   436   437   438