مدلهای سیستم توزیعشده
مدلهای سیستم توزیعشده، فرضیات انتزاعی درباره معماری، زمانبندی، ارتباطات و خطاها هستند که مشخص میکنند یک الگوریتم توزیعشده بر چه چیزی میتواند تکیه کند و چه چیزی را باید تحمل کند.
Definition
یک سیستم توزیعشده مجموعهای از رایانههای مستقل است که تنها با تبادل پیام با یکدیگر ارتباط برقرار میکنند و از دید کاربران خود به عنوان یک سیستم منسجم واحد ظاهر میشود؛ یک مدل سیستمی مجموعهای از فرضیات درباره فرآیندها، کانالهای ارتباطی، زمانبندی و خطاهایی است که تحت آنها چنین سیستمی تحلیل میشود.
Scope
این حوزه شامل مدلهای معماری و فیزیکی سیستمهای توزیعشده (کلاینتها، سرورها، همتاها و سازمانهای چندلایه)، مدلهای زمانبندی که اجرای همگام را از ناهمگام متمایز میکنند، مدلهای خطای بنیادی (خرابی، حذف، زمانبندی و بیزانسی) و انتزاعات ارتباطی شامل ارسال پیام، حافظه مشترک، فراخوانی از راه دور و میانافزار است. این مدلها هر نتیجهای را در این زمینه چارچوببندی میکنند: یک الگوریتم که تحت یک مدل صحیح است، ممکن است تحت مدل دیگری غیرممکن باشد، بنابراین صریح کردن مدل پیشنیازی برای استدلال درباره صحت و عملکرد است.
Sub-topics
Core questions
- یک الگوریتم توزیعشده مفروض، به چه فرضیاتی درباره زمانبندی، ارتباطات و خطاها نیاز دارد؟
- مدلهای همگام و ناهمگام چه تفاوتی دارند و چرا این تمایز، آنچه را که قابل محاسبه است تغییر میدهد؟
- یک پروتکل برای صحیح بودن، باید چه دستههایی از خطاهای فرآیند و کانال را تحمل کند؟
- چه زمانی یک سیستم باید بر اساس ارسال پیام در مقابل انتزاع حافظه مشترک یا فراخوانی از راه دور ساختار یابد؟
Key theories
- مدلهای همگام در مقابل ناهمگام
- در یک مدل همگام، محدودیتهای شناختهشدهای برای تأخیر پیام و سرعت نسبی پردازنده وجود دارد که امکان استفاده از زمانبندیها (timeouts) را برای تشخیص خطاها فراهم میکند؛ در یک مدل ناهمگام، چنین محدودیتهایی وجود ندارد، که تشخیص خطا را اساساً غیرقابل اعتماد میسازد و زیربنای بسیاری از نتایج عدم امکان است.
- سلسلهمراتب مدل خطا
- خطاهای فرآیند و کانال از خوشخیم تا شدید طبقهبندی میشوند—خرابی (fail-stop)، حذف، زمانبندی و دلخواه (بیزانسی)—که برای پوشاندن خطاهای شدیدتر، تضمینهای قویتری لازم است؛ مدل انتخابی هم تابآوری قابل دستیابی و هم هزینه یک پروتکل را تعیین میکند.
- انتزاعات ارتباطی
- محاسبات توزیعشده بر مجموعهای کوچک از اصول اولیه تعامل بنا شده است—ارسال پیام ناهمگام و همگام، حافظه مشترک توزیعشده، و فراخوانی رویه یا متد از راه دور—که هر یک معناشناسی متمایزی برای تحویل، ترتیب و خطا دارند که طراحی سطح بالاتر را شکل میدهد.
Clinical relevance
انتخاب مدل صحیح، اولین تصمیم طراحی در هر سیستم واقعی است: پلتفرمهای ابری، پایگاههای داده و سرویسهای هماهنگسازی همگی یک مدل زمانبندی (اغلب نیمههمگام) و یک مدل خطا را اعلام میکنند، و این انتخابها تعیین میکنند که سیستم چه تضمینهایی در زمینه سازگاری، دسترسی و تحمل خطا میتواند ارائه دهد.
History
تحقیقات اولیه سیستمهای توزیعشده در دهههای 1970 و 1980 به دنبال شناسایی حداقل فرضیاتی بود که تحت آنها هماهنگسازی توزیعشده امکانپذیر است، که منجر به دوگانگی همگام/ناهمگام و طبقهبندی خطاها شد. این مدلها در کتابهای درسی توسط لینچ، عطیه و ولش، تاننباوم و ون استین، و کولوریس و همکاران تثبیت شدند و به واژگان مشترک برای کل این حوزه تبدیل گشتند.
Debates
- مدل ناهمگام برای سیستمهای عملی چقدر واقعبینانه است؟
- مدل ناهمگام خالص به اثبات رسیده است که برنامهنویسی در آن دشوارترین است و تشخیص خطای قابل اعتماد را رد میکند، با این حال اکثر شبکههای واقعی تنها به صورت متناوب کند هستند؛ مدلهای نیمههمگام و آشکارسازهای خطا به عنوان یک راه حل میانی عملگرایانه ظهور کردند که ضمن حفظ دقت، زمانبندیها را نیز مجاز میدانند.
Key figures
- Leslie Lamport
- Nancy Lynch
- Andrew S. Tanenbaum
- Maarten van Steen
Related topics
Seminal works
- lynch1996
- tanenbaum2017
- attiya2004
Frequently asked questions
- چرا مدل زمانبندی اینقدر اهمیت دارد؟
- زیرا تعیین میکند که آیا میتوان به زمانبندیها (timeouts) اعتماد کرد یا خیر. در یک مدل همگام، تأخیرهای محدود به یک فرآیند اجازه میدهند با اطمینان نتیجه بگیرد که یک همتای خاموش دچار خرابی شده است؛ در یک مدل ناهمگام، یک فرآیند کند و یک فرآیند خراب غیرقابل تشخیص هستند، که ریشه چندین نتیجه عدم امکان معروف است.
- خطای بیزانسی چیست؟
- خطای بیزانسی (دلخواه) خطایی است که در آن یک جزء معیوب ممکن است به هر شکلی رفتار کند، از جمله ارسال پیامهای متناقض یا مخرب. تحمل آن بسیار پرهزینهتر از تحمل خرابیهای ساده است و به پروتکلهای توافق تخصصی نیاز دارد.