در پاسخ به سوال Domain Sharding چیست باید گفت یک تکنیک جهت تقسیم منابع بین چند دامنه می باشد. این کار باعث می شود تا سرعت بارگذاری و نتایج موتورهای جستجوگر بهبود پیدا کنند. هنگامیکه چندین دامنه مورد استفاده قرار می گیرند، مرورگرها می توانند به صورت همزمان منابع بیشتری را بارگذاری کنند که این کار باعث بهبود سرعت بازدیدکنندگان وب سایت می شود.
به صورت پیش فرض مرورگرهای وب تعداد ارتباط های فعال برای هر دامنه را هنگام بارگذاری یک وب سایت محدود می کنند. هنگامیکه منابع مورد نیاز برای دانلود (تصاویر، CSS، JavaScript و غیره) از حد معمول بیشتر شود، بازدیدکنندگان با مشکل کندی سرعت در بارگذاری مواجه می شوند زیرا دانلودها وارد صف شده اند.
برای اینکه این مشکل برطرف شود، وب سرویس ها اقدام به تقسیم محتوا بین چند ساب دامنه می کنند، هر دامنه ی اضافه تر این امکان را فراهم می کند تا چند ارتباط فعال مازاد قابل باز شدن باشند. این عملیات به صورت کلی به بازدیدکنندگان اجازه می دهد تا از یک منبع مقادیر بیشتری منابع دریافت کنند.
در Domain Sharding چه اتفاقی رخ می دهد؟
در حالت کلی هنگامیکه یک کاربر به یک صفحه ی وب متصل می شود، مرورگر آنها اقدام به اسکن HTML جهت یافتن منابع برای دانلود می کند. معمولا این منابع برای ثبت دامنه اینترنتی تنها به وسیله یک دامنه عرضه می شوند: دامنه ارائه دهنده ی صفحه ی وب یا دامنه مختص به ارائه ی منابع. با استفاده از domain sharding، مرورگر کاربر به دو یا چند دامنه مختلف به صورت همزمان متصل شده و منابع مورد نیاز جهت بارگذاری صفحه را دانلود می کند.
تعیین تعداد دامنه ها
تعداد shards های استفاده شده به وسیله یک وب سرویس بستگی به منابعی می باشد که می بایست توسط کاربران دانلود شوند. مرورگرهای وب مدرن به صورت میانگین تعداد ۶ دانلود همزمان از هر دامنه را پشتیبانی می کنند. این مقدار بین تمام منابعی که برای بارگذاری وب سایت مورد نیاز است تقسیم می شود. به عنوان مثال یک وب سایت ۳۰ منابع دارد و می بایست در درخواست های پی در پی ۶ تایی برای هر کاربر دانلود شود.
اضافه کردن چند دامنه اما می تواند مشکلات عملکردی نیز ایجاد کند. مرورگرهای وب می بایست یک DNS lookup به ازای هر دامنه اضافه تر انجام بدهند و ارتباط را با آن دامنه ها حفظ کنند. این عملیات خود باعث کندی در سرعت بارگذاری خواهد شد. یک مطالعه ای که توسط Yahoo! انجام شده است نشان می دهد بین ۲ تا ۴ دامنه بهینه ترین تعداد دامنه مورد استفاده برای این عملیات می باشد و هر دامنه ی بیشتری باعث کاهش عملکرد خواهد شد.
عملیات Domain Sharding و SPDY
پروتکل SPDY گوگل پشتیبانی برای درخواست های همزمان بیشماری را ارائه داده است، این پروتکل مشابه domain sharding مشکل مطرح شده در این مقاله را برطرف می کند بدون اینکه نیاز به راه اندازی خاصی داشته باشد. با وجود اینکه domain sharding به وسیله کسر اندکی از وب سایت ها استفاده می شود اما به وسیله وب سایت های عظیمی مانند گوگل، Facebook، Twitter و WordPress استفاده شده است.
شایان ذکر است با ارائه نهایی HTTP/2 این نگارش جدید HTTP به صورت کامل در سال ۲۰۱۶ جایگزین SPDY و domain sharding خواهد شد و دیگر نیازی به استفاده از این تکنیک ها نخواهد بود.
مثالی از Domain Sharding
وب سایت اشتراک گذاری فایل های تصویری YouTube منابع تصویری و اسکریپت ها را در دو دامنه ی i.ytimg.com و s.ytimg.com تقسیم نموده است. i.ytimg.com حاوی آیکن ها، لوگوها، thumbnail ها، آواتارها و جلوه های بصری دیگر می باشد در حالیکه s.ytimg.com حاوی جاوا اسکریپت ها، CSS، favicon ها، sprite sheet ها و دیگر بخش های مربوط به بهینه سازی و اطلاعات تحلیلی و آماری وب سایت می باشد.
کاربران بازدیدکننده وب سایت youtube.com به صورت خودکار اسکریپت ها و رسانه ها را که مورد نیاز برای بارگذاری وب سایت است را دانلود می کنند.
از آنجاییکه مرورگرها دامنه ها را به جای IP بر اساس نام آنها شناسایی می کنند، عملیات domain sharding می توانند توسط یک وب سرور انجام شود. تا زماینکه سرور پهنای باند کافی جهت انجام این عملیات را داشته باشد و بتواند چندین ارتباط همزمان را پوشتیبانی کند می توانید از این تکنیک استفاده نمایید.
مزایای Domain Sharding
تکنیک Domain sharding یک ابزار اثبات شده جهت بهبود عملکرد وب سایت ها می باشد.
کاربران بهبود عملکرد را به علت دانلود همزمان منابع به جای نوبتی مشاهده می کنند و شرکت ها نیز افزایش رضایت بازدیدکنندگان را نظاره خواهند نمود.
همچنین شرکت ها و بازدیدکنندگان با بهبود استفاده پهنای باند نیز روبرو خواهند شد، که اجازه منابع بیشتری با سرعت بالاتر قابل ارائه باشد.
نتیجه گیری
به صورت میانگین ۵۰ درصد از درخواست ها بین ۳۰۰۰۰ URL بر روی یک دامنه انجام می شود. این زمانی بسیار طولانی برای دانلود اطلاعات و قرارگیری در صف می باشد، مخصوصا هنگامیکه می بایست یک دانلود به اتمام برسد تا دانلود دیگری آغاز شود. Domain sharding می تواند عملکرد یک وب سایت را بدون ایجاد پیچیدگی خاصی به میزان قابل توجهی بهبود دهد.