رفتن به محتوای اصلی
Koohestun
توضیح کوهستانسیستم‌های توزیع‌شدهتشریح نظریه· 5 دقیقه مطالعه· در دیدگاه

محال بودن اف‌ال‌پی: چرا یک قطعی ساده، اجماع در سیستم‌های توزیع‌شده را در هم می‌شکند؟

یک قضیه بنیادین در سال ۱۹۸۵ ثابت می‌کند که هیچ شبکه ناهمگام و قطعی نمی‌تواند در صورت از کار افتادن حتی یک گره، رسیدن به توافق را تضمین کند. این مرز ریاضیاتی، زیرساخت‌های ابری مدرن را ناچار می‌کند تا به جای قطعیت مطلق، به وقفه‌های زمانی (تایم‌اوت) و احتمالات تکیه کنند.

به قلم شاهین فراهانی

دانشمندان نظری کامپیوتر 40%مهندسان سیستم‌های توزیع‌شده 40%طراحان سیستم‌های احتمالی 20%
دانشمندان نظری کامپیوتر
تمرکز بر مرزهای ریاضیاتی محاسبات و اثبات‌های مطلق در مورد کارهایی که الگوریتم‌ها می‌توانند یا نمی‌توانند انجام دهند.
مهندسان سیستم‌های توزیع‌شده
اولویت دادن به راهکارهای عملی مانند وقفه‌های زمانی و همگامی نسبی برای ساخت پایگاه‌های داده کاربردی و با دسترسی بالا.
طراحان سیستم‌های احتمالی
دفاع از استفاده از الگوریتم‌های تصادفی برای شکستن تقارن و کاهش احتمال تاخیرهای بی‌نهایت به نزدیک صفر.

در یک محیط محاسباتی همگام — مانند یک پردازنده ۶۴ هسته‌ای که به ساعت ۴ گیگاهرتزی یک مادربرد متصل است — تشخیص خرابی کار ساده‌ای است: اگر یک قطعه مهلت زمانی دقیق ۲۵۰ پیکوثانیه‌ای را از دست بدهد، مرده تلقی می‌شود. اما شبکه‌های ناهمگامی که اینترنت مدرن را می‌چرخانند، دقیقاً در یک جنبه تفاوت دارند: هیچ ساعت جهانی و هیچ حداکثر تاخیر تضمین‌شده‌ای برای یک پیام وجود ندارد. همین یک محدودیتِ غایب، تله‌ای ریاضیاتی می‌سازد که بر تمام پایگاه‌های داده ابری امروزی حاکم است.[6]

این تله با نام «قضیه محال بودن اف‌ال‌پی» (FLP Impossibility Theorem) شناخته می‌شود که از نام پژوهشگران آن، مایکل فیشر، نانسی لینچ و مایکل پترسون گرفته شده است. آن‌ها در مقاله آوریل ۱۹۸۵ خود با عنوان «محال بودن اجماع توزیع‌شده با یک فرآیند معیوب» که در نشریه ACM منتشر شد، ثابت کردند که در یک شبکه کاملاً ناهمگام، هیچ الگوریتم قطعی نمی‌تواند تضمین کند که گروهی از کامپیوترها به اجماع می‌رسند، حتی اگر احتمال خرابی تنها ۱ ماشین از ۱۰۰۰ ماشین وجود داشته باشد.[1]

برای درک این مرز، ابتدا باید اصطلاحات را تعریف کنیم. «اجماع» ایجاب می‌کند که ۱۰۰ درصد از گره‌های سالم در یک شبکه بر سر یک مقدار باینری واحد — یعنی ۰ یا ۱ — توافق کنند و این تصمیم نهایی باشد. «قطعی» (Deterministic) به این معناست که الگوریتم بر تصادف تکیه نمی‌کند؛ با ورودی‌های یکسان، دقیقاً خروجی‌های یکسانی تولید می‌کند. «ناهمگام» (Asynchronous) نیز یعنی پیام‌ها ممکن است ۵ میلی‌ثانیه یا ۵ روز تاخیر داشته باشند، اما هرگز گم نمی‌شوند.[1][4]

