S3 داره از سختافزار امروز عقب میمونه
خلاصهٔ کاملتر
تو این مقاله اومده که این روزها تقریباً هر سیستم دادهٔ جدیدی روی S3 (سرویس ذخیرهسازی آبجکتی آمازون) ساخته میشه: داده رو میریزی تو S3 و پردازشِ بدون حالت رو روش اجرا میکنی. دلیلش هم روشنه، ظرفیتِ عملاً بینهایت، دوام بالا و هزینهٔ کم به ازای هر گیگابایت. استک دریاچهٔ دادهٔ باز یعنی Iceberg و Parquet روی S3، سرویس Warpstream که کافکا رو روی S3 پیاده کرده و Turbopuffer که ذخیرهسازی برداری میسازه، همه همین مسیرو رفتن.
حرف اصلی نویسنده اینه که S3 در واقع یه میلیون هارددیسکه پشت یه API از جنس HTTP. هر درخواست کمتر از ۱۰۰ مگابایت بر ثانیه بهت میده و تأخیرش در حد دهها میلیثانیهست. این عددها اتفاقی نیستن، از فیزیکِ دیسک میان، و یه جور مالیات معماری رو هر چیزی که روش ساخته میشه تحمیل میکنن.
این مالیات رو تو کد همهمون میشه دید: لایهٔ کش برای پنهون کردن تأخیر، بستهبندی نوشتنهای کوچیک تو آبجکتهای بزرگ برای سرشکن کردن هزینهٔ هر درخواست، یه انبارهٔ متادیتای جدا مثل DynamoDB یا FoundationDB چون خود S3 جستوجوی کوچیک و تصادفی رو خوب جواب نمیده، و بازنویسی کل آبجکت به جای آپدیت یه رکورد. یعنی بخش زیادی از طراحی هر سیستمِ مبتنی بر S3، در عمل سیستمی برای دور زدنِ محدودیتهای خود S3 ـه.
حالا سختافزار جلو رفته و به گفتهٔ نویسنده اون فرضها دیگه درست نیستن. فاصلهٔ قیمت SSD و هارددیسک به حدود ۳ برابر رسیده، تأخیر SSD حدود ۱۰۰ میکروثانیهست یعنی دو مرتبه بزرگی سریعتر از S3، هر دستگاه میلیونها عملیات ورودی-خروجی در ثانیه میده و دانهبندی خوندن و نوشتن تصادفی تا ۴ کیلوبایت پایین میاد. شبکهٔ دیتاسنتر هم عقب نمونده: لینکهای ۱۰۰ گیگابیت به بالا، زیر ۱۰۰ میکروثانیه تأخیر داخل یه دیتاسنتر و زیر یک میلیثانیه بین دیتاسنترهای یه ریجن.
اگه ذخیرهسازی تو مقیاس میکروثانیه جواب بده، کش اختیاری میشه، batch کردن اجباری نیست و آپدیت درجا ممکنه، پس compaction هم لازم نمیشه. جواب فعلی آمازون یعنی S3 Express One Zone که ۲۰۲۳ اومد، به نظر نویسنده کافی نیست: فقط تو یه availability zone کار میکنه پس همون دوام و دسترسپذیریای رو که S3 رو انتخاب پیشفرض کرده بود از دست میده، تأخیرش هنوز چند میلیثانیهست و قیمت پهنای باندش اونقدر تنده که همون الگوی پرمصرفی رو دلسرد میکنه که اصلاً ذخیرهسازی کمتأخیر رو ارزشمند میکنه.
نتیجهگیری نویسنده اینه که مانع، فناوری نیست بلکه اینرسیه. SSD سریع هست، شبکهٔ سریع هست؛ چیزی که نیست ابتکار عمله. ابرها انبوهی هارددیسک و یه جریان درآمدی بزرگ روی مدل قیمتگذاری فعلی دارن و انگیزهای ندارن هیچکدومو خراب کنن. به گفتهٔ اون، نباید منتظر موند تا ابرها این گذارو رهبری کنن، خود مهندسها باید این بلوکهای پایهٔ زیرساخت رو بسازن.
نکات کلیدی:
- هر درخواست S3 کمتر از ۱۰۰ مگابایت بر ثانیه پهنای باند میده و تأخیرش دهها میلیثانیهست.
- تأخیر SSD حدود ۱۰۰ میکروثانیهست، با میلیونها IOPS در هر دستگاه و دانهبندی تصادفی تا ۴ کیلوبایت.
- فاصلهٔ قیمت هر گیگابایت SSD و هارددیسک به حدود ۳ برابر کم شده.
- سرویس S3 Express One Zone از ۲۰۲۳ در دسترسه ولی تکزونهست، تأخیر چندمیلیثانیهای داره و گرونتره.
- با ذخیرهسازی میکروثانیهای، کش اختیاری میشه، batch کردن اجباری نیست و compaction از بین میره.




