Page 432 - 《软件学报》2025年第12期
P. 432
黄小龙 等: ReproLink: 面向可复现性的科研数据管理系统 5813
表 4 测试环境信息
测试环境 环境描述
型号: 阿里云ecs.g7.large
CPU: 双核 Intel(R) Xeon(R) Platinum 8369B CPU @ 2.70 GHz
硬件环境 内存: 8 GB
硬盘: 120 GB SSD
网络: 25 Mb/s Ethernet
操作系统: Ubuntu 22.04.3 LTS 64 bit
软件环境 Docker 24.0.7
Eclipse Temurin JDK 17.0.11+9
环境部署 ReproLink v1.0.1
测试使用的数据为 Papers with Code 平台公开发布的数据集 [19] . 对于除了可扩展性测试以外的其他性能测试,
在初始化时随机从 Papers with Code 平台的数据中抽取共计 1 万个论文、代码或数据集, 根据他们的属性在系统
中创建相应的科研数据对象. 接着在这些科研数据对象之间随机选择起点和终点, 创建 2 万个随机生成的关系对
象. 在对可扩展性测试初始化时, 在每个数据仓库中都插入 10 万个随机抽取的论文、代码或数据集对象, 数据总
量最多为 160 万个科研数据对象.
4.1.2 数据管理模块测试
首先对单个数据仓库的情形进行测试. 对于数据管理模块, 对其创建、查询、修改、删除科研数据对象和关
系对象的性能进行测试. 在对查询操作、修改操作进行性能测试时, 操作的目标从系统中所有的科研数据对象或
关系对象之中均匀随机地选择. 在对删除操作进行测试时, 操作的目标从当前未被删除的科研数据对象或关系对
象中均匀随机地选择. 测试中使用 8 个客户端线程向服务器发送请求. 经验证, 此配置可以使服务器达到其最大吞
吐率.
● 科研数据对象操作性能测试. 表 5 展示了对于科研数据对象的创建、查询、修改、删除 4 项功能的测试结
果. 科研数据对象的查询操作吞吐率显著大于剩余的 3 类操作, 达到了 4.8 万的吞吐率, 满足大规模场景下的科研
数据对象查询需求. 剩余的 3 类操作在执行时均需要更新对象检索引擎中的关键字索引和关系索引, 从而保证关
键字搜索和关系搜索的性能. 在实际情况中, 大部分请求为查询科研数据对象, 对于科研数据对象的创建、修改和
删除操作相对较少, 因此 ReproLink 主要针对查询操作进行优化.
● 关系对象操作性能测试. 表 6 展示了对于关系对象操作的性能测试结果, 和科研数据对象类似, 关系对象查
询操作的吞吐率显著高于剩余 3 类操作, 这是因为在对关系对象进行创建、修改、删除时需要更新对象检索引擎
中的关系索引. 实际情况中对于关系对象的操作主要为查询操作, 因此这样的性能可以满足实际情况的需要.
● 可扩展性测试. 接着, 对 ReproLink 的可扩展性进行测试. 测试使用最多 16 台服务器, 每个服务器作为一个
独立的数据对象仓库接入 ReproLink. 在测试之前, 对于每个仓库, 从 Papers with Code 的数据中随机选取 10 万个
科研数据对象存入. 在测试中, 使用 16 台服务器作为客户端, 每个客户端在所有数据对象仓库中的数据对象中均
匀随机地选择操作目标, 并对其进行查询操作.
表 5 科研数据对象操作性能测试结果 表 6 关系对象操作性能测试结果
操作 吞吐率 (Ops/s) 操作 吞吐率 (Ops/s)
创建科研数据对象 1 256 创建关系对象 690
查询科研数据对象 48 720 查询关系对象 56 661
修改科研数据对象 1 254 修改关系对象 693
删除科研数据对象 1 223 删除关系对象 630
ReproLink 采用分散式存储架构, 具有良好的可扩展性. 在数据规模扩大时, 可以通过增加数据对象仓库的数
量来满足扩大的数据规模. 图 4 展示了 ReproLink 的总吞吐率随数据仓库数量不同而变化的曲线. 随着节点数量

