Skip to main content
QUICK REVIEW

[论文解读] World of Code: Enabling a Research Workflow for Mining and Analyzing the Universe of Open Source VCS data

Yuxing Ma, Tapajit Dey|arXiv (Cornell University)|Oct 30, 2020
Software Engineering Research参考文献 65被引用 9
一句话总结

World of Code (WoC) 是一种可扩展、可更新的基础设施,汇集并交叉引用了来自整个开源软件生态系统的超过180亿个Git对象,支持大规模代码、依赖关系和开发者活动的挖掘与分析。通过高效的数据库索引、有针对性的增强和版本化分析,该系统支持全球性研究任务,如生态系统度量、供应链分析和趋势检测,使此前难以实现的关于整个FLOSS生态系统的研究所成为可能。

ABSTRACT

Open source software (OSS) is essential for modern society and, while substantial research has been done on individual (typically central) projects, only a limited understanding of the periphery of the entire OSS ecosystem exists. For example, how are the tens of millions of projects in the periphery interconnected through. technical dependencies, code sharing, or knowledge flow? To answer such questions we: a) create a very large and frequently updated collection of version control data in the entire FLOSS ecosystems named World of Code (WoC), that can completely cross-reference authors, projects, commits, blobs, dependencies, and history of the FLOSS ecosystems and b) provide capabilities to efficiently correct, augment, query, and analyze that data. Our current WoC implementation is capable of being updated on a monthly basis and contains over 18B Git objects. To evaluate its research potential and to create vignettes for its usage, we employ WoC in conducting several research tasks. In particular, we find that it is capable of supporting trend evaluation, ecosystem measurement, and the determination of package usage. We expect WoC to spur investigation into global properties of OSS development leading to increased resiliency of the entire OSS ecosystem. Our infrastructure facilitates the discovery of key technical dependencies, code flow, and social networks that provide the basis to determine the structure and evolution of the relationships that drive FLOSS activities and innovation.

研究动机与目标

  • 为解决整个开源软件(FLOSS)生态系统中缺乏全面、交叉引用的数据这一问题,该问题限制了对代码共享、依赖关系和开发者网络的全局研究。
  • 克服现有工具仅聚焦于单个项目或有限项目集所带来的可扩展性和数据质量挑战。
  • 通过提供统一、可更新的数据基础设施,支持对全球软件供应链风险、生态系统动态和创新模式的研究。
  • 通过版本化数据快照和高效的查询能力,支持可复现的大规模实证研究。
  • 通过提供一个共享、可扩展的平台,促进产业界和学术界研究者对公共版本控制数据全貌的分析。

提出的方法

  • WoC基础设施采用分布式的微服务架构,从公共代码仓库(主要来自GitHub)摄入并索引超过180亿个Git对象,以实现可扩展性和可扩展性。
  • 它构建了交叉引用的数据结构,将提交映射到blob、项目映射到作者,并跨仓库建立依赖关系,从而支持对整个FLOSS生态系统的全局查询。
  • 系统采用有针对性的数据清洗和增强技术,例如过滤掉影响性能的提交(如包含数百万个空文件的提交),在不牺牲核心分析实用性的前提下保持查询效率。
  • 版本化机制保留了Git对象存储及其衍生分析图的过去状态,确保研究结果在时间上的可复现性。
  • 分析层使用优化的数据结构(如提交到文件和提交到blob的映射),即使在大规模场景下也能实现线性时间查询。
  • 平台设计时充分考虑可扩展性,支持增量更新、组件替换以及新数据源或分析模块的集成。

实验结果

研究问题

  • RQ1我们如何才能实现对整个FLOSS生态系统中开源软件开发的大规模、交叉引用分析,而非局限于单个项目或项目集群?
  • RQ2通过统一的数据基础设施,我们如何大规模度量软件生态系统的全局属性,例如依赖链、代码复用模式和开发者协作网络?
  • RQ3当底层数据持续更新时,我们如何确保大规模软件挖掘研究的可复现性和可靠性?
  • RQ4在支持大规模准确高效分析的前提下,清理、校正和增强原始版本控制数据的最有效方法是什么?
  • RQ5共享的、可扩展的基础设施如何降低研究人员和产业界在研究全球软件供应链和生态系统可持续性方面的进入门槛?

主要发现

  • WoC基础设施成功摄入并维护了超过180亿个Git对象,使得对开源生态系统的规模化分析成为可能,其规模远超以往项目中心化工具的能力。
  • 得益于优化的数据索引和对性能影响显著的工件的过滤,该系统即使在大规模场景下,也能实现对提交到文件、提交到blob等复杂关系的高效线性时间查询。
  • 通过版本化Git对象存储和衍生分析图,该平台支持可复现的研究,允许重建过去的数据状态并一致地重现研究结果。
  • WoC促进了对全球技术依赖关系、代码流动和开发者社交网络的发现,为理解FLOSS生态系统的结构与演化提供了基础。
  • 该基础设施支持多样化的研究任务,包括生态系统度量、趋势评估和供应链分析,这通过真实案例研究和受邀研究者使用案例得到了验证。
  • 微服务架构支持系统的模块化扩展与演进,为未来新增数据源、分析流水线或与产业工具集成等增强功能提供了支持。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。