近期,蚂蚁开源了基于云的下一代版本控制系统 – HugeSCM(内部代号 Zeta),HugeSCM 旨在解决研发过程中存储库规模问题。它既能处理单一存储库体积巨大的挑战,也能应对存储单一文件巨大的问题。相比于传统的集中式版本控制系统(如 Subversion )和传统的分布式版本控制系统(如 Git ),HugeSCM 不受存储架构和传输协议的限制。随着研发活动的推进,传统的版本控制系统已经无法满足巨型存储库的需求,这就是 HugeSCM 诞生的原因。 HugeSCM 是一种数据分离的版本控制系统,目录结构,提交记录,分支信息存储在分布式数据库中,而文件内容则存储在分布式文件系统或者对象存储中。国内外的开发者曾将 Git 对象存储到 OSS /分布式文件系统中,对 git 架构进行改造,但效果非常差。HugeSCM 需要吸取这些教训,对其架构进行精心设计,避免因存储数据到 DB/OSS 带来的性能下降问题。 HugeSCM 适合单一大库研发,特别是 AI 大模型研发,以及游戏研发,驱动开发等场景。

HugeSCM 主要通过以下方式实现解决存储库规模问题:

  • 数据分离原则:HugeSCM 采用数据分离的原则,将版本控制系统的数据分为元数据和文件数据,按照不同的策略存储,解决了单机文件存储的上限。
  • 高效传输协议:HugeSCM 采用高效的传输协议,通过优化数据传输过程,减少数据传输的时间和带宽消耗。这使得 HugeSCM 能够快速而可靠地处理大规模存储库的版本控制操作。
  • 先进的算法和数据结构:HugeSCM 使用先进的算法和数据结构来组织和管理存储库的数据。这些算法和数据结构能够有效地处理大规模存储库的存储和检索需求,提高操作的效率和性能。HugeSCM 引入了 fragments 对象,解决了单一文件的规模问题。这意味着 HugeSCM 除了可以存储源代码,还可以方便的存储二进制数据,AI 模型,二进制依赖等等。 通过以上策略和技术,HugeSCM 能够有效地解决存储库规模问题,提供高性能、可靠和灵活的版本控制服务。

HugeSCM 针对 AI 场景实现了 P2P 加速,逐一检出,按需下载等功能,改进了 AI 研发体验。

目前蚂蚁内部的 AI 模型均使用 HugeSCM(Zeta)存储。

免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表一休教程网的观点和立场。