طراحی سیستم Bitly
در این بخش از مجموعه آموزشهای طراحی سیستم، میخواهیم سایت bit.ly
را که یک سایت کوتاه کننده لینک است را با یکدیگر مقایسه کنیم.
موارد استفاده و محدودیتها
موارد کاربری
در این بخش ما موارد زیر را بررسی میکنیم:
- کاربر یک متن را وارد میکند و یک لینک رندم دریافت میکند که بصورت پیشفرض تاریخ انقضا ندارد اما کاربر میتواند آن را تعیین کند.
- کاربر لینک رندم ساخته شده را وارد میکند و لینک اصلی را میبیند
- کاربرها بصورت ناشناس هستند
- سرویسی برای آنالیز آدرسهای بازدید شده بصورت ماهیانه وجود دارد
- سرویسی برای پاک کردن لینکهای منقضی شده وجود دارد
- سرویس دسترسی پذیری بالایی دارد
این موارد بررسی نمیشوند:
- عضویت و تایید شدن ایمیل کاربر
- ویرایش اکانت ساخته شده
- تعیین قابلیت نمایش لینک
- ایجاد لینک کوتاه دلخواه
محدودیتها و مفروضات
وضعیت مفروضات
- ترافیک بصورت مساوی توزیع شده نیست
- پیدا شدن لینک اصلی از لینک کوتاه باید سریع باشد
- ورودی فقط متن میتواند باشد
- آنالیز صفحات نیاز نیست که بلادرنگ باشد
- تعداد کاربران 10 میلیون است
- در ماه 10 میلیون متن برای کوتاه شدن وارد میشود
- در ماه 100 میلیون درخواست دریافت لینک اصلی از لینک کوتاه دریافت میشود
- نسبت خواندن به نوشتن 10 به 1 است
محاسبه موارد استفاده شده
حافظه به ازای هر متن وارد شده:
- مقدار 1.27KB به ازای هر متن
- مقدار 7B به ازای لینک کوتاه
- مقدار 4B به ازای زمان انقضا
- مقدار 5B به ازای زمان ایجاد
- مقدار 255B به ازای متن وارد شده
- مقدار 12.7GB به ازای متنهای وارد شده در ماه
- که از فرمول 1.27X10M بدست آمده است
- تقریبا 450GB در طول 3 سال
- تعداد 350 میلیون لینک کوتاه در 3 سال
- تعداد تقریبی 4 متن در ثانیه وارد میشود
- تعداد تقریبی 40 لینک در ثانیه خوانده میشود
راهنمای تبدیلها
- Mi = میلیون
- M = ماه
- B = میلیارد
- R = درخواست
-
S = ثانیه
- 1 R/S = 2.5Mi R/M
- 40 R/S = 100 Mi R/M
- 400 R/S = 1B R/M
طراحی سیستم
نمای کلی سیستم:
طراحی هسته سیستم
Use case
: کاربر یک متن را وارد میکند و یک لینک رندم دریافت میکند