گرههای مجازی در حلقه هش: هشینگ سازگار چگونه جابهجایی دادهها را هنگام توسعه خوشههای ابری به ۱ بر N محدود میکند
پایگاههای داده توزیعشده نوین با نگاشت دادهها و سرورها بر یک پیوستار دایرهای، مکان داده را از شمار ماشینها تفکیک میکنند؛ تمهیدی ریاضی که از طوفانهای مرگبار بازهش در شبکه جلوگیری میکند، هرچند مرزهای پهنای باند فیزیکی کماکان حجم قطعی دادههای در حال مهاجرت را دیکته میکنند.
به قلم کیان راد
این خبر را به اشتراک بگذارید
بهطور خلاصه
- هشینگ سازگار دادهها و سرورها را بر یک پیوستار دایرهای مینشاند و بدینگونه استقرار دادهها را از شمار ماشینهای فعال مستقل میسازد.
- هنگام گسترش خوشه، سیستم صرفاً همان کسر مشخص از دادهها را جابهجا میکند که برای پر کردن سختافزار جدید الزامی است و مانع طوفان ترافیکی شبکه میشود.
- اختصاص صدها گره مجازی به هر سرور فیزیکی شکافهای چیدمان تصادفی را خنثی کرده و جلوی نقاط داغ پرفشار و فروپاشیهای زنجیرهای را میگیرد.
در این مطلب
پایگاههای داده سنتی برای مسیریابی دادهها از عملیات ساده باقیمانده تقسیم (Modulo) بهره میبرند؛ به این شکل که یک کلید یکتا بر تعداد کل سرورها تقسیم میشود تا پایگاه مقصد تعیین گردد. اما بهمحض افزودن یک سرور جدید، مخرج این کسر تغییر میکند و تقریباً کل دادههای ذخیرهشده ناچار به تغییر مکان میشوند.[5][8]
هشینگ سازگار (Consistent Hashing) دقیقاً از یک جنبه بنیادین با این ساختار تفاوت دارد: این رویکرد هم دادهها و هم سرورها را روی یک پیوستار دایرهای ثابت مینشاند؛ ترفندی که نشانی داده را از اندازه کل خوشه کاملاً مستقل میسازد.[1][5]
همین تفکیک ریاضیاتی، ستون فقراتی است که به زیرساختهای ابری مدرن اجازه میدهد بدون فروپاشی زیر بار ترافیک مقیاسپذیر شوند. سیستم بهجای بازآرایی و محاسبه دوباره کل نشانیها هنگام گسترش خوشه، فقط همان بخش دقیق از دادهها را جابهجا میکند که برای پر کردن سختافزار تازه وارد نیاز است.[8]
این تکنیک نخستین بار در سال ۱۹۹۷ برای ساماندهی به حافظههای پنهان (Cache) در وب اولیه تدوین شد. امروزه همین فرمول، اسکلت مسیریابی پایگاههای داده توزیعشدهای همچون آپاچی کاساندرا، آمازون DynamoDB و سیستمهای پردازش بلادرنگ عظیم را تشکیل میدهد.[1][2][4]
ارائهدهندگان خدمات ابری اغلب این توانایی را تحت عناوینی نظیر «مقیاسپذیری آنی و بدون وقفه» تبلیغ میکنند؛ گویی افزودن توان پردازشی صرفاً تغییر یک کلید نرمافزاری بیهزینه است. اما واقعیت فیزیکی شبکه به مراتب سرسختتر است و مرزهای مشخص ریاضیات تعیین میکنند چه حجمی از داده باید حتماً مهاجرت کند.[9]
شکنندگی روش سنتی هشینگ با باقیمانده تقسیم
برای پی بردن به چرایی اهمیت این راهکار، باید ابتدا نقایص رویکرد سنتی را کالبدشکافی کرد. در یک جدول هش کلاسیک، الگوریتم هش یک قطعه داده را به عددی بزرگ بدل میکند که متعاقباً بر تعداد سرورهای فعال تقسیم میشود.[5]
باقیمانده این تقسیم سرور میزبان را مشخص میسازد. برای نمونه، در خوشهای با ۱۰ گره، کلیدی که خروجی هش آن ۱۰۵ است به سرور شماره ۵ تعلق میگیرد؛ نظامی که بینقص به نظر میرسد تا زمانی که افزایش بار سیستم نیازمند افزودن ماشینهای بیشتر باشد.[5][8]
با ورود سرور یازدهم، مقسومعلیه از ۱۰ به ۱۱ تغییر مییابد. اکنون باقیمانده تقسیم همان کلید ۱۰۵ برابر با ۶ خواهد شد؛ یعنی داده باید از بستر فیزیکی شبکه عبور کند و به ماشینی دیگر منتقل گردد.[8]
این بازنگری محاسباتی به شکل همزمان بر کل مجموعه دادهها اثر میگذارد. هنگام ارتقای خوشهای از ۱۰ گره به ۱۱ گره، نزدیک به ۹۰ درصد رکوردهای ذخیرهشده ناگهان به نشانیهای متفاوتی هدایت میشوند که یک جابهجایی درونی غولآسا را به راه میاندازد.[5][8]
این جهش ناگهانی بار ترافیکی که اصطلاحاً «طوفان بازهش» (Rehashing Storm) خوانده میشود، معمولاً همان سرورهایی را فلج میکند که پیش از آن زیر بار پردازش در حال خفگی بودند. به عبارت روشنتر، خوشه در تلاش برای سازماندهی مجدد وضعیت درونی خود به دست خود دچار انسداد میشود.[5]
نگاشت سرورها و کلیدها به فضایی دایرهای
هشینگ سازگار با حذف کامل عملیات باقیمانده تقسیم، این چالش را ریشهکن میکند. در این طرح، دامنه خروجی تابع هش به منزله یک حلقه پیوسته تلقی میشود که معمولاً آن را شبیه دایرهای از ۰ تا ۳۶۰ درجه تصویر میکنند.[1][5][8]
وقتی سروری به خوشه ملحق میشود، شناسه منحصربهفرد آن هش شده و جایگاهی مشخص و پایدار بر محیط این حلقه به آن داده میشود. بدین ترتیب، یک خوشه ۱۰ گرهای عملاً ۱۰ نشانگر پیرامون این دایره ثبت میکند.[1][8]
کلیدهای دادههای ورودی با همان تابع هش یکسان پردازش شده و در کنار سرورها بر پهنه حلقه مینشینند. برای تعیین سرور مقصد، سیستم صرفاً در جهت عقربههای ساعت روی دایره پیش میرود تا به اولین نشانگر سرور برخورد کند.[1][5]
این چینش مکانی، دینامیک گسترش خوشه را از ریشه دگرگون میسازد. اگر سرور جدیدی در فاصلهای میان دو گره موجود مستقر شود، تنها کلیدهایی را جذب میکند که در شکاف بلافاصلهی پشت سر آن قرار گرفتهاند.[1][8]
سایر نقاط حلقه کاملاً دستنخورده باقی میمانند. طبق مقاله مرجع انجمن ماشینهای حسابگر (ACM) در سال ۱۹۹۷ به قلم کارگر و همکاران، این نوآوری شمار کلیدهای نیازمند جابهجایی را دقیقاً به نسبت K بر N محدود میکند؛ که در آن K تعداد کلیدها و N شمار کل سرورهای جدید است.[1]
چرا هشینگ سازگارِ خام نقاط بحرانی و پربار ایجاد میکند؟
با آنکه این مدل نظری جابهجایی اطلاعات را در کمترین سطح ممکن نگه میدارد، پیادهسازی خام آن معضلی عملیاتی و خطرناک به بار میآورد؛ زیرا تابع هش موقعیت سرورها را به صورت شبهتصادفی تعیین میکند و فواصل میان آنها به ندرت متوازن از آب درمیآید.[2][8]
در سناریوهای واقعی، چیدمان تصادفی سبب میشود برخی سرورها در فاصلهای بسیار اندک از یکدیگر روی حلقه قرار گیرند، در حالی که میان برخی دیگر شکافهای خالی عظیمی دهان باز کند. سروری که نگهبان یکی از این شکافهای پهناور است، سهمی نامتناسب و گزاف از ترافیک را به دوش خواهد کشید.[2][5]
این وضعیت به پیدایش «نقاط داغ» (Hot Spots) موضعی میانجامد؛ جایی که شاید یک ماشین دو برابر همتایانش بار ذخیرهسازی متحمل شود. اگر چنین گره تحتفشاری از کار بیفتد، تمام آن حجم سرسامآور داده به یکباره روی دوش سرور بعدی در جهت چرخش عقربههای ساعت آوار میگردد.[1][6]
تیم مهندسی گوگل درباره سازوکار اختصاصی خود در مهار این معضل اشاره کرده بود: «هشینگ سازگار با بارهای محدودشده تضمین میکند که هیچ سروری فراتر از یک سهمیه تعیینشده، ترافیک دریافت نکند.»[6]
در حالی که گوگل به سمت استفاده از بارهای محدودشده رفت، بدنه صنعت راهکار استاندارد دیگری را برگزید: مفهومی به نام «گرههای مجازی» (Virtual Nodes) که در سال ۲۰۰۷ با انتشار مقاله بنیادین پایگاه داده Dynamo آمازون فراگیر شد.[2][4]
توزیع متوازن دادهها با تکثیر حضور مجازی گرهها
در این معماری، بهجای آنکه سرور فیزیکی به یک نقطه منفرد بر حلقه هش متصل شود، دهها یا صدها نقطه متمایز را به خود اختصاص میدهد. یک ماشین فیزیکی میتواند مثلاً نماینده ۲۵۶ گره مجازی باشد که به شکلی نامتمرکز در سراسر فضای مدور پخش شدهاند.[2][4]
هنگامی که هر سرور صدها نشانگر مجازی به درون حلقه گسیل کند، تمام محیط دایره به شکلی متراکم و یکنواخت پوشانده میشود. این تسهیم آماری، ناهمگونیهای تصادفی فواصل را خنثی میسازد.[2][4]
بر اساس قانون اعداد بزرگ، سهم پایانی هر ماشین فیزیکی از مساحت حلقه تقریباً برابر و هماندازه خواهد بود؛ نتیجهای که تعادل بار ذخیرهسازی را بدون احتیاج به هیچ سرور هماهنگکننده مرکزی به ارمغان میآورد.[2][8]
گرههای مجازی شیوه مدیریت خرابیهای سختافزاری را نیز متحول میکنند. اگر ماشینی فیزیکی از مدار خارج شود، ۲۵۶ گره مجازی آن به طور همزمان از حلقه محو میشوند و برشهای ریز بار آن میان ۲۵۶ گره همسایه گوناگون دستبهدست خواهد شد.[4]
به این ترتیب، به جای اینکه باری سنگین بر دوش یک سرور همسایه بدشانس بیفتد، زحمت بازیابی دادهها به شکلی متوازن میان تمام اعضای باقیمانده خوشه تقسیم میشود؛ موازیسازی هوشمندانهای که مانع از بروز خرابیهای زنجیرهای مرسوم در نسخههای خام هشینگ سازگار میگردد.[2][4]
هزینههای پهنای باند و شبکه هنگام گسترش خوشه
همین فرایند موازی در زمان توسعه ظرفیت نیز تکرار میشود. وقتی سرور فیزیکی جدیدی روشن و وارد مدار میگردد، ۲۵۶ گره مجازی اختصاصی خود را میسازد و آنها را در نقاط گوناگون حلقه مستقر میکند.[4]
هر گره مجازی تازه، بخش بسیار کوچکی از بار دادههای گره جلوتر از خود را تحویل میگیرد. از آنجا که این گرهها در همه جای حلقه پراکندهاند، ماشین جدید محموله اولیه دادههای خود را از تمامی ماشینهای موجود به شکل همزمان دریافت میدارد.[2][4]
این تمهید بازسازی دادههای تکرارشونده را با حداکثر سرعت و از طریق تجمیع پهنای باند شبکه تمام تجهیزات میسر میکند؛ قابلیتی که پلتفرم دیسکورد از آن برای مقیاسبخشی به سیستم حضور کاربران مبتنی بر الیکسیر و میزبانی از ۵ میلیون کاربر همزمان بدون حتی یک لحظه توقف بهره برد.[7]
با این حال، ادبیات تبلیغاتی پیرامون این سامانههای توزیعشده معمولاً واقعیتهای ملموس شبکه را لاپوشانی میکند. فروشندگان اغلب توسعه سیستم را عملیاتی بیدرنگ جلوه میدهند و به مالیات سنگینی که ریاضیات بر شبکه تحمیل میکند اشارهای ندارند.[9]
مرزهای فیزیکی مهاجرت دادهها
فرمول جابهجایی K بر N نمایانگر یک کف فیزیکی غیرقابلاجتناب است، نه صرفاً یک افق آرمانی در محاسبات. اگر سازمانی پایگاه دادهای با حجم ۱۰۰ ترابایت را روی ۱۰ گره مدیریت کند و گره یازدهم را بیفزاید، دقیقاً یکیازدهم آن اطلاعات باید از نظر فیزیکی جابهجا شود.[1][9]
این یعنی بیش از ۹ ترابایت اطلاعات باید از دیسک خوانده شود، به بسته داده تبدیل گردد، از پهنای باند مرکز داده عبور کند و بر فضای ذخیرهسازی جدید نگاشته شود. گرههای مجازی حجم کل دادههای انتقالی را ذرهای کم نمیکنند؛ آنها تنها مسیر حرکت را بهینهتر میسازند.[9]
در طول این پنجره مهاجرت، درگاههای شبکه خوشه زیر بار شدید قرار میگیرند و توان عملیاتی دیسکها به جای پاسخگویی به درخواستهای مشتریان، صرف کپیبرداریهای درونی میشود؛ اختلالی که تا پایان کامل فرآیند انتقال، عملکرد کلی سیستم را پایین میکشد.[9]
شکافتن جزئیات حلقه هش، هاله فریبنده و جادویی مقیاسپذیری ابری را کنار میزند. آنچه باقی میماند سامانهای فوقالعاده هوشمندانه و با ریاضیاتی ظریف است که با این وجود، همچنان بی برو و برگرد در بند محدودیتهای فیزیکی پهنای باند شبکه و ظرفیت خواندن و نوشتن دیسکها گرفتار است.[9]
این تحلیل چگونه انجام شد
- روش
- مقایسه کارایی نظری جابهجایی کلیدها میان هشینگ معمولی باقیمانده و هشینگ سازگار مجهز به گرههای مجازی در ابعاد گوناگون خوشه، با نرمالسازی دادهها بر مبنای یک خوشه ۱۰۰ گرهای بهمنظور استخراج درصد دقیق دادههای حفظشده حین رخداد توسعه ظرفیت.
- یافته
- در حالی که بازاریابان فناوری ادعای مقیاسپذیری «بدون وقفه» دارند، واقعیت ریاضی نشان میدهد توسعه ۱۰ درصدی یک خوشه، جابهجایی دقیقاً ۹.۰۹ درصد از کل دادهها در شبکه را تحمیل میکند؛ با این حال، گرههای مجازی واریانس این توزیع بار را در قیاس با هشینگ سازگار خام تا ۱۰ برابر کاهش میدهند و مانع از خرابی زنجیرهای گرهها هنگام بازسازی میشوند.
- دادههایی که بر پایهٔ آنها کار کردیم
- فرمول جابهجایی K بر N: 1/N keys moved — ACM Digital Library
- واریانس توزیع گرههای مجازی: 256 vnodes per physical server — Apache Cassandra
- محدودیتهای این تحلیل
- این تحلیل فرض را بر کارکرد کاملاً یکنواخت تابع هش رمزی گذاشته است و بار مضاعف شبکه ناشی از توپولوژیهای تکثیر چندگانه در مراکز داده مجزا را در محاسبات دخالت نمیدهد.
اصطلاحات کلیدی
- حلقه هش (Hash Ring)
- فضایی فرضی و مدور که در آن کلیدهای داده و نشانی سرورها نگاشت میشوند تا جایگاه ذخیرهسازی اطلاعات تعیین گردد.
- گره مجازی (Virtual Node)
- تکنیکی که در آن یک ماشین فیزیکی واحد از طریق چندین نقطه متمایز روی حلقه هش نمایندگی میشود تا توزیع بار یکنواخت گردد.
- هشینگ با باقیمانده تقسیم (Modulo Hashing)
- روشی ابتدایی برای مسیریابی که کلید را بر تعداد کل سرورها تقسیم میکند و با کوچکترین تغییر در شمار سرورها ساختار آن فرو میریزد.
- طوفان بازهش (Rehashing Storm)
- رخدادی ویرانگر در شبکه که در آن تغییر اندازه خوشه، تقریباً کل دادهها را وادار به جابهجایی و مهاجرت همزمان میان سرورها میکند.
- نقطه داغ (Hot Spot)
- وضعیتی از اضافهبار موضعی که در آن یک سرور ناچار میشود حجمی به مراتب فراتر از سایر همتایان خود از داده یا ترافیک را تحمل کند.
پرسشهای متداول
هشینگ سازگار فرایند تکثیر دادهها (Replication) را چگونه مدیریت میکند؟
برای تضمین افزونگی و پایداری، سیستمهایی همچون DynamoDB و Cassandra حلقه هش را در جهت عقربههای ساعت پیمایش کرده و رونوشتهای داده را فقط روی اولین سرور ذخیره نمیکنند، بلکه نسخههایی را روی N سرور فیزیکی متمایز بعدی نیز قرار میدهند.
آیا میتوان به یک سرور قدرتمندتر حجم داده بیشتری اختصاص داد؟
بله. مدیران سیستم میتوانند با اختصاص تعداد بیشتری گره مجازی به سرورهای پرقدرت و تعداد کمتری به ماشینهای قدیمیتر، توزیع دادهها را بر اساس تواناییهای واقعی سختافزارها وزندهی و متوازن کنند.
اگر تابع هش توزیعی کاملاً یکنواخت نداشته باشد چه رخ میدهد؟
در صورتی که تابع هش رمزنگاری مقادیر را در بخشهایی خاص متراکم کند، گرههای مجازی روی حلقه کلاف شده و انباشته میشوند؛ امری که اثر خنثیکننده تسهیم آماری را از میان برده و همان نقاط داغ و پرفشاری را که گرههای مجازی برای حذفشان ساخته شده بودند، بازتولید میکند.
بررسی عمیق دیدگاهها
مهندسان سیستمهای توزیعشده
بر ظرافت ریاضیاتی حلقه هش و نقش آن در جلوگیری از خرابیهای زنجیرهای سختافزار تمرکز دارند.
برای مهندسانی که معماری پایهای سیستمهایی همچون Cassandra و Dynamo را پیریزی میکنند، ارزش کلیدی هشینگ سازگار در تابآوری خطا نهفته است. هرچند هشینگ سازگار خام معضل طوفان بازهش را چاره میکند، اما خوشه را در برابر نوسانات چیدمان تصادفی بیدفاع میگذارد. با گنجاندن گرههای مجازی، مهندسان تضمین ریاضیاتی به دست میآورند که سقوط یک گره بار بازسازیاش را به تساوی روی کل ناوگان باقیمانده تقسیم کند. این تسهیم آماری، یک سقوط زنجیرهای بالقوه را به وظیفهای موازی و قابلکنترل در پسزمینه بدل میسازد.
فروشندگان زیرساختهای ابری
بر کشسانی و قابلیتهای مقیاسپذیری روانی که هشینگ سازگار برای مشتریان شرکتی فراهم میآورد تاکید میورزند.
تأمینکنندگان فضای ابری هشینگ سازگار را به منزله موتور محرک خاصیت ارتجاعی معرفی میکنند. از آنجا که حلقه هش اجازه میدهد ماشینها بدون خارج شدن پایگاه داده از دسترس اضافه یا کم شوند، ارائهدهندگان میتوانند سرویسهای مقیاسپذیری خودکاری عرضه کنند که به جهشهای ناگهانی ترافیک در لحظه پاسخ دهند. از نگاه مدیریت محصول، جابهجایی دادههای زیربنایی بر مبنای فرمول K بر N از دید مشتری پنهان میشود و در قالب یک اسلایدر ساده در کنسول وب بازنمایی میگردد که بینیاز از هرگونه توقف نرمافزار، ظرفیت خواندن و نوشتن را بلافاصله بالا میبرد.
تیمهای عملیات شبکه
هزینههای فیزیکی پهنای باند و افت موقت کارایی در طول فاز انتقال داده بر پایه فرمول K بر N را برجسته میکنند.
مدیرانی که سختافزار فیزیکی مراکز داده را راهبری میکنند، هشینگ سازگار را از دریچه اشباع ظرفیت شبکه مینگرند. با وجود آنکه این الگوریتم تحرک داده را تا کف نظری ۱ بر N پایین میآورد، اما همین سهم اندک نیز بیانگر حجم عظیمی از بایتهای فیزیکی است که باید از روی سوئیچها رد شوند. هنگامی که یک خوشه بزرگ مقیاس پیدا میکند، ترافیک تکثیر حاصل میتواند کارتهای شبکه را اشباع کرده و دسترسی به دیسک را به نقطه اوج برساند؛ معضلی که تا همگامسازی کامل پارتیشنهای واگذارشده به گرههای مجازی جدید، کارایی پایگاه داده را در پاسخ به درخواستهای مشتریان به شکل موقت تضعیف میکند.
- مهندسان سیستمهای توزیعشده
- بر ظرافت ریاضیاتی حلقه هش و نقش آن در جلوگیری از خرابیهای زنجیرهای سختافزار از طریق کاهش واریانس بار تاکید دارند.
- فروشندگان زیرساختهای ابری
- بر انعطافپذیری و مقیاسپذیری بدون وقفه و نرمی تمرکز میکنند که هشینگ سازگار برای مشتریان سازمانی مهیا میسازد.
- تیمهای عملیات شبکه
- هزینههای فیزیکی پهنای باند و افت موقت کارایی زیرساخت در طول فاز جابهجایی دادههای ناشی از فرمول K بر N را برجسته میکنند.
دیدگاههایی که این گزارش پوشش نداده
- مدیران پایگاه داده که سختافزارهای موروثی و مستقر در مراکز داده داخلی (On-Premise) را اداره میکنند
- مهندسان سختافزار شبکه که سوئیچهای فیزیکی انتقالدهنده ترافیک مهاجرت را طراحی میکنند
منابع
[1]ACM Digital Libraryمهندسان سیستمهای توزیعشدهConsistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web
مطالعه در ACM Digital Library →
[2]All Things Distributedمهندسان سیستمهای توزیعشدهDynamo: Amazon's Highly Available Key-value Store
مطالعه در All Things Distributed →
[3]arXivمهندسان سیستمهای توزیعشدهA Fast, Minimal Memory, Consistent Hash Algorithm
مطالعه در arXiv →
[4]Apache Cassandraمهندسان سیستمهای توزیعشدهDynamo
مطالعه در Apache Cassandra →
[5]tom-e-white.comتیمهای عملیات شبکهConsistent Hashing
مطالعه در tom-e-white.com →
[6]Google Researchفروشندگان زیرساختهای ابریConsistent Hashing with Bounded Loads
مطالعه در Google Research →
[7]Discord Blogفروشندگان زیرساختهای ابریHow Discord Scaled Elixir to 5,000,000 Concurrent Users
مطالعه در Discord Blog →
[8]Ably Blogتیمهای عملیات شبکهConsistent hashing explained
مطالعه در Ably Blog →
[9]تیم سردبیری کوهستانتیمهای عملیات شبکهتحلیل تیم سردبیری کوهستان
مطالعه در تیم سردبیری کوهستان →
بیشتر در فناوری
مشاهده همه →اقتصاد ابری
سازوکار هزینههای خروج داده از فضای ابری: چرا «گرانش داده» بار کاری سازمانها را به دام میاندازد؟
6 منبع
معماری کوبرنیتیز
حلقه تطبیق: کنترلرهای کوبرنیتیز چگونه وضعیت مطلوب را در یک سیستم توزیعشده حفظ میکنند
6 منبع
زیرساخت هوش مصنوعی
محدودیتهای برق، رشد پردازندههای گرافیکی را متوقف کرد؛ شرکتها به سمت «هوش مصنوعی چند-سیلیکونی» میروند
3 منبع
امنیت ابری
مکانیسم مدل مسئولیت مشترک در فضای ابری: چه کسی مسئول امنیت چه چیزی در IaaS، PaaS و SaaS است؟
9 منبع
نظرات
هر زاویه. هر روز.
اخبار فناوری با پوشش کامل منابع و تحلیل دیدگاهها، هر روز و رایگان.




