标签: GitLab

共 2 篇

GitLab 的 Git 服务架构:Gitaly、Praefect 与仓库的拆分

2026年10月17日

GitLab.com 早年打开一个仓库的 P99 超过 30 秒,CPU 却只用了 15 毫秒。顺着这个现象往下追:仓库为什么离开 NFS,一次 clone 由谁鉴权、pack 字节走哪条路,Gitaly 怎么把 RPC 变成受控的 git 进程、怎么扛住 CI 的并发 clone,push 怎么在 Gitaly 和 Rails 之间往返,Praefect 怎么投票、怎么修复落后的副本,最后看 WAL 和 MVCC 后端在当前源码里真正走到了哪一步。

从 git clone 说起:Git 服务器是怎么工作的

2026年10月14日

一次 git clone 在网络上到底交换了什么?从抓包看到的三次 HTTP 请求出发,先搭一个最小的 Git 服务器,再顺着它解决不了的问题,依次读 GitLab、Gerrit 和 walgit 的源码:存储怎么拆、引用怎么管、多副本怎么保持一致。