خیلی وقت است که Spokes: GitHub ذخیرهسازی را بازنویسی میکند تا قابلیت اطمینان را بازیابی کند، درست به موقع برای گروههای عامل
Octocats ادعا می کنند که 35 برابر بهبود نوشتن را داشته است
GitHub در پاسخ به تقاضای بی سابقه عوامل هوش مصنوعی، معماری ذخیره سازی Git خود را از ابتدا بازسازی می کند. آزمایشهای اولیه با معماری جدید بهبود امیدوارکننده 35 برابری رایت در تستهای داخلی را نشان میدهد. GitHub به معجزه ای به این نسبت نیاز دارد تا بتواند با تقاضای مشتری همگام شود. این طرح شامل جدا کردن نوشتهها از خواندن، تخلیه بارگذاری تعمیر و نگهداری و اجازه دادن به ذخیرهسازی اشیا برای مدیریت افزونگی است. چشمگیرتر از همه این است که طراحی مجدد در زیر سرپوش انجام می شود، با هدف یک تغییر بدون اختلال که گردش کار توسعه دهندگان، فرآیندهای بررسی، یا کنترل های امنیتی را تغییر نمی دهد.
برایان سلنزا، یکی از مهندسان نرمافزار بهروزرسانیهای وبلاگ GitHub، نوشت: اجرای یک مخزن کد درجه سازمانی به معنای حمایت از "تیمهای مهندسی بزرگی است که خطوط لوله CI شلوغ را در کنار ناوگان رو به رشد عوامل اجرا میکنند. حمایت از این تیمها به معنای ایجاد زیرساخت Git برای خواندن و نوشتن مداوم و همزمان در مقیاسی است که امروزه تعداد کمی از مخازن به آن دسترسی دارند." سلنزا جدول زمانی برای این مهاجرت بلندپروازانه ارائه نکرد. وقتی مشتریان GitHub تمرکز کدنویسی خود را به عوامل هوش مصنوعی تغییر دادند، فعالیت در این پلتفرم به طور قابل توجهی افزایش یافت.
بین سپتامبر 2025 و آگوست 2026، ترافیک GitHub دو برابر شد، از 218.2 میلیارد رویداد در ماه به 473.3 میلیارد. تنها در ماه سپتامبر، تعهدات به 7.38 میلیارد رسید که 5 برابر افزایش نسبت به سپتامبر 2025 است. این تغییر در ترافیک سیستم را تحت فشار قرار داده است. طبق گزارش دسترسپذیری GitHub، این سرویس تنها در ماه آوریل با 10 حادثه مواجه شد که باعث کاهش عملکرد شد. 9 حادثه دیگر در ماه مه رخ داد که هر کدام تبلیغات بدتری نسبت به مورد قبلی ایجاد کردند.
برای مدت طولانی، معماری ذخیرهسازی فعلی Spokes GitHub، با نام مستعار Spokes، از یک پروتکل commit سه فازی استفاده میکند، کپیهای کامل مخزن را در چندین دیسک محلی ذخیره میکند و نیاز به حد نصابی از کپیها برای تایید هر نوشته دارد. در حالی که این رویکرد قابلیت اطمینان قوی را تضمین می کند، سرعت نوشتن را با تنگنا مواجه می کند، زیرا هر فشار با کندترین نسخه مورد نیاز برای حد نصاب محدود می شود. معماری جدید فقط یک بار یک تعهد می نویسد، به Azure Blob Storage، یک سرویس ذخیره اشیا که به طور خودکار تکرار (و در نتیجه افزونگی) را به تنهایی مدیریت می کند و گلوگاه حد نصاب را از بین می برد.
GitHub همچنین با جدا کردن درخواستهای خواندن در کانال خود، کاری که توسط کارگران محاسباتی سبکوزن انجام میشود، عملکرد را افزایش میدهد. تنها هماهنگی بین خواندن و نوشتن بر روی نشانگرهای شاخه مرجع است. وظایف تعمیر و نگهداری - مانند فشرده سازی و جمع آوری زباله - از مسیر سرویس منتقل می شود تا به عنوان فرآیندهای پس زمینه عمل کند و تاخیر سیستم را بیشتر کاهش می دهد. Git در عصر کارگزاران به نظر می رسد GitHub در بازاندیشی Git برای عصر نمایندگی با دیگران همسو است.
مدیرعامل سابق GitHub توماس Dohmke یک سرویس میزبانی Git به نام Entire را راهاندازی کرد که ترافیک عامل را در مخازن آینه بارگیری میکند و به مخازن اصلی GitHub مشتری اجازه میدهد فقط به ترافیک توسعه اصلی سرویس دهند. Cursor زیرمجموعه SpaceX، که از Git برای پشتیبانی از سرویس پشتیبانی عامل خود استفاده می کند، همچنین لایه ذخیره سازی را برای عملکرد بهتر اصلاح کرده است. مهندسان مکان نما همچنین تعهد سه فاز Spokes را به نفع آپلود فشارها در یک گزارش پیشنویس ذخیرهسازی شی (WAL) رد کردند، که همه تغییرات را بهعنوان اشیاء تغییرناپذیر ثبت میکرد و حداقل یک کپی را روی دیسکهای حالت جامد بسیار سریع ذخیره میکرد.
احترام به Octocats در حالی که متنفر بودن از سرویسی که اغلب از کار می افتد بسیار غم انگیز است، اما باید با مهندسان GitHub احساس همدردی کنید که وقتی سرویس را ایجاد کردند، نمی توانستند حدس بزنند برای چه چیزی ثبت نام کرده اند. سام لمبرت، مدیرعامل PlanetScale در پیامی X نوشت: "من قبلا در مقیاس شدید کار کردهام و شرکتها را دیدم که سه ماه فقط برای رویدادهایی آماده میشوند که ترافیک آنها را 10٪ یا 20٪ افزایش میدهد [...]، که در مقایسه با آنچه اکنون GitHub با آن روبرو است، چیزی نیست." همه ما می توانیم امیدوار باشیم که معماری جدید ذخیره سازی به مهندسان GitHub استراحت خوبی بدهد. ®
متن اصلی (انگلیسی)
So long, Spokes: GitHub rewrites storage to restore reliability, just in time for agentic hordes
Octocats claim 35x write improvement