خوشه چهارگرهای تابآوری بیشتری نسبت به سه گره ندارد: چرا سیستمهای توزیعشده به حدنصابهای فرد وابستهاند؟
افزودن سرور چهارم به یک خوشه پایگاه داده سهگرهای نه تنها تحملپذیری خطا را افزایش نمیدهد، بلکه پایداری آن را کاهش میدهد. ریاضیات حدنصاب اکثریت حکم میکند که سیستمهای توزیعشده برای بقا در برابر قطعیهای شبکه، باید به تعداد فرد مقیاسپذیر شوند.
به قلم الناز احمدی
این خبر را به اشتراک بگذارید
بهطور خلاصه
- افزودن گره چهارم به یک خوشه اجماع سهگرهای، حدنصاب لازم را از دو به سه افزایش میدهد بدون آنکه کمترین تحمل خطای اضافهای ایجاد کند.
- خوشههای با تعداد زوج گره در برابر تقسیم کامل ۵۰/۵۰ شبکه آسیبپذیرند؛ رخدادی که سیستم را برای ممانعت از دوگانگی مغزی و فساد داده کاملاً متوقف میکند.
- برای تابآوری در برابر خرابی همزمان دو ماشین، یک پایگاه داده توزیعشده باید مستقیماً از سه گره به پنج گره مقیاسبندی شود.
سرنوشت و بقای یک پایگاه داده توزیعشده در همان میلیثانیهای تعیین میشود که کابل شبکه قطع میگردد. هنگامی که ارتباط سرورهای یک خوشه با یکدیگر قطع میشود، سیستم بلافاصله باید برای انتخاب راهبر جدید و ادامه پذیرش دادهها، آرا را بشمارد.[3]
این سازوکار شمارش آرا، گلوگاه مطلق قابلیت اطمینان در سامانههای توزیعشده است. سیستمی که نتواند اکثریت قاطع گرههای باقیمانده را گرد هم آورد، برای جلوگیری از مخدوش شدن دادهها باید کاملاً متوقف شود و از کار افتادن کامل را به ثبت رکوردهای متناقض ترجیح دهد.[3]
در مهندسی سنتی، افزونگی معمولاً رشدی خطی دارد: دو موتور ایمنتر از یکی است و چهار پایه استوارتر از سه پایه عمل میکند. با این حال، الگوریتمهای اجماع توزیعشده خلاف این شهود فیزیکی رفتار میکنند؛ زیرا افزودن گره چهارم به یک خوشه سهگرهای، بههیچوجه تابآوری سیستم را بالا نمیبرد.[5]
در واقع، آن گره چهارم از نظر ریاضی پایداری و در دسترس بودن خوشه را در زمان وقوع قطعی شبکه کاهش میدهد. این گره تعداد آرای لازم برای رسیدن به اکثریت را بالا میبرد، بدون آنکه ظرفیت سیستم برای جذب خطای سرورها را سرسوزنی افزایش دهد.[5]
ریاضیات اکثریت
برای درک چراییِ بدتر بودن چهار گره نسبت به سه گره، باید فرمول حدنصاب را بررسی کرد. حدنصاب، حداقل تعداد گرههایی است که پیش از ثبت نهایی یک تراکنش روی دیسک، باید با آن موافقت کنند.[3]
در سیستمهای مقاوم در برابر خطای از کار افتادگی، حدنصاب همواره به عنوان اکثریت مطلق تعریف میشود: نصف تعداد کل گرهها بهعلاوه یک. در یک خوشه سهگرهای، این اکثریت مطلق برابر با دو است.[3]
این یعنی سیستم سهگرهای تا زمانی که دو گره با هم در ارتباط باشند، میتواند با اطمینان دادهها را ذخیره کند. در نتیجه، این سامانه میتواند دقیقاً از کار افتادن یا قطع ارتباط یک گره را بدون توقف در عملیات تاب بیاورد.[1][3]
هنگامی که تیم مهندسی گره چهارمی به این خوشه اضافه میکند، تعداد کل گرهها به چهار میرسد. اکثریت مطلق عدد چهار، سه است؛ به این معنی که خوشه برای هر تراکنش اکنون نیازمند موافقت سه گره است.[5]
از آنجا که خوشه چهارگرهای برای فعالیت به سه گره نیاز دارد، همچنان فقط میتواند دقیقاً خرابی یک گره را تحمل کند. اگر دو گره از کار بیفتند، دو گره باقیمانده نمیتوانند اکثریت سهتایی را تشکیل دهند و کل پایگاه داده ناچار به توقف میشود.[5]
چرا گره چهارم یک نقطه ضعف است؟
گره چهارم هیچ تابآوری مازادی برای سیستم به ارمغان نیاورده است. سازمان برای سرور چهارم هزینه کرده، مصرف برق را افزایش داده، اما عملاً همان شکنندگی سیستم سهسروری را به ارث برده است.[5]
مشکل گره چهارم فراتر از اتلاف سختافزار است. این گره مستقیماً کارایی پایگاه داده را افت میدهد؛ زیرا هر عملیات نوشتن، اکنون نیازمند یک تأییدیه شبکه اضافی است تا به کاربر گزارش موفقیت داده شود.[3]
دیهگو اونگارو و جان اوسترهوت، پژوهشگران دانشگاه استنفورد، در مقاله سال ۲۰۱۴ خود هنگام معرفی الگوریتم اجماع رَفْت (Raft)، قاعدهای بنیادین وضع کردند: «یک خوشه باید بتواند خرابی هر بخش اقلیتی از سرورهایش را تاب بیاورد.»[1]
یک سیستم چهارگرهای احتمال وقوع خرابی در بخش اقلیت را افزایش میدهد. با داشتن چهار ماشین مستقل، از نظر آماری احتمال بروز نقص فنی، خرابی نرمافزاری یا قطعی شبکه در هر لحظه روی حداقل یکی از آنها بیشتر میشود.[5]
از آنجا که خوشه با خرابی گره دوم همچنان از کار میافتد، پیکربندی چهارگرهای از دیدگاه ریاضی در مقایسه با سهگرهای پایداری کمتری دارد. سطح بروز نقص فنی در آن وسیعتر شده، اما تحمل آن در برابر خطا تغییر نکرده است.[5]
مسئله دوگانگی مغزی
الزام سختگیرانه برای تشکیل حدنصاب اکثریت، به منظور جلوگیری از خطای فاجعهباری موسوم به دوگانگی مغزی پدید آمده است. اگر یک قطعی شبکه خوشه را دقیقاً به دو نیم تقسیم کند، سیستم باید مطمئن شود که هر دو نیمه بهطور مستقل برای خود راهبر انتخاب نکنند.[3][4]
در یک خوشه چهارگرهای، خرابی سوییچ شبکه میتواند سامانه را به آسانی به دو جفت مجزا تفکیک کند. هیچیک از این دو جفت اکثریت سهتایی لازم را در اختیار ندارند؛ در نتیجه هر دو بخش از پردازش تراکنشها خودداری میکنند و با ایجاد وقفه در سرویس، یکپارچگی داده حفظ میشود.[4]
خوشههای با تعداد گره فرد، بهطور طبیعی جلوی مساوی شدن آرا را میگیرند. اگر قطعی شبکه یک خوشه سهگرهای را دوپاره کند، یک سو دارای دو گره و سوی دیگر یک گره خواهد بود. سمتی که دو گره دارد اکثریت را داراست و به کار ادامه میدهد.[3]
همانطور که لزلی لمپورت، دانشمند علوم رایانه، در مقاله بنیادین سال ۲۰۰۱ خود با نام «پکسوس سادهشده» توضیح داد، اشتراک اکثریتها شالوده حقیقت توزیعشده است: «اگر باید اکثریتی از عاملها انتخاب شوند، آنگاه هر دو اکثریت حداقل در یک عامل با یکدیگر اشتراک خواهند داشت.»[2]
مقیاسبندی به پنج گره و بیشتر
هنگامی که یک سیستم واقعاً نیاز به تابآوری در برابر خرابی همزمان دو ماشین دارد، ریاضیات حکم میکند که مستقیماً به سمت پنج گره جهش کنیم. در یک خوشه پنجگرهای، اکثریت مطلق برابر با سه است.[1][3]
چون برای ثبت یک تراکنش سه گره کافی است، خوشه میتواند با خیال آسوده دو گره را از دست بدهد و به کار خود ادامه دهد. این رابطه در مهندسی سیستمهای توزیعشده در قالب معادله 2f + 1 بیان میشود؛ جایی که f تعداد خطاهای قابلتحمل است.[1]
برای تابآوری یک خطا، خوشه به سه گره نیاز دارد. برای دو خطا، پنج گره لازم است و برای سه خطا، به هفت گره نیاز خواهیم داشت. اعداد زوج اصلاً جایی در مسیر بهینه مقیاسپذیری پایگاههای داده مبتنی بر اجماع ندارند.[1][5]
ارائهدهندگان بزرگ زیرساخت ابری این منطق ریاضی را در سطح معماری پیاده کردهاند. برای نمونه، آپاچی زوکیپر که سرویسی متمرکز برای نگهداری اطلاعات پیکربندی است، در مستندات رسمی خود صراحتاً به مدیران هشدار میدهد که از استقرار مجموعههایی با تعداد گره زوج بپرهیزند.[4]
استثناهای این قاعده
البته الگوهای معماری خاصی وجود دارند که در آنها گره چهارم پیادهسازی میشود، اما هرگز به عنوان عضو صاحب رأی در حدنصاب اجماع شرکت نمیکند. بسیاری از پایگاههای داده از نسخههای رونوشت خواندنی استفاده میکنند؛ سرورهایی که جریانی از دادههای ثبتشده را دریافت میکنند اما نقشی در انتخاب راهبر ندارند.[3]
یک خوشه اجماع سهگرهای میتواند دهها نسخه رونوشت خواندنی را پشتیبانی کند. اگر یک نسخه خواندنی خراب شود، به محاسبات حدنصاب خدشهای وارد نمیشود؛ زیرا هسته اصلی خوشه برای تصمیمگیری همچنان به موافقت دو عضو از سه عضو دارای حق رأی نیاز دارد.[3][5]
استثنای دیگر مربوط به تحمل خطای بیزانسی است؛ مدل پیچیدهتری از اجماع که در شبکههای بلاکچین و سیستمهای هوافضا به کار میرود. این سیستمها نه تنها باید در برابر از کار افتادن گرهها، بلکه باید در مقابل گرههایی که دروغ میگویند یا دادههای مخرب میفرستند نیز مقاومت کنند.[5]
استثنای دیگر مربوط به تحمل خطای بیزانسی است؛ مدل پیچیدهتری از اجماع که در شبکههای بلاکچین و سیستمهای هوافضا به کار میرود.
ریاضیات خطاهای بیزانسی به فرمول متفاوتی متکی است: 3f + 1. برای تابآوری در برابر یک گره مخرب، یک سیستم بیزانسی به چهار گره نیاز دارد. اما در مراکز داده سازمانی متداول که سرورها صرفاً خاموش میشوند و توطئه نمیکنند، قانون حدنصاب فرد، حاکم بلامنازع است.[5]
این تحلیل چگونه انجام شد
- روش
- مقایسه ریاضی آستانههای خرابی در خوشههایی با ۳ تا ۶ گره، محاسبه دقیق حدنصاب مورد نیاز برای هر یک و حاشیه تحملپذیری خطای حاصل از آن.
- یافته
- افزودن گره چهارم به یک خوشه سهگرهای بهطور قطعی پایداری سیستم در برابر قطعیهای شبکه را کاهش میدهد؛ زیرا نیاز حدنصاب را از دو به سه افزایش داده بدون آنکه تعداد خرابیهای مجاز را بالا ببرد.
- دادههایی که بر پایهٔ آنها کار کردیم
- فرمول حدنصاب اکثریت (N/2 + 1): Strict majority requirement — Amazon Web Services
- تحمل خطای خوشه رفت (2f+1): Odd-numbered scaling requirement — USENIX
- محدودیتهای این تحلیل
- این تحلیل صرفاً بر سیستمهای مقاوم در برابر خطای از کار افتادگی با حدنصاب اکثریت صدق میکند و سیستمهای مقاوم در برابر خطای بیزانسی یا ساختارهای حدنصاب سفارشی را شامل نمیشود.
اصطلاحات کلیدی
- حدنصاب (Quorum)
- حداقل تعداد گرهها در یک سیستم توزیعشده که باید پیش از ذخیره دائمی یک تراکنش بر سر آن به توافق برسند.
- دوگانگی مغزی (Split-brain)
- وضعیتی بحرانی که در آن قطعی شبکه باعث تقسیم خوشه به بخشهای مستقلی میشود که هرکدام به اشتباه خود را راهبر اصلی سیستم میدانند.
- تحمل خطای از کار افتادگی (Crash Fault Tolerance)
- توانایی یک سیستم برای ادامه فعالیت هنگام توقف یا قطع شدن اجزا، مشروط بر آنکه اجزای معیوب دادههای جعلی یا مخرب ارسال نکنند.
- قطعی شبکه (Network Partition)
- اختلال در تجهیزات شبکه که مانع ارتباط بخشی از سرورهای خوشه با بخش دیگر میشود، در حالی که هر دو سو روشن و فعال باقی ماندهاند.
پرسشهای متداول
آیا میتوان از یک خوشه چهارگرهای استفاده کرد به شرطی که یکی از آنها فقط نقش شاهد داشته باشد؟
بله. برخی معماریها از یک گره سبک به نام «شاهد» استفاده میکنند که دادهای را نگهداری نمیکند و فقط برای شکستن تساوی رأی میدهد. این کار عملاً یک حدنصاب سهگرهای دارای رأی میسازد در حالی که به دو سرور داده کامل نیاز دارد.
آیا این قاعده برای وبسرورهای بیوضعیت هم صادق است؟
خیر. سرورهای بیوضعیت نیازی به توافق بر سر وضعیت مشترک یا انتخاب راهبر ندارند. شما میتوانید آنها را به هر تعدادی، زوج یا فرد، مقیاسبندی کنید؛ زیرا از الگوریتمهای اجماع استفاده نمیکنند.
اگر یک خوشه سهگرهای دو گره خود را از دست بدهد چه میشود؟
تکگره باقیمانده متوجه میشود که نمیتواند اکثریت دونفره را بسازد. در نتیجه برای محافظت از دادهها، فوراً پذیرش درخواستهای نوشتن را متوقف میکند و سیستم تا بازگشت گره دوم به مدار دچار قطعی میشود.
بررسی عمیق دیدگاهها
مهندسان سیستمهای توزیعشده
بر اثباتهای ریاضی الگوریتمهای اجماع و لزوم شکلگیری اکثریتهای قاطع برای جلوگیری از مخدوش شدن دادهها تمرکز دارند.
از نگاه دانشمندان علوم رایانه که الگوریتمهای اجماع را طراحی میکنند، انتخاب تعداد فرد برای حدنصاب صرفاً یک توصیه تجربی نیست، بلکه یک قانون ریاضی است. محققانی همچون لزلی لمپورت و دیهگو اونگارو پروتکلهایی مانند پکسوس و رفت را بر پایه اثباتی بنیادین استوار کردند: اشتراک اکثریتها تنها راه تضمین یک حقیقت واحد میان ماشینهای مستقل است. اگر سیستمی به تعداد زوجی از گرهها حق رأی بدهد، امکان مساوی شدن آرا را فراهم میکند؛ امری که تضمین اشتراک را باطل کرده و کل سامانه را به ناچار متوقف میسازد.
معماران زیرساخت ابری
بر بهرهوری عملیاتی تأکید میکنند و درباره استقرار سختافزارهای مازادی که صرفاً تاخیر را بالا میبرند بدون آنکه آپتایم را ارتقا دهند، هشدار میدهند.
از جنبه عملیاتی، گره چهارم عملاً یک بار اضافه به شمار میرود. معماران ابری یادآور میشوند که هر گره اضافی در حدنصاب اجماع، ترافیک شبکه لازم برای ثبت نهایی یک تراکنش را افزایش میدهد. چون یک خوشه چهارگرهای به سه تاییدیه به جای دو تاییدیه محتاج است، پایگاه داده را ناگزیر میکند که برای یک جهش شبکه بیشتر منتظر بماند و تاخیر افزایش یابد. در کنار این واقعیت که گره چهارم هیچ تابآوری مازادی به همراه ندارد، تیمهای زیرساخت خوشههای با گره زوج را هدر دادن بودجه محاسباتی میدانند که کارایی سیستم را نیز تنزل میدهد.
مدیران پایگاه داده
بر حفظ پایداری عملیاتی و پیشگیری از سناریوهای فاجعهبار دوگانگی مغزی در جریان قطعیهای شبکه تمرکز دارند.
برای تیمهایی که مسئول آنلاین نگه داشتن پایگاههای داده در ساعات نیمهشب هستند، دغدغه اصلی تابآوری در برابر نواقص سختافزاری بدون نیاز به مداخله دستی است. مدیران پایگاههای داده به این دلیل به خوشههای فرد تکیه میکنند که در زمان وقوع قطعی شبکه، تفکیک بدون تساوی آرا را تضمین میکنند. اگر یک سوییچ خراب شود و خوشه را دوشقه کند، فرد بودن تعداد گرهها تضمین میکند که یک سمت همیشه حائز اکثریت بوده و آنلاین بماند، در حالی که سمت اقلیت با حفظ امنیت خاموش میشود. یک خوشه زوج خطر تقسیم مساوی ۵۰/۵۰ را دارد که در آن هر دو سو ناچار به خاموشی میشوند و یک نقص ساده شبکه به قطعی سراسری سیستم بدل میگردد.
- مهندسان سیستمهای توزیعشده
- بر اثباتهای ریاضی الگوریتمهای اجماع و لزوم شکلگیری اکثریتهای قاطع برای جلوگیری از مخدوش شدن دادهها تمرکز دارند.
- معماران زیرساخت ابری
- بر بهرهوری عملیاتی تأکید میکنند و درباره استقرار سختافزارهای مازادی که صرفاً تاخیر را بالا میبرند بدون آنکه آپتایم را ارتقا دهند، هشدار میدهند.
- تحلیل تحریریه فکتلن
- مبانی نظری آکادمیک را با واقعیتهای استقرار عملی پیوند میزند تا منطق خلاف شهود مقیاسپذیری را تبیین کند.
دیدگاههایی که این گزارش پوشش نداده
- تولیدکنندگان سختافزار
- واحدهای تدارکات فناوری اطلاعات سازمانی
منابع
[1]USENIXمهندسان سیستمهای توزیعشدهIn Search of an Understandable Consensus Algorithm
مطالعه در USENIX →
[2]Microsoft Researchمهندسان سیستمهای توزیعشدهPaxos Made Simple
مطالعه در Microsoft Research →
[3]Amazon Web Servicesمعماران زیرساخت ابریLeader election in distributed systems
مطالعه در Amazon Web Services →
[4]Apache Software Foundationمعماران زیرساخت ابریZooKeeper Internals
مطالعه در Apache Software Foundation →
[5]تیم سردبیری کوهستانتحلیل تحریریه فکتلنتحلیل تیم سردبیری کوهستان
مطالعه در تیم سردبیری کوهستان →
بیشتر در دیدگاهها
مشاهده همه →یارانه انرژی
اجرای سقف ۱۱۰ لیتری بنزین در ماه؛ گامی ناگزیر برای مهار مصرف بیرویه در ایران
6 منبع
ترمودینامیک محاسبات
کف ترمودینامیکی: چرا پاک کردن یک بیت اطلاعات ۳ زپتوژول هزینه دارد؟
11 منبع
تابآوری زنجیره تامین
آیا زنجیره تامین جهانی اکنون به یک حلقه شکننده تبدیل شده است؟
2 منبع
اعتبار علمی
حل معادله ناویر-استوکس توسط اوپنایآی؛ چگونه هوش مصنوعی فاتحه اعتبار علمی سنتی را خواند
7 منبع
نظرات
هر زاویه. هر روز.
اخبار دیدگاهها با پوشش کامل منابع و تحلیل دیدگاهها، هر روز و رایگان.





