۵ آبان ۱۴۰۵ lavik.dev ۳ دقیقه مطالعه

مهاجرت از کلاستر ۳۰۰ نودی Redis به سه نود Lavik؛ کاهش چشمگیر هزینه‌ها با ذخیره‌سازی NVMe

مهاجرت از کلاستر ۳۰۰ نودی Redis به سه نود Lavik؛ کاهش چشمگیر هزینه‌ها با ذخیره‌سازی NVMe — Migrate Your 300-Node Redis Cluster to Just 3 Lavik Nodes

خلاصه

نرم‌افزار Lavik جایگزینی سازگار با Redis است که با انتقال داده‌ها به دیسک‌های پرسرعت NVMe و استفاده از معماری SPDK، امکان مدیریت حجم عظیمی از داده‌ها را روی تعداد بسیار کمی سرور فراهم می‌کند. این ابزار به توسعه‌دهندگان اجازه می‌دهد هزینه‌های سخت‌افزاری را بدون افت عملکرد و تا بیش از ۹۰ درصد کاهش دهند.

رشد حجم داده‌ها در برنامه‌های امروزی، به‌ویژه سیستم‌های مبتنی بر هوش مصنوعی و ایجنت‌ها (Agents)، باعث شده است که توسعه‌دهندگان برای حفظ وضعیت و پروفایل کاربران مدام به خرید سرورهای RAM-محور بیشتری نیاز پیدا کنند. ساختارهای سنتی مانند Redis برای حفظ سرعت به حافظه گران‌قیمت DRAM وابسته‌اند و افزایش داده‌ها مستقیماً به معنی افزایش تعداد نودها، هزینه‌ها و پیچیدگی عملیاتی است. ابزار Lavik پاسخی به این چالش است که با ترکیب ظرفیت دیسک‌های NVMe SSD با یک موتور پردازش بهینه، معادلات مربوط به هزینه‌های ذخیره‌سازی و پردازش را تغییر می‌دهد.

معماری و نحوه کارکرد Lavik

هدف اصلی Lavik جداسازی نیاز به ظرفیت ذخیره‌سازی از توان پردازشی (CPU) است. در حالی که مقدار کل داده‌ها و ویژگی‌های ایجنت‌ها می‌تواند به ترابایت‌ها برسد، نیازی نیست همه چیز در DRAM نگهداری شود. این موتور از حافظه رم فقط برای شاخص کلیدها (Key index)، متادیتا و بافرهای فعال استفاده می‌کند و مقادیر اصلی روی دیسک‌های پرسرعت SSD ذخیره می‌شوند.

برای دور زدن سربار سیستم‌عامل در عملیات I/O، این پروژه از SPDK (مجموعه توسعه‌پذیری پلیکان ذخیره‌سازی اینتل) بهره می‌برد. عملیات خواندن و نوشتن مستقیماً از طریق صف‌های فضای کاربر (Userspace queue pairs) و به روش Polling مدیریت می‌شوند که حاصل آن حذف وقفه‌های سیستمی و سیستم‌کال‌ها است. همچنین مدل پردازشی Bycorf با استفاده از کوروتین‌ها (Coroutines) و وضعیت‌های محلی، به پردازش همزمان دستورات کمک شایانی می‌کند.

مقایسه اقتصادی و معماری ۳۰۰ به ۳

یکی از سناریوهای مطرح‌شده، مهاجرت از یک کلاستر بزرگ با ۳۰۰ نود Azure (شامل ۱۵۰ نود اصلی و ۱۵۰ نود پشتیبان) به تنها سه نود Lavik است:

  • کلاستر ردیس: شامل ۶۰۰ هسته پردازشی و ۴۸۰۰ گیگابایت رم با هزینه ماهانه نزدیک به ۲۷,۶۰۰ دلار.
  • کلاستر لاویک: شامل دو نود داده با دیسک‌های NVMe و یک نود کوچک‌تر به‌عنوان رای‌دهنده (Voter) برای حفظ حد نصاب Raft، با هزینه ماهانه حدود ۲,۱۰۰ دلار.

این تغییر توپولوژی، هزینه‌های زیرساخت ابری را بیش از ۹۲ درصد کاهش می‌دهد و در عین حال ماشین‌های کمتری برای مدیریت باقی می‌گذارد. همچنین با کاهش تعداد نودها، مشکلاتی نظیر مدیریت اتصال‌های سنگین شبکه بین‌گره‌ای در کلاسترهای بزرگ ردیس به‌طور چشمگیری ساده‌تر می‌شود.

عملکرد بنچمارک‌ها

بر اساس بنچمارک‌های منتشر شده روی سرورهای مشابه، لاویک توانسته است در عملیات GET به بیش از ۱.۱۴ میلیون درخواست در ثانیه دست پیدا کند که حتی از ردیس و Valkey روی حافظه DRAM نیز سریع‌تر است. این ساختار نشان می‌دهد که استفاده از حافظه فلش لزوماً به معنای افت سرعت نیست؛ به‌طوری‌که حتی با حجمی از داده‌ها که چندین برابر ظرفیت RAM سرور است، نرخ پاسخ‌دهی و تاخیر در سطح بسیار مطلوبی باقی می‌ماند.

نگاه جامعه مهندسی در هکرنیوز

در بحث‌های انجام‌شده پیرامون این پروژه، کاربران به نکاتی نظیر نحوه پیکربندی سه‌نودی و استفاده از برچسب Primary اشاره کردند و برخی پرسیدند که مقایسه آن با سایر ابزارهای حافظه-محور مانند Dragonfly چگونه است. با این حال، ایده اصلی این پروژه برای تیم‌هایی که با محدودیت بودجه RAM و رشد انفجاری داده‌های ایجنت‌ها روبه‌رو هستند، بسیار جذاب ارزیابی شد.

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

این خبر را با دیگران به اشتراک بگذارید

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