هسته اصلی این ناممکن بودن، در ناتوانی برای تمایز قائل شدن میان کامپیوتری که از کار افتاده و کامپیوتری که صرفاً بسیار کند عمل می‌کند، نهفته است. از آنجا که هیچ محدودیت زمانی حداکثری برای رسیدن یک پیام وجود ندارد، گره‌های باقی‌مانده هرگز نمی‌توانند با قطعیت کامل مطمئن شوند که یک همتای خاموش، واقعاً مرده است.[2]

فیشر، لینچ و پترسون این موضوع را با معرفی مفهوم وضعیت «دوظرفیتی» (bivalent) نشان دادند. یک سیستم زمانی دوظرفیتی است که مقدار نهاییِ توافق‌شده، بسته به ترتیبی که پیام‌های آینده تحویل داده می‌شوند، همچنان بتواند ۰ یا ۱ باشد. در مقابل، وضعیت «تک‌ظرفیتی» (univalent) وضعیتی است که در آن تصمیم نهایی قفل شده است، فارغ از اینکه در آینده چه اتفاقی بیفتد.[1][2]

وضعیت دوظرفیتی به این معناست که بسته به زمان‌بندی پیام‌ها، تصمیم نهایی همچنان می‌تواند به هر یک از دو حالت ممکن ختم شود.

اثبات ریاضی این قضیه بر یک سناریوی خصمانه به شدت ساده استوار است. این پژوهشگران نشان دادند که اگر یک سیستم در یک وضعیت دوظرفیتی کار خود را آغاز کند، یک تاخیر با زمان‌بندی دقیق در تحویل پیام می‌تواند همیشه سیستم را به یک وضعیت دوظرفیتی دیگر سوق دهد و شبکه را در یک حلقه بی‌نهایت از بلاتکلیفی گرفتار کند.[1][5]

اثبات ریاضی این قضیه بر یک سناریوی خصمانه به شدت ساده استوار است.

تحلیل موسسه ماکس پلانک از این قضیه خاطرنشان می‌کند: «در یک سیستم ناهمگام، غیرممکن است تضمین کنیم که یک پروتکل اجماع روزی به پایان می‌رسد.» یک عامل مخرب که تاخیرهای شبکه را کنترل می‌کند، می‌تواند دنباله‌ای بی‌نهایت از وضعیت‌های دوظرفیتی را به هم پیوند دهد و مانع از آن شود که سیستم هرگز به یک نتیجه تک‌ظرفیتی برسد.[5]

این قضیه ثابت می‌کند که یک تاخیر با زمان‌بندی دقیق می‌تواند یک سیستم قطعی را در یک حلقه بی‌نهایت گرفتار کند.

این بدان معنا نیست که اجماع در دنیای واقعی عملاً غیرممکن است، بلکه نشان می‌دهد نمی‌توان از نظر ریاضی تضمین کرد که این فرآیند در یک زمان محدود به پایان برسد. سیستم ممکن است در همان تلاش اول به توافق برسد، یا ممکن است برای همیشه به تاخیر بیفتد.[3]

برای مهندسانی که زیرساخت‌های جهانی را می‌سازند، این مطلق‌گرایی نظری نیازمند سازش‌های عملی است. رایج‌ترین راهکار، کنار گذاشتن تعریف دقیق و سخت‌گیرانه یک سیستم ناهمگام از طریق معرفی مفهوم «همگامی نسبی» (partial synchrony) است.[4]

تحت شرایط همگامی نسبی، مهندسان فرض را بر این می‌گذارند که اگرچه شبکه ممکن است تاخیرهای غیرقابل پیش‌بینی را تجربه کند، اما در نهایت به ثبات می‌رسد و پیام‌ها را در یک بازه زمانی مشخص تحویل می‌دهد. این امر اجازه استفاده از وقفه‌های زمانی (تایم‌اوت) را می‌دهد. اگر یک گره در یک پنجره ۵۰ میلی‌ثانیه‌ای پاسخ ندهد، مرده فرض می‌شود و سیستم به مسیر خود ادامه می‌دهد.[4][6]

