انواع Switch ها در سیستم های توزیع شده
دسته : تکنولوژی
نویسنده : علی منصورآبادی
تاریخ : 1401/11/26
سطح : متوسط
انواع Switch ها در سیستم های توزیع شده
انواع Switch ها در سیستم های توزیع شده صحبت کنیم. قبل از ادامه این پست، پیشنهاد می کنم پست های "سیستم های توزیع شده و نمونه های آن" و "انواع سیستم های توزیع شده" در سایت تیما را حتما مطالعه کنید.
سلام، وقتتون بخیر. علی هستم برنامه نویس تیما. امروز می خواهیم در مورد انواع Switch ها در سیستم های توزیع شده صحبت کنیم. قبل از ادامه این پست، پیشنهاد می کنم پست های "سیستم های توزیع شده و نمونه های آن" و "انواع سیستم های توزیع شده" در سایت تیما را حتما مطالعه کنید.
اولین نوع Switch ها، Crossbar Switch ها هستند که دقیقا همان مدل استفاده شده در پست "انواع سیستم های توزیع شده" هستند که بررسی کردیم. اگر یادتون باشه گفتیم این نوع Switch ها مثل Bus-Shared ها، از مشکل Overloading رنج می برند.
نوع دیگر و بهتر این Switch ها، Cross point switch ها یا سوییچ های نقطه ای هستند. در این سوییچ ها بین هر دو نود، اتصال نقطه ای وجود دارد و هر دو نود به هم متصل هستند. اصطلاحا به این نوع اتصال Grid گفته می شود که هر نقطه، چهار اتصال دارد و به چهار طرف وصل می شود. پس اگر بخواهیم از این سیستم استفاده کنیم، نیازمند Grid بندی حافظه ها و پردازنده ها هستیم. شکل بالا نمایی از نحوه تشکیل این نوع Switch ها است. به بیان دیگر در محل اتصال هر Grid، یک سوییچ لازم داریم. دقیقا همین مورد مشکل این سیستم هست که ما به تعداد زیادی Switch لازم است. در کل ما به "n به توان 2" سوییچ نیاز داریم که اگر مثلا تعداد حافظه ها 3 عدد باشد، می شود 9 تا سوییچ. پس مدل Cross point مشکل Overload را حل کرد ولی مشکل جدیدی برای ما به وجود اورد اون هم تعداد زیاد Switch های مورد نیاز است.
برای رفع مشکل تعداد بالای Switch ها در مدل قبلی، مدل Omega Connection ارائه شده است. Omega Connection در اصل یک سیستم Multi Stage یا چند مرحله ای است. یعنی در زمان دسترسی پردازنده به داده های درون یک حافظه، به احتمال زیاد باید از چندین سوییچ عبور کند. به خاطر اینکه چندین سوییچ را باید طی کند تا به داده مورد نظر خودش برسد، سرعت ما کاهش پیدا می کند پس باید سوییچ ها سریع باشند تا بتوانیم سرعت بهتری را ارائه بدهیم. دلیل نام گذاری این مدل با نام Omega این است که نحوه اتصل آنها شبیه نماد Omega است. همچنین لازم به ذکر است که نحوه ارتباط این سیستم دقیقا مثل سیستم های Router است. همانطور که گفتیم در این مدل، ما از چند سوییچ عبور می کنیم پس زمان و هزینه Switching با افزایش تعداد حافظه ها و یا پردازنده ها، افزایش می یابد.
یکی از راه حل های این مشکل، استفاده از NUMA یا Non Uniform Memory Access یا همان دسترسی غیر یکنواخت به حافظه است. اگر خاطرتان باشد در پست های قبلی گفتیم که برای مشکل Overload، از Cache استفاده می کنیم. این کش در واقع یک حافظه محلی (Local Memory) است. همچنین گفتیم در این نوع سیستم ها، ممکن است اطلاعات درون کش ها کپی هم باشند. در واقع در روش NUMA تکنیک مشابهی را داریم و به ازای هر پردازنده یک حافظه محلی در نظر گرفته می شود. از آن جایی که هر پردازنده دارای حافظه محلی خودش است، دسترسی به داده های خودش و همچنین انجام پردازش های خودش خیلی سریعتر خواهد بود. این امر در اصل به خاطر محلی بودن و عدم نیاز به عبور از Switch ها است. در مقابل دسترسی محلی، دسترسی به حافظه های دیگر که به صورت اشتراکی هر پردازنده می خواهد استفاده کند، کندتر خواهد بود. اما به صورت کلی و میانگین، زمان دسترسی توسط این تکنیک کاهش می یابد که آن را تبدیل به انتخابی مناسب و کارا می کند. فقط در نظر داشته باشید که این حافظه محلی دیگر دقیقا مثل Cache ها نیست که اطلاعات درون آن ها لزوما شبیه هم باشند.
امیدوارم که از این آموزش لذت برده باشید و براتون مفید واقع شده باشه. با ما همراه باشید تا با هم یک درصد بیشتر بدونیم.
پست های مرتبط