همه دارن یه کش تکراری میسازن
خلاصهٔ کاملتر
شروع مقاله یه تصویر آشناست: کسی عمداً تصمیم نگرفته کش بسازه. پروژه قرار بوده دربارهی چیز دیگهای باشه — بالا آوردن یه کلاستر inference، اسکیلکردن آموزش روی GPUهای بیشتر — ولی وسط راه یکی متوجه شده کشیدن ۷۰ گیگابایت وزن مدل از S3 برای هر رپلیکای جدید ده دقیقه طول میکشه و این جواب نمیده. پس یه چیزی نوشته: یه اسکریپت پیشگرمکنندهی NVMe، یه سایدکار، یه lookup روی Redis. اسمش تو هر شرکت فرق داره، ولی همیشه هست.
نویسندهها میگن با مهندسهای چند تیم زیرساخت AI حرف زدن و همهشون نسخهای از همین چیز رو ساختن، هیچکدوم هم بهش افتخار نمیکنن. جواب همه هم یکیه: «آره، احتمالاً باید متنبازش کنیم، ولی خیلی مخصوص ستاپ خودمونه.» نتیجه اینکه هر تیم جدیدی که راه میافته، مجبوره دوباره از صفر بسازتش.
صورتمسئله یه جملهست: محاسبات سریعه، شبکه کنده، و همون داده بارها خونده میشه. مشکل هم داره بدتر میشه چون سمت محاسبات هر روز زودگذرتر (ephemeral) میشه — سندباکسهایی که برای یه تسک بالا میآن و میرن — و سمت داده هر روز بزرگتر: وزن مدلهایی که قبلاً ۱ گیگ بودن حالا ۷۰ یا ۷۰۰ گیگن. تو یه ناوگان زودگذر، هر نود سرد بالا میآد و هزینهی سرد بودن از هزینهی خودِ کار بیشتر میشه.
قوس تکراری هم همیشه یکیه: اول کش NVMe محلی روی هر نود؛ بعد که ناوگان بزرگ شد و صورتحساب S3 بالا رفت، یه لایهی peer-to-peer بین نودها؛ و آخر که همهچیز واقعاً زودگذر شد و کشهای محلی هیچوقت گرم نشدن، یه کلاستر کش اختصاصی و جدا از محاسبات. سه لایه، شکل یکسان، کدِ متفاوت — هر بار.
به گفتهی تیم، دلیل این تکرار اینه که لایهی زیر محاسبات از خود محاسبات عقب مونده: Kubernetes مسئلهی زمانبندی کانتینر رو حل کرد، Terraform تأمین زیرساخت رو، و فریمورکهای ایجنتی ارکستراسیون مدلها رو — ولی «چطور دادهی درست بهموقع به محاسبات درست برسه» هنوز شرکتبهشرکت و بد حل میشه. اونایی هم که بلدن خوب بسازنش، دلیل تجاری دارن که خصوصی نگهش دارن.
پیشنهادشون TierFS ـه: یه فایلسیستم متنباز نوشتهشده با Rust که جلوی هر استوریج سازگار با S3 مانت میشه. باکت رو بهش نشون میدی، مثلاً روی /mnt/data مانتش میکنی و کدت فایلها رو معمولی میخونه؛ پشت صحنه TierFS کش NVMe محلی، اشتراک بین نودها و لایهی کش اختصاصی رو مدیریت میکنه. داده تو باکت دستنخورده میمونه — بدون فرمت اختصاصی، بدون قفلشدن به یه فروشنده.
نکتهای که خودشون تأکید میکنن اینه که ایده نو نیست؛ نو بودنش تو اینه که یک بار، بهشکل متنباز، برای همهی محیطها ساخته بشه — لپتاپ، سندباکس، کلاستر Kubernetes یا ناوگان GPU. الان AWS، GCP، Modal و E2B هرکدوم مدل خودشون رو دارن و هر بار که بار کاریات جابهجا میشه، لایهی داده رو باید از نو یاد بگیری.
در عین حال صادقن: نسخهی آلفا تکنودی و فقط-خواندنیه و همهی لبههای ناهموار یه پروژهی چندماهه رو داره. لایهی کش peer، لایهی کش اختصاصی، پشتیبانی از نوشتن و منابع فراتر از object storage تو نقشهی راه سال آیندهست.
نکات کلیدی:
- مسئله: محاسبات سریع، شبکه کند، و خواندهشدن مکرر همون دادهی بزرگ (وزن مدل ۷۰ تا ۷۰۰ گیگ)
- تقریباً همه به یه معماری سهلایه میرسن: NVMe محلی → کش همتا → کش اختصاصی → S3
- هیچکس نسخهاش رو منتشر نمیکنه چون «مخصوص ستاپ خودمونه»
- TierFS: فایلسیستم POSIX متنباز با Rust، جلوی هر استوریج سازگار با S3، بدون فرمت اختصاصی
- آلفا فعلاً تکنودی و فقط-خواندنیه؛ کش همتا و لایهی اختصاصی تو راهن




