GitHub ra mắt kiến trúc lưu trữ Git mới cho kỷ nguyên tác nhân AI
Tại sự kiện GitHub Universe, GitHub đã công bố kiến trúc lưu trữ Git thế hệ mới, có thể xử lý hàng nghìn lượt ghi mỗi giây với khả năng đọc mở rộng theo nhu cầu. Qua kiểm thử nội bộ, hệ thống chứng minh khả năng hỗ trợ 5.000 tác nhân AI cùng làm việc trên một kho mã, gửi tới 7.200 lượt push mỗi giây, trong khi vẫn phục vụ lưu lượng đọc với độ trễ thấp ổn định.
Bối cảnh: tác nhân AI thay đổi lưu lượng kho mã
Trong năm qua, các tác nhân AI đã thay đổi diện mạo của những kho mã bận rộn nhất trên GitHub. Những kho này hiện nhận tối đa vài chục lượt ghi mỗi giây, thường theo từng đợt ngắn. Khi công việc chuyển dần sang các tác nhân chạy song song liên tục, GitHub dự đoán các đợt bùng nổ này sẽ trở thành tốc độ duy trì trong vòng một năm tới. Mỗi lượt push lại kéo theo nhiều lượt đọc hơn từ CI, hệ thống triển khai và các tác nhân khác, tạo hiệu ứng khuếch đại lớn.
Một kho mã trên GitHub đã tăng lưu lượng khoảng 4 lần từ tháng 3 đến tháng 5 và tiếp tục tăng theo quỹ đạo hàm mũ. Thay vì chỉ tính cho bước tăng kế tiếp, GitHub đặt mục tiêu quy mô lớn hơn ít nhất hai bậc độ lớn.
Yêu cầu thiết kế cho một kho mã đơn lẻ
- Chấp nhận hàng nghìn lượt ghi mỗi giây
- Hỗ trợ nhiều nút ghi, do việc đánh chỉ mục gói dữ liệu và kiểm tra kết nối đối tượng là phần tốn CPU nhất của một lượt ghi, chi phí tăng theo kích thước gói
- Giảm thiểu độ trễ commit vì tác nhân phải chờ mỗi lượt push trước khi sang bước tiếp theo
- Ghi nhận thay đổi theo thứ tự cho từng tham chiếu, có khả năng tuyến tính hóa nhanh giữa các tham chiếu
- Giữ chi phí đọc thấp khi không có thay đổi, trường hợp phổ biến do tỷ lệ đọc/ghi
- Cho phép từng thành phần mở rộng độc lập
Dự án Rubicon
Tháng 5/2026, ngay sau đợt di chuyển ban đầu lên Azure, GitHub bắt đầu thiết kế đáp ứng các yêu cầu trên. Sau nhiều phương án thử nghiệm, họ chọn thiết kế tối đa hóa thông lượng trong khi vẫn giữ các đảm bảo về tính đúng đắn, độ bền, tính sẵn sàng và độ trễ, đặt tên là Rubicon — ám chỉ điểm không thể quay đầu mà ngành đã vượt qua với phát triển bằng tác nhân AI.
Phần lớn hệ thống giữ nguyên: yêu cầu từ Git client, API và giao diện web vẫn đến Spokes, thành phần đảm nhận định tuyến, cân bằng tải và duy trì phân vùng, cô lập, công bằng giữa các tenant. Phần data plane bên dưới Spokes là mới hoàn toàn.
Spokes định tuyến mỗi yêu cầu tới một nhóm nhỏ bản sao ảo (virtual replica) được gán cho kho mã. Đây là đội máy tính dùng một lần, phục vụ đọc, ghi hoặc cả hai, với đĩa cục bộ chỉ là bộ nhớ đệm có thể tái tạo bất cứ lúc nào. Khi kho mã bận, hệ thống thêm bản sao ảo; một đội nút nén chạy nền trực tiếp trên Blob Storage và Ref-CAS để gộp các gói dữ liệu và dọn đối tượng không thể truy cập.
Trạng thái bền vững nằm ở hai nơi
- Đối tượng Git (gói dữ liệu và dữ liệu tăng tốc đọc) lưu trong Azure Blob Storage
- Tham chiếu và danh sách gói dữ liệu của kho mã lưu trong dịch vụ log sao chép riêng gọi là Ref-CAS
Với một lượt ghi, bản sao ảo đánh chỉ mục gói dữ liệu đến, tải lên Blob Storage, rồi commit một giao dịch vào Ref-CAS để ghi gói vào manifest và cập nhật tham chiếu. Với một lượt đọc, bản sao ảo kiểm tra phiên bản tham chiếu với Ref-CAS, kéo các gói cần thiết vào bộ nhớ đệm rồi phục vụ từ đó.
Tối thiểu hóa phối hợp: cập nhật tham chiếu ở thông lượng cao
Blob Storage rất phù hợp với dữ liệu ghi một lần rồi bất biến như gói dữ liệu, chỉ mục, dữ liệu tăng tốc đọc và checkpoint. Nhưng tham chiếu thì ngược lại: một lượng trạng thái nhỏ mà nhiều lượt ghi tranh nhau cập nhật cùng lúc.
GitHub thử hai cách. Cách đầu là write-ahead log cho toàn bộ tham chiếu, đánh chỉ mục bằng một blob duy nhất — đúng đắn và đọc rẻ, nhưng chỉ một lượt ghi có điều kiện được bay cùng lúc, thực tế chỉ đạt thông lượng ghi vài trăm lượt mỗi giây. Cách hai chia tham chiếu thành nhiều blob phân đoạn, nâng trần ghi nhưng buộc mỗi lượt đọc phải kiểm tra mọi phân đoạn, đánh đổi độ trễ đọc — vốn nhiều hơn ghi hàng bậc độ lớn.
Vì vậy họ xây Ref-CAS, dịch vụ log sao chép dành riêng cho tham chiếu. Mỗi cập nhật tham chiếu là một compare-and-swap được commit bởi một nhóm đồng thuận. Giao dịch chỉ khóa các tham chiếu nó chạm tới, kiểm tra giá trị mong đợi và hiển thị khi đa số bản sao của log đã ghi nhận. Do tác nhân chủ yếu push lên nhánh riêng, hầu hết cập nhật không tranh chấp và sao chép song song. Mỗi commit nhận một số thứ tự log (LSN), và phiên bản của kho mã là LSN của commit mới nhất.
Nguồn: GitHub Blog
Trích nguồn từ: GitHub Blog
Bài viết liên quan
Hiện đại hóa ứng dụng .NET cho Windows Arm64 với GitHub Copilot
GitHub Copilot upgrade agent giúp đánh giá, lập kế hoạch và thực hiện việc chuyển ứng dụng .NET từ Windows x64/x86 sang Windows Arm64, xác định các rào cản và cập nhật mã nguồn, phụ thuộc, cấu hình.
Đọc thêmGPT-6 Cyber: Bước tiến mới cho các tác nhân an ninh mạng được căn chỉnh
OpenAI giới thiệu GPT-6 Cyber, mô hình an ninh mạng chuyên tìm lỗ hổng có thể khai thác và đề xuất bản vá, được huấn luyện để chỉ hoạt động trong phạm vi được cấp phép.
Đọc thêm
Hội nghị PGConf.EU 2026: Autonomous Postgres từ script đến tự vận hành
Tổng hợp các ý chính từ phiên làm việc về Autonomous Postgres tại PGConf.EU 2026 ở Valencia, bàn về khoảng cách giữa khả năng của Postgres và nhu cầu của các AI agent.
Đọc thêmQodo tích hợp ngữ cảnh vào quy trình đánh giá mã AI với Codex
Qodo đưa kiến thức doanh nghiệp và tiêu chuẩn lập trình vào Codex, giúp lập trình viên phát hiện các lỗi P0 trên nhiều kho mã trước khi mở pull request.
Đọc thêm
CloudNativePG đạt cấp độ ươm mầm CNCF: bước tiến mới trên chặng đường phát triển
CloudNativePG chính thức trở thành dự án ươm mầm của CNCF, đánh dấu chặng đường từ sáng kiến cloud native khởi đầu tại 2ndQuadrant năm 2019 đến kế hoạch xin tốt nghiệp vào năm 2027.
Đọc thêm
Cloudflare giảm một nửa độ trễ xây dựng DNS, cắt 85% bộ nhớ
Cloudflare cải tiến Zone Builder trong pipeline DNS: lập kế hoạch build có mục tiêu thay vì build toàn bộ zone, giúp giảm 85% bộ nhớ đỉnh và giảm một nửa thời gian từ khi thay đổi DNS đến khi dữ liệu được ghi vào Quicksilver.
Đọc thêm
Microsoft phát hành .NET 11 Release Candidate 2 với giấy phép hỗ trợ go-live
Microsoft công bố .NET 11 RC2, bản release candidate thứ hai kèm giấy phép hỗ trợ go-live cho phép dùng trong môi trường sản xuất, với nhiều cải tiến ở Libraries, Runtime, SDK, F# và giao diện người dùng.
Đọc thêm
Mang mô hình của riêng bạn vào GitHub Copilot SDK với C#
Hướng dẫn dùng GitHub Copilot SDK kèm ProviderConfig để định tuyến suy luận mô hình đến nhà cung cấp bạn tự kiểm soát, ví dụ Microsoft Foundry, qua một ứng dụng console .NET 10 nhỏ.
Đọc thêm
Microsoft phát hành bản cập nhật bảo mật ngoài lịch cho .NET 8, 9, 10 và .NET 11 RC3
Microsoft tung bản vá ngoài lịch cho .NET 8, 9, 10 và .NET 11 RC3, khắc phục lỗ hổng tràn bộ đệm trong thuật toán giải nén Brotli và lỗi quyền sở hữu tarball trên Linux.
Đọc thêm
Giới công nghệ có đang quá xa rời người dùng khi nói về AI?
Các CEO công nghệ liên tục đưa ra phát ngôn về AI bị cho là thiếu thực tế, đặt câu hỏi liệu họ có đủ thấu hiểu để xây sản phẩm cho số đông.
Đọc thêm