مهندسان با معرفی وقفه‌های زمانی، این محدودیت غیرممکن را دور می‌زنند و ناهمگامی مطلق را فدای قابلیت اطمینان در عمل می‌کنند.

جزوات درسی دانشگاه ییل در این باره توضیح می‌دهند: «نتیجه اف‌ال‌پی نشان می‌دهد که ما نمی‌توانیم یک الگوریتم اجماع قطعی در یک مدل کاملاً ناهمگام داشته باشیم.» با افزودن وقفه‌های زمانی، سیستم‌هایی مانند پروتکل پکسوس (منتشر شده در ۱۹۹۸) و رفت (منتشر شده در ۲۰۱۴) شرایط سخت‌گیرانه این قضیه را دور می‌زنند.[4]

رویکرد دیگر، کنار گذاشتن کامل قطعیت است. با معرفی الگوریتم‌های تصادفی، یک سیستم می‌تواند برای شکستن تقارن یک وضعیت دوظرفیتی، یک سکه دیجیتال پرتاب کند. اگرچه این روش هنوز هم تضمین مطلقی برای پایان یافتن فرآیند ارائه نمی‌دهد، اما اطمینان حاصل می‌کند که احتمال یک تاخیر بی‌نهایت در طول زمان به نزدیک صفر کاهش می‌یابد.[3]

میراث مقاله سال ۱۹۸۵ این نیست که توسعه سیستم‌های توزیع‌شده را متوقف کرد، بلکه این است که مرزهای دقیقِ آنچه را که امکان‌پذیر است، ترسیم نمود. این قضیه، صنعت را وادار کرد تا بپذیرد که قطعیت مطلق در یک دنیای شبکه‌ای، تنها یک افسانه ریاضیاتی است.[2][6]

هر بار که یک پایگاه داده ابری برای انتخاب یک رهبر جدید مکث می‌کند، یا تایید یک تراکنش در سراسر یک شبکه جهانی ۲۰۰ میلی‌ثانیه بیشتر طول می‌کشد، سیستم در حال مسیریابی فعالانه در میان محدودیت‌هایی است که فیشر، لینچ و پترسون ترسیم کرده‌اند. این قضیه همچنان به عنوان بستر بنیادینی که تمام معماری‌های توزیع‌شده مدرن بر روی آن بنا شده‌اند باقی می‌ماند و ثابت می‌کند که در علوم کامپیوتر، دانستن اینکه چه کاری را نمی‌توان انجام داد، به همان اندازه ارزشمند است که بدانیم چه کاری امکان‌پذیر است.[6]

چرا مهم است

هر بار که کارت اعتباری می‌کشید، پروازی رزرو می‌کنید یا پیامی می‌فرستید، یک پایگاه داده توزیع‌شده باید بر سر ترتیب این تراکنش‌ها به اجماع برسد. درک اینکه چرا توافق بی‌نقص از نظر ریاضی غیرممکن است، به روشنی توضیح می‌دهد که چرا سرویس‌های ابری گاهی دچار جهش‌های عجیب در تاخیر یا خطاهای دوپارگی شبکه (split-brain) می‌شوند.

بررسی عمیق دیدگاه‌ها

خلوص‌گرایان نظری

دیدگاه ریاضیاتی مبنی بر اینکه تضمین‌های مطلق، تنها معیار واقعی برای اعتبار یک الگوریتم هستند.

برای دانشمندان نظری کامپیوتر، محال بودن اف‌ال‌پی یک اثبات زیبا و حلقه بسته است که محدودیت‌های مطلق منطق توزیع‌شده را تعریف می‌کند. آن‌ها استدلال می‌کنند که درک این مرز ضروری است، زیرا هرگونه تلاش برای ساخت یک سیستم اجماع کاملاً قطعی و ناهمگام، از نظر ریاضی محکوم به شکست است. این اثبات بر این واقعیت استوار است که بدون یک ساعت همگام، تمایز بین یک گره از کار افتاده و یک گره کند، اساساً غیرقابل تشخیص است.

