깃허브(GitHub) 플랫폼은 지속적이고 집약적인 수정 및 업데이트 흐름을 생성하는 AI 에이전트(AI Agents)와 소프트웨어의 확산으로 인해 깃(Git) 시스템의 작업 밀도가 전례 없는 수준으로 증가하는 상황에 직면해 있다. 기존 데이터 센터의 전력 용량 및 공급망의 물리적 한계를 극복하기 위해, 회사는 자체 데이터 센터와 마이크로소프트 애저(Microsoft Azure) 클라우드 간에 저장소의 99.99999%에 달하는 복제본을 공동 배치하도록 이끈 아키텍처 계획을 공개했다.
지연 시간 문제와 전체 저장소 잠금의 한계
깃허브는 플랫폼에서 가장 많이 사용되고 수정되는 저장소(나머지 극소수인 0.00001%에 해당)가 네트워크 왕복 지연 시간이라는 기술적 장벽에 부딪혔다고 설명했다. 플랫폼 데이터 센터에서 약 1,000마일 떨어진 애저 센트럴 US(Central US) 리전으로 데이터를 전송할 때, 각 네트워크 연결마다 왕복 약 25밀리초(ms)의 지연 시간이 추가된다.
동기화 및 합의 시스템인 "스포크스(Spokes)"의 기존 아키텍처에서는 새로운 쓰기 작업이 발생할 때마다 복제본(Replicas)이 응답할 때까지 저장소 전체 수준의 전역 잠금(Repository-wide lock)을 걸어야 했다. 이 전역 잠금 유지로 인해 네트워크 지연이 가장 심한 복제본이 전체 저장소의 응답 시간과 최대 처리량 한도를 결정하게 되었고, 개발자와 AI 에이전트로부터 잦은 코드 푸시를 받는 활성 저장소에서 병목 현상이 발생했다.
개별 참조 기반 합의 메커니즘
이러한 병목 현상을 해결하기 위해 깃허브는 첫 번째 아키텍처 원칙인 "조율 최소화 및 불필요한 잠금 제거"를 적용하여 합의 메커니즘을 재설계했다. 업데이트 중 저장소 전체를 잠그는 대신, 합의 및 잠금의 범위가 브랜치(Branches)나 태그(Tags) 같은 개별 참조(Per-reference serialization)에만 배타적으로 적용되도록 변경했다.
개발자나 AI 에이전트가 실행하는 대부분의 동시 쓰기 작업은 서로 다른 브랜치를 대상으로 하므로, 변경 사항들이 더 이상 하나의 큐에서 서로를 기다릴 필요가 없어졌다. 실제 워크로드를 기반으로 회사가 진행한 내부 테스트 결과, 지연 시간이 눈에 띄게 감소함과 동시에 쓰기 처리 용량이 3~4배 증가한 것으로 나타났다.
컴퓨팅과 스토리지 분리 및 객체 스토리지 도입
두 번째 단계에는 두 번째 아키텍처 원칙인 "컴퓨팅 성능과 스토리지 분리(Decoupling storage from compute)"의 적용이 포함된다. 대부분의 깃 저장소는 쓰기 대비 읽기 작업의 비율이 높은 특성을 보이며, 단 한 번의 쓰기 작업당 100~1,000회의 읽기 작업이 발생한다. 이전 아키텍처에서는 읽기와 쓰기가 동일한 리소스와 메모리를 두고 경쟁해야 했다.
이를 해결하기 위해 깃허브는 객체 스토리지(Azure Blob Storage)를 "가상 쓰기 복제본(Virtual Write Replica)"이라 불리는 합의 쿼럼의 가상 멤버로 통합했다. 이 복제본은 트랜잭션을 일괄 처리하고 클라우드 스토리지로 변경 사항을 안정적으로 스트리밍하는 임시 체인 역할을 한다. 스토리지가 확인되면 플랫폼은 필요에 따라 확장 가능한 무제한의 가상 읽기 복제본(Virtual Read Replicas)을 배포할 수 있으며, 이 복제본들은 데이터 쓰기나 동기화 속도에 영향을 주지 않고 백그라운드에서 캐시를 업데이트한다.
소프트웨어 개발 인프라에 가져오는 실질적인 변화는?
깃허브의 이러한 엔지니어링 전환은 AI 기반의 자동화된 워크플로를 감당하기 위해 대규모 분산 시스템이 어떻게 재설계되어야 하는지를 보여주며, 주요 실질적 영향은 다음과 같이 요약할 수 있다:
- 처리량 한도 증대: 대형 저장소에 잠금(Lock)을 유발하지 않고 AI 에이전트와 개발자가 고밀도의 동시 푸시를 수행할 수 있도록 지원.
- 유연한 읽기 확장성: 복잡한 합의 절차를 거치지 않고도 읽기 전용 서버를 증설하고 캐시 메모리를 독립적으로 할당 가능.
- 핵심 플랫폼 가용성 유지: 일일 1,000억 건 이상의 작업을 처리하는 "스포크스" 시스템의 내부 구성 요소를 서비스 중단이나 데이터 무결성 손상 없이 업데이트.