Cloudflare سرویس کنترل‌پلن جهانی Meerkat را معرفی کرد؛ سیستمی مبتنی بر الگوریتم اجماع QuePaxa که نوشتن بدون رهبر را ممکن می‌سازد و هدف آن افزایش سازگاری قوی و دسترسی در شبکهٔ جهانی است.

دلیل توسعه Meerkat

الگوریتم‌هایی مانند Raft و Paxos در محیط‌های توزیع‌شده گسترده با محدودیت‌هایی روبه‌رو می‌شوند: تنها رهبر اجازهٔ نوشتن دارد و در صورت کرش یا افت کیفیت لینک سرویس تا انتخاب رهبر جدید تحت تأثیر قرار می‌گیرد. برای حذف این گلوگاه، Cloudflare الگوریتم QuePaxa را به‌کار گرفته و Meerkat را طوری طراحی کرده که هر رپلیکا بتواند پیشنهاد نوشتن ارائه کند و وابستگی به تایم‌اوت رهبر را کاهش دهد.

معماری و سازگاری

هستهٔ Meerkat یک لاگ اجماع تکثیرشدهٔ جهانی است که ترتیب و مقادیر عملیات متعهدشده را در همهٔ رپلیکاها همسان نگه می‌دارد و خوانش‌ها و نوشتن‌ها را خطی‌پذیر تضمین می‌کند. نویسندگان — James Larisch، Bob Halley و João Pedro Leite — لاگ را به‌صورت دنباله‌ای از «اسلات» توصیف می‌کنند:

نحوهٔ سازمان‌دهی لاگ

  • هر اسلات می‌تواند خالی باشد یا یک رویداد در آن قرار گیرد.
  • اسلاتی که رویداد دارد «اسلات تصمیم‌گرفته» نامیده می‌شود؛ به‌جز آخرین اسلات، بقیه اسلات‌ها تصمیم‌گرفته‌اند.
  • قید بنیادین: اگر دو رپلیکا دربارهٔ یک اسلات تصمیم بگیرند، مقدار تصمیم‌گرفته‌شده یکسان خواهد بود؛ در نتیجه تضاد روی اسلات‌های تصمیم‌گرفته رخ نمی‌دهد.

این ساختار به سرویس‌های بالادستی مانند فروشگاه کلید-مقدار تراکنشی یا سیستم‌های leasing اجازه می‌دهد روی ترتیب و مقادیر لاگ حساب کنند و رفتار خطی‌پذیر داشته باشند.

QuePaxa و نوشتن بدون رهبر

برخلاف الگوریتم‌های نیمه‌هم‌زمان که بر تایم‌اوت‌ها متکی‌اند، QuePaxa به تایم‌اوت رهبر وابسته نیست و اجازه می‌دهد هر رپلیکا پیشنهاد نوشتن را ارائه کند. این ویژگی به‌ویژه در شرایطی که تأخیر پیام‌ها به‌شکلی ناپایدار تغییر می‌کند، باعث پیشرفت سرویس می‌شود. در بحث‌های عمومی مانند Hacker News اشاره شده که QuePaxa می‌تواند در مواردی که Raft یا Paxos مختل می‌شوند، عملیات را ادامه دهد.

نمای شماتیک لاگ اجماع Meerkat

هزینه‌ها و محدودیت‌ها

اجماع همیشه هزینهٔ عملکردی دارد؛ گردش‌های پیام متعدد از جمله این هزینه‌هاست. QuePaxa معمولاً بین 1 تا 3 گردش رفت‌وبرگشتی بین پیشنهاددهندهٔ اولیه و اکثریت رپلیکاها نیاز دارد (هرچند در برخی شرایط ممکن است بیشتر شود) تا روی پیشنهاد تصمیم گرفته و رویداد به لاگ افزوده شود. توسعه‌دهندگان Meerkat تصریح کرده‌اند که این فناوری برای جایگزینی کامل پایگاه‌داده‌های عمومی طراحی نشده و سربار اجماع باید در معماری سرویس‌ها لحاظ شود.

نمودار تاخیر و گردش پیام در Meerkat

پذیرش فنی و معیارهای عملکرد

در بحث‌های فنی برخی خوانایی مقالهٔ معرفی را چالش‌برانگیز خواندند و عده‌ای دربارهٔ ارزش گردش‌های اضافی شبکه در استقرارهای عملی سؤال کردند. پژوهش‌ها نشان می‌دهد سربار الگوریتم‌های اجماع در استقرارهای منطقه‌ای چندگانه معمولاً 40–60% افزایش تاخیر ایجاد می‌کند؛ ازاین‌رو بهینه‌سازی‌های Meerkat برای سیستم‌هایی که سازگاری قوی می‌خواهند قابل‌توجه است.

موقعیت فعلی و چشم‌انداز

Meerkat هنوز در تولید گسترده مستقر نشده، اما Cloudflare اعلام کرده چندین اثبات مفهوم را با تا 50 رپلیکا در سرتاسر جهان اجرا کرده است و این احتمالاً نخستین استقرار جهانی مبتنی بر QuePaxa خواهد بود. سؤال کلیدی برای مهندسان سیستم این است که آیا مزایای پایداری و دسترسی در برابر هزینه‌های اضافی پیام‌ها توجیه‌پذیر خواهد بود؛ پاسخ این سؤال به نتایج بنچ‌مارک‌های عملی و بازخورد از نمونه‌های اولیه بستگی دارد.

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

  • اگر نیاز به سازگاری خطی‌پذیر در سطح جهانی دارید و از قطع‌ شدن رهبر زیان می‌بینید، Meerkat و دیگر الگوریتم‌های ناهم‌زمان ارزش بررسی دارند.
  • برای کاربردهایی با بار نوشتن سنگین یا نیاز به تأخیر پایین، سربار شبکهٔ اجماع را با معیارهای عملکردی واقعی مقایسه کنید.
  • به‌خاطر داشته باشید Meerkat قرار نیست جایگزین یک پایگاه‌داده همه‌منظوره شود؛ این لایه برای هماهنگی قوی بین رپلیکاها طراحی شده است.

در هفته‌ها و ماه‌های آینده باید منتظر گزارش‌های بنچ‌مارک واقعی و پیاده‌سازی‌های گسترده‌تر باشیم؛ درصورت انتشار مشخصه‌ها یا کدهای اعتبارسنجی از سوی Cloudflare، جامعهٔ مهندسی زیرساخت دید روشن‌تری از تناسب این روش برای کاربردهای واقعی به‌دست خواهد آورد.