طراحی سیستم Bitly
طراحی سیستم 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 : کاربر یک متن را وارد میکند و یک لینک رندم دریافت میکند