مهندسان عمل‌گرا

دیدگاه مهندسی مبنی بر اینکه می‌توان با تغییر قوانین محیط، غیرممکن‌های نظری را دور زد.

مهندسانی که سیستم‌هایی مانند آپاچی کافکا (Apache Kafka) یا گوگل اسپانر (Google Spanner) را می‌سازند، قضیه اف‌ال‌پی را نه به عنوان یک مانع، بلکه به عنوان نقشه‌ای از مسیرهای ممنوعه می‌بینند. آن‌ها با معرفی همگامی نسبی — به طور خاص، این فرض که پیام‌ها معمولاً در یک پنجره زمانی قابل پیش‌بینی می‌رسند — مدل زیربنایی را تغییر می‌دهند. اگر یک گره وقفه زمانی را از دست بدهد، مرده تلقی می‌شود. این کار از نظر فنی شرط «کاملاً ناهمگام» بودن قضیه را نقض می‌کند، اما به سیستم اجازه می‌دهد تا در دنیای واقعی به طور قابل اعتمادی کار کند.

طراحان سیستم‌های احتمالی

رویکردی که تصادفی بودن را می‌پذیرد تا محدودیت‌های قطعی قضیه را از نظر ریاضی دور بزند.

به جای تکیه بر وقفه‌های زمانی سخت‌گیرانه، برخی از طراحان الگوریتم‌های تصادفی را برای شکستن تقارن دوظرفیتی معرفی می‌کنند. با وادار کردن گره‌ها به پرتاب یک سکه دیجیتال در زمانی که نمی‌توانند به توافق برسند، سیستم تضمین می‌کند که یک تاخیر خصمانه نمی‌تواند آن را برای همیشه گرفتار کند. اگرچه این بدان معناست که اجماع تنها با احتمالی نزدیک به ۱۰۰ درصد در طول زمان تضمین می‌شود — نه یک تضمین قطعی مطلق — اما این میزان برای محیط‌های محاسباتی با عملکرد بالا بیش از حد کافی است.

آنچه نمی‌دانیم

  • آیا پیشرفت‌های آینده در شبکه‌های کوانتومی می‌توانند راه‌های جدیدی برای دور زدن تله وضعیت دوظرفیتی، بدون اتکا به وقفه‌های زمانی سنتی، ارائه دهند یا خیر.
  • فرکانس و میزان دقیق قطعی‌های ابری در دنیای واقعی که مستقیماً ناشی از بروز موارد حاشیه‌ای در حلقه تاخیر بی‌نهایت اف‌ال‌پی هستند.

منابع

پوشش منابع

6 منبع

3 دیدگاه شناسایی‌شده

دانشمندان نظری کامپیوتر 40%مهندسان سیستم‌های توزیع‌شده 40%طراحان سیستم‌های احتمالی 20%
  1. [1]Journal of the ACMدانشمندان نظری کامپیوتر

    Impossibility of Distributed Consensus with One Faulty Process

    مطالعه در Journal of the ACM
  2. [2]The Paper Trailمهندسان سیستم‌های توزیع‌شده

    A Brief Tour of FLP Impossibility

    مطالعه در The Paper Trail
  3. [3]arXivطراحان سیستم‌های احتمالی

    Different Perspectives on FLP Impossibility

    مطالعه در arXiv
  4. [4]Yale Universityمهندسان سیستم‌های توزیع‌شده

    FischerLynchPaterson

    مطالعه در Yale University
  5. [5]Max Planck Institute for Informaticsدانشمندان نظری کامپیوتر

    Impossibility of Consensus

    مطالعه در Max Planck Institute for Informatics
  6. [6]تیم سردبیری کوهستان

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

دریافت دیدگاه اخبار همراه با پوشش کامل منابع و تحلیل دیدگاه‌ها، مستقیم در صندوق ورودی شما.