Data Cache ورسل با Runtime Cache یکی شد
خلاصهٔ کاملتر
ورسل تو این پست اعلام کرده که Data Cache رو داره با Runtime Cache یکی میکنه. تا الان fetch caching و unstable_cache تو Next.js از Data Cache استفاده میکردن، ولی getCache (از پکیج @vercel/functions) و 'use cache: remote' از Runtime Cache. بعد از این مهاجرت هر چهارتاشون روی Runtime Cache میرن و یه مجموعه بودجهی فضا و ابزار بررسی مصرف دارن.
Runtime Cache برای کش کردن داده هست، نه کل جواب HTTP مثل CDN. مثلاً یه صفحهی محصول میتونه اطلاعات کاتالوگ رو از کش برداره و در عین حال برای هر بازدیدکننده یه صفحهی شخصی بسازه. این سرویس به Next.js وابسته نیست و تو SvelteKit و Nuxt یا برای feature flagها تو Routing Middleware هم استفاده میشه.
پشت صحنه یه API نوشتهشده با Go هست که روی Redis تو هر region کار میکنه و ساعتی بیش از ۴۴۰ میلیون خوندن و ۱۸ ترابایت داده رو جابهجا میکنه. هر region کش خودش رو داره و موقع cache miss سراغ regionهای دیگه نمیره. invalidation با tag کار میکنه: یعنی به جای پاک کردن تکتک رکوردها، فقط یه timestamp برای اون tag ثبت میشه. پس اگه یه میلیون رکورد tag catalog داشته باشن، با یه نوشتن همهشون کهنه حساب میشن و این timestamp معمولاً تو چند صد میلیثانیه به بقیهی regionها میرسه.
به گفتهی تیم ورسل، چند بهبود هم اضافه شده. یکیش circuit breaker هست، یعنی وقتی یه shard از tag store کند میشه، خوندن با timestampهای کششده تو حافظه ادامه پیدا میکنه. نتیجه این شد که تو شلوغترین region، تأخیر p99 تقریباً به یک پنجم رسید. البته هزینهش اینه که تو این حالت ممکنه دادهای که تازه invalidate شده برای مدت کوتاهی هنوز تازه به نظر بیاد.
بعد از مهاجرت، تو پلن Pro هر پروژه و environment فضای جدا میگیره که ۸ برابر فضای مشترک قبلی Data Cache برای کل تیمه، و پروژههای Enterprise هم ۱۰ برابر قبل. ولی خوندن و نوشتنهای Data Cache که قبلاً هزینه نداشتن، حالا طبق قیمتگذاری Runtime Cache حساب میشن. ورسل پیشنهاد میکنه قبل از مهاجرت مصرف کشتون رو بررسی کنین و خوندن و نوشتنهای اضافی رو کم کنین.
نکات کلیدی:
- fetch caching، unstable_cache، getCache و 'use cache: remote' همه روی Runtime Cache میرن
- برای fetch و unstable_cache هیچ تغییری تو کد لازم نیست
- فضای Pro هشت برابر و فضای Enterprise ده برابر Data Cache قبلی شده
- circuit breakerها از آگوست فعال شدن و p99 تأخیر خوندن رو حدود پنج برابر کم کردن
- خوندن و نوشتنهای Data Cache که قبلاً رایگان بود، از این به بعد هزینه داره




