GitHub 16 жилийн дараа Git хадгалалтын архитектураа шинэчиллээ: 5000 AI агент зэрэг push хийх боломжтой боллоо
Программ хангамжийн ертөнцөд хүний бичдэг кодоос гадна автоном AI агентууд (Devin, Claude Code, Copilot Workspace г.м.) бүхэл бүтэн төслүүд дээр зэрэгцэн ажилладаг шинэ эрин хэдийнэ эхэлжээ. Гэвч үүний цаана нэгэн том саад үүсээд байсан нь Git-ийн уламжлалт дэд бүтэц байв.
Хүний хурдаар тооцоолж бүтээгдсэн хуучин архитектур нь хэдэн арван хүн нэгэн зэрэг код түлхэхэд (push) зориулагдсан байсан тул нэг репозитори дээр хэдэн мянган AI агент секунд тутамд commit илгээхэд бүрэн сөхөрч эхэлсэн юм. Үүнийг шийдэхээр GitHub инженерийн баг сүүлийн 16 жилийн турш ашигласан суурь системээ бүрэн задалж, "Project Rubicon" хэмээх цоо шинэ Git storage архитектурыг албан ёсоор дэлгэлээ.
Дотоод туршилтын үр дүнгээр уг шинэ бүтэц нь ганц репозитори дээр 5,000 AI агент нэгэн зэрэг ажиллаж, секундэд 7,200 push хийх ачааллыг ямар ч гацалтгүй, маш бага хоцролттойгоор (low-latency read) амжилттай давж гарсан байна.
Хуучин архитектур хаана гацаж байв?
GitHub олон жилийн турш Spokes хэмээх файлын систем дээр суурилсан серверийн бүтцийг ашиглаж ирсэн. Энэ загварт тодорхой хэдэн серверийн физик диск дээр Git репозитори хуулагдан хадгалагдаж (3-way replication), тухайн диск дээр тооцоолол болон хадгалалт нэг дор явагддаг байв.
Энэ загвар хоёр том гацааг (bottleneck) үүсгэдэг:
- Lock Contention (Түгжрэл): Git дээр ямар нэг push хийгдэхэд салбар заагч (reference) шинэчлэгдэх шаардлагатай болдог. Олон зуун агент нэгэн зэрэг branch үүсгэх эсвэл PR нээх үед бүгд нэг дискний түгжээний төлөө өрсөлдөж, дараалал үүсдэг.
- Нөөцийн өрсөлдөөн: Дискэн дээр Git объектууд олноор нэмэгдэхийн хэрээр системийг хурдан байлгахын тулд
git gcбуюу compaction процесс ажиллаж packfile-уудыг нэгтгэх шаардлагатай болдог. Энэ ажиллагаа нь хөгжүүлэгчийн read/write урсгалтай CPU болон Disk I/O булаалдаж, серверийг удаашруулдаг байв.
"Project Rubicon": Шийдлийг хэрхэн бүтээсэн бэ?
GitHub инженерийн баг архитектурын үндсийг дахин тодорхойлохдоо хоёр гол зарчмыг баримталжээ: Координацийг (coordination) хамгийн бага түвшинд аваачих болон Тооцоолол (compute), хадгалалтыг (storage) бие биенээс нь бүрэн салгах.
1. Git объектууд нь Immutable тул зөвшилцөх шаардлагагүй
Git-ийн мэдээллийн бүтэц угтаа төгс зохион бүтээгдсэн байдаг. Бүх коммит, blob, мод (tree) зэрэг объектууд өөрийн агуулгын хэшээр (SHA) нэрлэгддэг тул тэдгээрийг хэзээ ч өөрчилж болохгүй (immutable). Өөрөөр хэлбэл, хоёр агент өөр өөр файл зэрэг push хийж байхад тэд хоорондоо зохицох, хүлээх ямар ч шаардлагагүй. GitHub эдгээр бүх packfile өгөгдлийг Azure Blob Storage руу шууд хадгалдаг болгож салгав.
2. Ref-CAS: Салбар заагчийг удирдах тусгай кворум лог
Push хийхэд зохицуулалт (ordering) шаарддаг цорын ганц зүйл бол Reference update буюу салбар (branch) аль commit руу зааж байгааг өөрчлөх үйлдэл юм. GitHub үүнд зориулж Ref-CAS (Reference Compare-and-Swap) хэмээх тусгай, өндөр хурдны кворум дээр суурилсан replicated log үйлчилгээг шинээр бүтээжээ.
Агент өөрийн ажлын салбар (feature branch) руу кодоо push хийхэд:
- Тооцооллын реплика packfile-ийг үүсгээд Azure Blob Storage руу шууд хуулна.
- Дараа нь Ref-CAS руу маш жижиг транзакци илгээж, зөвхөн тухайн салбарын заагчийг атом байдлаар шинэчилнэ.
- Өөр өөр branch дээр ажиллаж буй мянга мянган агент бие биедээ огт саад болохгүйгээр өөрсдийн push-ийг зэрэг гүйцэтгэх боломж бүрдэж байна.
3. Stateless виртуал реплика ба салангид compaction
Унших, бичих хүсэлтийг хүлээн авах тооцооллын кластер нь "Virtual Replicas" буюу хүссэн үедээ устгаад дахин асааж болдог, хэрэгцээ гарвал шууд өргөтгөгддөг (elastic) түр зуурын кэштэй серверүүд болсон. Харин хүнд жингийн packfile compaction болон garbage collection-ийг үндсэн системээс тусад нь ажиллах тусгай Compaction fleet-д даалгаснаар хөгжүүлэгчийн read/write хүсэлтэд сервер удаашрах эрсдэл арилжээ.
Хөгжүүлэгчдэд энэ юу гэсэн үг вэ?
Хамгийн гайхалтай нь энэхүү дэд бүтцийн эрс өөрчлөлт нь хөгжүүлэгч болон агентуудаас ямар ч шинэ тохиргоо шаардахгүй. Git CLI, өдөр тутам ашигладаг команд, workflows хуучнаараа хэвээр үлдэнэ.
Гэвч байгууллагуудын хувьд:
- Monorepo дээр олон арван CI/CD pipeline болон AI агентууд нэгэн зэрэг мянга мянган branch үүсгэж, автомат туршилт хийхэд
fatal: the remote end hung up unexpectedlyэсвэл lock timeout алдаа дахиж гарахгүй. - "Agentic Engineering" буюу асуудлыг илрүүлээд, засаад, туршаад, PR нээдэг олон зуун туслах агентууд багийн хөгжүүлэлтийн хурдыг хязгаарлахгүйгээр бие даан ажиллах жинхэнэ суурь тавигдаж байна.
Одоогоор энэхүү шинэ архитектур нь цөөн тооны сонгогдсон хэрэглэгчдэд "private preview" байдлаар нээгдээд байгаа бөгөөд ирэх оны эхээр нийт репозиториудад бүрэн нэвтрэх төлөвтэй байна.
Эх сурвалж: The GitHub Blog, "Inside GitHub's new Git storage architecture" (Karthik Raman & Brian Celenza)
Сэтгэгдэл
Ачаалж байна...