깃허브가 단일 저장소(repository)에서 초당 7,200회 이상의 푸시(push)를 처리하면서도 낮은 읽기 지연 시간(latency)을 유지하는 새로운 Git 스토리지 아키텍처 '루비콘(Rubicon)'을 발표했습니다. 이는 5,000개 이상의 에이전트(agent)가 동시에 작업하는 환경에서도 원활한 성능을 제공하기 위한 것으로, 기존 깃허브의 인프라가 직면한 확장성(scalability) 문제를 해결하는 데 중점을 뒀습니다.
루비콘 아키텍처의 핵심은 데이터 저장 방식을 이원화한 것입니다. 변경되지 않는 Git 객체(Git object) 데이터는 마이크로소프트 애저 블롭 스토리지(Azure Blob Storage)에 병렬로 저장하여 높은 처리량(throughput)과 내구성(durability)을 확보했습니다. 반면, 브랜치(branch)가 가리키는 커밋(commit)처럼 업데이트 순서 조정이 필요한 참조(reference) 정보는 'Ref-CAS(Reference Compare-and-Swap)'라는 분산 합의(distributed consensus) 서비스에서 관리합니다. Ref-CAS는 각 푸시가 변경하는 참조만 잠그고, 로그 복제본(replica) 과반수가 기록하면 변경을 확정하는 방식으로 동시성(concurrency)을 높였습니다. 또한, 요청 처리와 팩(pack) 병합(merge)을 별도 노드(node)에 분리하여 각각 독립적으로 확장할 수 있도록 설계했습니다. 이로써 백그라운드에서 여러 샤드(shard)의 팩을 병렬로 합쳐 푸시가 증가해도 조회해야 할 팩 수를 거의 일정하게 유지할 수 있습니다.
이러한 아키텍처 개선은 최근 개발 환경에서 에이전트 기반의 자동화된 워크플로우(workflow)가 급증하면서 단일 저장소에 가해지는 부하가 기하급수적으로 늘어나는 추세에 대응하기 위함입니다. 깃허브는 현재 가장 바쁜 저장소도 순간적으로 초당 수십 회 쓰기(write)가 발생하는 수준이지만, 앞으로는 이것이 지속적인 처리율이 될 것으로 예상하고 있습니다. 루비콘은 기존의 점진적 개선을 넘어 최소 100배 규모 확대를 목표로 하며, 개발자의 푸시/페치(fetch)/브랜치 작업과 기존 보호 장치는 그대로 유지하면서도 대규모 병렬 작업을 효율적으로 지원합니다. 이는 개인 프로젝트부터 가장 큰 모노레포(monorepo)까지 모든 저장소가 동일한 아키텍처 위에서 운영될 수 있도록 하여, 향후 깃허브 플랫폼 전반의 안정성과 성능을 크게 향상시킬 것으로 기대됩니다.